type ColumnKind = "id" | "string" | "text" | "boolean" | "integer" | "bigInteger" | "timestamp" | "json" | "jsonb" | "foreignId"; interface ForeignKeyOptions { referencesTable: string; referencesColumn: string; onDelete?: "cascade" | "set null" | "restrict"; } declare class ColumnDefinition { readonly name: string; kind: ColumnKind; length?: number; isNullable: boolean; isPrimary: boolean; isUnique: boolean; autoIncrement: boolean; defaultValue?: string; checkExpression?: string; foreignKey?: ForeignKeyOptions; constructor(name: string, kind: ColumnKind); nullable(): this; notNullable(): this; default(value: string | number | boolean): this; defaultRaw(expression: string): this; unique(): this; primary(): this; check(expression: string): this; } declare class ForeignIdColumnDefinition extends ColumnDefinition { constructor(name: string); references(table: string, column?: string): this; constrained(table?: string): this; cascadeOnDelete(): this; nullOnDelete(): this; } declare function inferReferencedTable(columnName: string): string; export type { ColumnKind, ForeignKeyOptions }; export { ColumnDefinition, ForeignIdColumnDefinition, inferReferencedTable };