import type { PoolConnection } from '../../../index.js'; import type { SchemaFix } from '../../diagnosis.js'; import type { Table } from '../../table.js'; import type { Column, ColumnDiagnosis } from '../column.js'; import type { TableDiagnosis } from '../diagnosis.js'; import type { ForeignKey, ForeignKeyDiagnosis } from '../foreign-key.js'; import type { Index, IndexDiagnosis } from '../index.js'; declare abstract class AbstractTableFix { readonly parent: SchemaFix; readonly table: Table; readonly connector: import("../../../index.js").MariaDBConnector; constructor(parent: SchemaFix, table: Table); abstract get dependencies(): ReadonlyArray; prepare(_connection?: PoolConnection): Promise; execute(_connection?: PoolConnection): Promise; finalize(_connection?: PoolConnection): Promise; } export declare class MissingTableFix extends AbstractTableFix { readonly dependencies: ReadonlyArray; get creatableForeignKeys(): ReadonlyArray; prepare(connection?: PoolConnection): Promise; finalize(connection?: PoolConnection): Promise; } declare abstract class AbstractExistingTableFix extends AbstractTableFix { readonly diagnosis?: TableDiagnosis | undefined; constructor(parent: SchemaFix, table: Table, diagnosis?: TableDiagnosis | undefined); /** * These foreign-keys will be DROP in order to fix the columns and indexes they're referencing, then re-ADD. */ get existingForeignKeysReferencingInvalidColumnsOrIndexes(): ReadonlyArray; } export type InvalidTableFixOptions = { ignore?: boolean; comment?: boolean; engine?: boolean; collation?: boolean; foreignKeys?: boolean | ReadonlyArray; indexes?: boolean | ReadonlyArray; nullable?: boolean; columns?: boolean | ReadonlyArray; }; export declare class InvalidTableFix extends AbstractExistingTableFix { #private; readonly diagnosis: TableDiagnosis; readonly ignore: boolean; readonly comment: boolean; readonly engine: boolean; readonly collation: boolean; readonly extraForeignKeys: ReadonlyArray; readonly invalidForeignKeys: ReadonlyArray; readonly extraIndexes: ReadonlyArray; readonly missingIndexes: ReadonlyArray; readonly untouchedMissingIndexes: ReadonlyArray; readonly invalidIndexes: ReadonlyArray; readonly untouchedInvalidIndexes: ReadonlyArray; readonly nullable: boolean; readonly extraColumns: ReadonlyArray; readonly missingColumns: ReadonlyArray; readonly untouchedMissingColumns: ReadonlyArray; readonly invalidColumns: ReadonlyArray; readonly untouchedInvalidColumns: ReadonlyArray; constructor(parent: SchemaFix, diagnosis: TableDiagnosis, options?: InvalidTableFixOptions); get existingForeignKeysReferencingInvalidColumnsOrIndexes(): ReadonlyArray; get creatableMissingForeignKeys(): ReadonlyArray; protected get creatableForeignKeys(): ReadonlyArray; get creatableForeignKeysNotReferencingThisFixableResources(): ReadonlyArray; get creatableForeignKeysReferencingThisFixableResources(): ReadonlyArray; get dependencies(): ReadonlyArray; prepare(connection?: PoolConnection): Promise; execute(connection?: PoolConnection): Promise; finalize(connection?: PoolConnection): Promise; } export declare class ValidOrUntouchedInvalidTableFix extends AbstractExistingTableFix { get dependencies(): ReadonlyArray; prepare(connection?: PoolConnection): Promise; execute(connection?: PoolConnection): Promise; } export type TableFix = MissingTableFix | InvalidTableFix | ValidOrUntouchedInvalidTableFix; export {}; //# sourceMappingURL=fix.d.ts.map