import { type ColumnDefinition, type ProjectionDefinition, type SkipIndexDefinition, type TableDefinition } from '@chkit/core'; type TableDriftReasonCode = 'missing_column' | 'extra_column' | 'changed_column' | 'setting_mismatch' | 'index_mismatch' | 'ttl_mismatch' | 'engine_mismatch' | 'primary_key_mismatch' | 'order_by_mismatch' | 'partition_by_mismatch' | 'unique_key_mismatch' | 'projection_mismatch'; type ObjectDriftReasonCode = 'missing_object' | 'extra_object' | 'kind_mismatch'; type DriftReasonCode = ObjectDriftReasonCode | TableDriftReasonCode; interface SchemaObjectShape { kind: 'table' | 'view' | 'materialized_view'; database: string; name: string; } export interface ObjectDriftDetail { code: ObjectDriftReasonCode; object: string; expectedKind?: SchemaObjectShape['kind']; actualKind?: SchemaObjectShape['kind']; } interface ActualTableShape { columns: ColumnDefinition[]; settings: Record; indexes: SkipIndexDefinition[]; ttl?: string; engine?: string; primaryKey?: string; orderBy?: string; uniqueKey?: string; partitionBy?: string; projections: ProjectionDefinition[]; } export interface TableDriftDetail { table: string; reasonCodes: TableDriftReasonCode[]; missingColumns: string[]; extraColumns: string[]; changedColumns: string[]; settingDiffs: string[]; indexDiffs: string[]; ttlMismatch: boolean; engineMismatch: boolean; primaryKeyMismatch: boolean; orderByMismatch: boolean; uniqueKeyMismatch: boolean; partitionByMismatch: boolean; projectionDiffs: string[]; } interface DriftReasonSummary { counts: Partial>; total: number; object: number; table: number; } export declare function compareSchemaObjects(expectedObjects: SchemaObjectShape[], actualObjects: SchemaObjectShape[]): { missing: string[]; extra: string[]; kindMismatches: Array<{ expected: string; actual: string; object: string; }>; objectDrift: ObjectDriftDetail[]; }; export declare function summarizeDriftReasons(input: { objectDrift: ObjectDriftDetail[]; tableDrift: TableDriftDetail[]; }): DriftReasonSummary; export declare function compareTableShape(expected: TableDefinition, actual: ActualTableShape): TableDriftDetail | null; export {}; //# sourceMappingURL=drift.d.ts.map