export interface ColumnSpec { readonly name: string; readonly type: "uuid" | "text" | "integer" | "bigint" | "double" | "boolean" | "timestamptz" | "jsonb"; readonly nullable: boolean; readonly default?: unknown; } export interface IndexSpec { readonly name: string; readonly fields: ReadonlyArray; readonly unique: boolean; } export interface LiveCollectionTable { readonly columns: ReadonlyArray; readonly indexes: ReadonlyArray; } export interface LiveCollectionsSchema { readonly tables: Readonly>; } export interface DiffOps { readonly collection: string; readonly createTable?: ReadonlyArray; readonly addColumns: ReadonlyArray; readonly dropColumns: ReadonlyArray; readonly addIndexes: ReadonlyArray; readonly dropIndexes: ReadonlyArray; } export interface CollectionSyncResult { readonly planned: ReadonlyArray; readonly applied: ReadonlyArray; }