import * as utils from '@prismamedia/graphql-platform-utils'; import { type ColumnInformation, type ConstraintInformation, type ForeignKeyInformation, type TableInformation } from '../../statement.js'; import type { DiagnosisError } from '../diagnosis.js'; import type { Table } from '../table.js'; import type { ColumnDiagnosisOptions, ColumnDiagnosisSummary } from './abstract-column-diagnosis.js'; import type { IndexDiagnosisOptions, IndexDiagnosisSummary, IndexInformationsByColumnName } from './abstract-index-diagnosis.js'; import { type Column, type ColumnDiagnosis } from './column.js'; import type { InvalidTableFixOptions } from './diagnosis/fix.js'; import { type ForeignKey, ForeignKeyDiagnosis, type ForeignKeyDiagnosisOptions, type ForeignKeyDiagnosisSummary } from './foreign-key.js'; import { type Index, type IndexDiagnosis } from './index.js'; export * from './diagnosis/fix.js'; export type ColumnInformationsByColumnName = Map; export type ConstraintInformationsByColumnName = Map; export type IndexInformationsByColumnNameByIndexName = Map; export type ForeignKeyInformationsByForeignKeyName = Map; export type TableDiagnosisInformations = { table: TableInformation; columns: ColumnInformationsByColumnName | undefined; constraints: ConstraintInformationsByColumnName | undefined; indexes: IndexInformationsByColumnNameByIndexName | undefined; foreignKeys: ForeignKeyInformationsByForeignKeyName | undefined; }; export type TableDiagnosisOptions = { comment?: utils.OptionalFlag; engine?: utils.OptionalFlag; collation?: utils.OptionalFlag; columns?: ColumnDiagnosisOptions; extraColumns?: utils.OptionalFlag | Column['name'][]; indexes?: IndexDiagnosisOptions; extraIndexes?: utils.OptionalFlag | Index['name'][]; foreignKeys?: ForeignKeyDiagnosisOptions; extraForeignKeys?: utils.OptionalFlag | ForeignKey['name'][]; }; export type TableDiagnosisSummary = { comment?: DiagnosisError; engine?: DiagnosisError; collation?: DiagnosisError; columns?: { extra?: ReadonlyArray; missing?: ReadonlyArray; invalid?: Record; }; indexes?: { extra?: ReadonlyArray; missing?: ReadonlyArray; invalid?: Record; }; foreignKeys?: { extra?: ReadonlyArray; missing?: ReadonlyArray; invalid?: Record; }; }; export declare class TableDiagnosis { readonly table: Table; readonly commentError?: DiagnosisError; readonly engineError?: DiagnosisError; readonly collationError?: DiagnosisError; readonly diagnosesByColumn: ReadonlyMap; readonly missingColumns: ReadonlyArray; readonly invalidColumns: ReadonlyArray; readonly extraColumns: ReadonlyArray; readonly fixableColumnNames: ReadonlyArray; readonly diagnosesByIndex: ReadonlyMap; readonly missingIndexes: ReadonlyArray; readonly invalidIndexes: ReadonlyArray; readonly extraIndexes: ReadonlyArray; readonly fixableIndexNames: ReadonlyArray; readonly diagnosesByForeignKey: ReadonlyMap; readonly missingForeignKeys: ReadonlyArray; readonly invalidForeignKeys: ReadonlyArray; readonly extraForeignKeys: ReadonlyArray; readonly fixableForeignKeyNames: ReadonlyArray; readonly errorCount: number; constructor(table: Table, informations: TableDiagnosisInformations, options?: TableDiagnosisOptions); isValid(): boolean; summarize(): TableDiagnosisSummary; printSummary(): string; fixesColumns(config?: InvalidTableFixOptions): Array; } //# sourceMappingURL=diagnosis.d.ts.map