/** * Canonical, dialect-neutral SQL type. Both buildExpectedSchema (metadata→snapshot) * and introspect (db→snapshot) produce this shape; diff compares canonical to * canonical; emit re-renders to dialect-specific SQL. * * Per spec §5.2. */ export type SqlType = { kind: "text"; maxLength?: number; } | { kind: "integer"; bits: 32 | 64; } | { kind: "real"; } | { kind: "real4"; } | { kind: "numeric"; precision?: number; scale?: number; } | { kind: "boolean"; } | { kind: "timestamp"; withTimezone: boolean; } | { kind: "date"; } | { kind: "time"; } | { kind: "json"; } | { kind: "blob"; } | { kind: "uuid"; } | { kind: "inet"; } | { kind: "array"; element: SqlType; }; /** Structural equality on SqlType. */ export declare function sqlTypeEquals(a: SqlType, b: SqlType): boolean; /** * Returns true if changing column type from `from` to `to` is provably non-lossy. * Per spec §6.5. Conservative on purpose — false negatives just mean the user has * to pass `allow.typeChange`; false positives could silently corrupt data. * * Returns false for identical types (caller should not emit a change-column-type * in that case at all; this is defensive). */ export declare function isWidening(from: SqlType, to: SqlType): boolean; //# sourceMappingURL=sql-type.d.ts.map