import * as utils from '@prismamedia/graphql-platform-utils'; import type { Schema } from '../schema.js'; import type { SchemaInformation, TableInformation } from '../statement.js'; import { type SchemaFixOptions } from './diagnosis/fix.js'; import { TableDiagnosis, type ColumnInformationsByColumnName, type ConstraintInformationsByColumnName, type ForeignKeyInformationsByForeignKeyName, type IndexInformationsByColumnNameByIndexName, type Table, type TableDiagnosisOptions, type TableDiagnosisSummary } from './table.js'; export * from './diagnosis/fix.js'; export type DiagnosisError = { message?: string; expected: any; actual: any; hint?: string; }; export type TableInformationsByTableName = Map; export type ColumnInformationsByColumnNameByTableName = Map; export type ConstraintInformationsByColumnNameByTableName = Map; export type IndexInformationsByIndexNameByTableName = Map; export type ForeignKeyInformationsByForeignKeyNameByTableName = Map; export type SchemaDiagnosisInformations = { schema: SchemaInformation; tables: TableInformationsByTableName; columns: ColumnInformationsByColumnNameByTableName; constraints: ConstraintInformationsByColumnNameByTableName; indexes: IndexInformationsByIndexNameByTableName; foreignKeys: ForeignKeyInformationsByForeignKeyNameByTableName; }; export type SchemaDiagnosisOptions = { charset?: utils.OptionalFlag; collation?: utils.OptionalFlag; comment?: utils.OptionalFlag; tables?: TableDiagnosisOptions; extraTables?: utils.OptionalFlag | Table['name'][]; }; export type SchemaDiagnosisSummary = { errors: number; charset?: DiagnosisError; collation?: DiagnosisError; comment?: DiagnosisError; tables?: { extra?: ReadonlyArray; missing?: ReadonlyArray; invalid?: Record; }; }; export declare class SchemaDiagnosis { readonly schema: Schema; readonly charsetError?: DiagnosisError; readonly collationError?: DiagnosisError; readonly commentError?: DiagnosisError; readonly diagnosesByTable: ReadonlyMap; readonly missingTables: ReadonlyArray; readonly invalidTables: ReadonlyArray; readonly extraTables: ReadonlyArray; readonly fixableTableNames: ReadonlyArray; readonly errorCount: number; constructor(schema: Schema, informations: SchemaDiagnosisInformations, options?: SchemaDiagnosisOptions); isValid(): boolean; summarize(): SchemaDiagnosisSummary; printSummary(): string; fix(options?: SchemaFixOptions): Promise; } //# sourceMappingURL=diagnosis.d.ts.map