/** * SchemaDiff (v3.x) * * Compares schema between two profiles using v2.18 GlobalSchemaView. * Reports added/removed/modified tables + column-level changes. */ import type { ProfileManager } from './profile-manager.js'; export interface SchemaColumn { name: string; type: string; nullable: boolean; } export interface SchemaDiffEntry { table: string; in: 'A' | 'B'; columns: SchemaColumn[]; } export interface SchemaDiffModified { table: string; columnsAdded: SchemaColumn[]; columnsRemoved: SchemaColumn[]; columnsChanged: { column: string; from: SchemaColumn | null; to: SchemaColumn | null; }[]; } export interface SchemaDiffResult { /** Tables present in B but missing in A. */ added: SchemaDiffEntry[]; /** Tables present in A but missing in B. */ removed: SchemaDiffEntry[]; /** Tables present in both but with column differences. */ modified: SchemaDiffModified[]; /** True when added/removed/modified are all empty. */ identical: boolean; /** Helpful summary for LLM. */ summary: string; } export declare class SchemaDiff { /** * Compare schema of two profiles. Returns added (in B), removed (in A), * modified (column additions / removals / type changes), and identical * (a boolean). * * Profiles are loaded via {@link ProfileManager.loadProfile}, which creates * live connections as needed. Reuse ProfileManager's existing connection * cache by leveraging the global schema view; we still call buildGlobalSchemaView * to keep dependencies minimal. */ static compareProfiles(pm: ProfileManager, nameA: string, nameB: string, options?: { maxTablesPerProfile?: number; }): Promise; } //# sourceMappingURL=schema-diff.d.ts.map