import { type SimpleColumnMeta, type Type, type TransformContext, type MikroORM, type IsolationLevel, } from '@mikro-orm/core'; import { MySqlSchemaHelper } from './MySqlSchemaHelper.js'; import { MySqlExceptionConverter } from './MySqlExceptionConverter.js'; import { AbstractSqlPlatform } from '../../AbstractSqlPlatform.js'; import type { IndexDef } from '../../typings.js'; import { MySqlNativeQueryBuilder } from './MySqlNativeQueryBuilder.js'; export declare class BaseMySqlPlatform extends AbstractSqlPlatform { #private; protected readonly schemaHelper: MySqlSchemaHelper; protected readonly exceptionConverter: MySqlExceptionConverter; protected readonly ORDER_BY_NULLS_TRANSLATE: { readonly 'asc nulls first': 'is not null'; readonly 'asc nulls last': 'is null'; readonly 'desc nulls first': 'is not null'; readonly 'desc nulls last': 'is null'; }; /** @internal */ createNativeQueryBuilder(): MySqlNativeQueryBuilder; getDefaultCharset(): string; init(orm: MikroORM): void; getBeginTransactionSQL(options?: { isolationLevel?: IsolationLevel; readOnly?: boolean }): string[]; convertJsonToDatabaseValue(value: unknown, context?: TransformContext): unknown; getJsonIndexDefinition(index: IndexDef): string[]; getBooleanTypeDeclarationSQL(): string; normalizeColumnType( type: string, options: { length?: number; precision?: number; scale?: number; }, ): string; getDefaultMappedType(type: string): Type; isNumericColumn(mappedType: Type): boolean; supportsUnsigned(): boolean; /** * Returns the default name of index for the given columns * cannot go past 64 character length for identifiers in MySQL */ getIndexName( tableName: string, columns: string[], type: 'index' | 'unique' | 'foreign' | 'primary' | 'sequence', ): string; getDefaultPrimaryName(tableName: string, columns: string[]): string; supportsCreatingFullTextIndex(): boolean; getFullTextWhereClause(): string; getFullTextIndexExpression( indexName: string, schemaName: string | undefined, tableName: string, columns: SimpleColumnMeta[], ): string; getOrderByExpression(column: string, direction: string, collation?: string): string[]; getJsonArrayFromSQL( column: string, alias: string, properties: { name: string; type: string; }[], ): string; getJsonArrayExistsSQL(from: string, where: string): string; getDefaultClientUrl(): string; }