import { type Dictionary, type Type } from '@mikro-orm/core'; import type { CheckDef, Column, ForeignKey, IndexDef, Table, TableDifference } from '../../typings.js'; import type { AbstractSqlConnection } from '../../AbstractSqlConnection.js'; import { SchemaHelper } from '../../schema/SchemaHelper.js'; import type { DatabaseSchema } from '../../schema/DatabaseSchema.js'; import type { DatabaseTable } from '../../schema/DatabaseTable.js'; export declare class MySqlSchemaHelper extends SchemaHelper { #private; static readonly DEFAULT_VALUES: { 'now()': string[]; 'current_timestamp(?)': string[]; '0': string[]; }; getSchemaBeginning(charset: string, disableForeignKeys?: boolean): string; disableForeignKeysSQL(): string; enableForeignKeysSQL(): string; finalizeTable(table: DatabaseTable, charset: string, collate?: string): string; getListTablesSQL(): string; getListViewsSQL(): string; loadViews(schema: DatabaseSchema, connection: AbstractSqlConnection, schemaName?: string): Promise; loadInformationSchema(schema: DatabaseSchema, connection: AbstractSqlConnection, tables: Table[]): Promise; getAllIndexes(connection: AbstractSqlConnection, tables: Table[]): Promise>; getCreateIndexSQL(tableName: string, index: IndexDef, partialExpression?: boolean): string; /** * Build the column list for a MySQL index, with MySQL-specific handling for collation. * MySQL requires collation to be specified as an expression: (column_name COLLATE collation_name) */ protected getIndexColumns(index: IndexDef): string; /** * Append MySQL-specific index suffixes like INVISIBLE. */ protected appendMySqlIndexSuffix(sql: string, index: IndexDef): string; getAllColumns(connection: AbstractSqlConnection, tables: Table[]): Promise>; getAllChecks(connection: AbstractSqlConnection, tables: Table[]): Promise>; getAllForeignKeys(connection: AbstractSqlConnection, tables: Table[]): Promise>>; getPreAlterTable(tableDiff: TableDifference, safe: boolean): string[]; getRenameColumnSQL(tableName: string, oldColumnName: string, to: Column): string; getRenameIndexSQL(tableName: string, index: IndexDef, oldIndexName: string): string[]; getChangeColumnCommentSQL(tableName: string, to: Column, schemaName?: string): string; alterTableColumn(column: Column, table: DatabaseTable, changedProperties: Set): string[]; private getColumnDeclarationSQL; getAllEnumDefinitions(connection: AbstractSqlConnection, tables: Table[]): Promise>>; private supportsCheckConstraints; protected getChecksSQL(tables: Table[]): string; normalizeDefaultValue(defaultValue: string, length: number): string | number; protected wrap(val: string | null | undefined, type: Type): string | null | undefined; }