import { Column, ColumnBaseConfig } from 'drizzle-orm'; import { ColumnBuilder, ColumnBuilderBaseConfig, ColumnBuilderWithConfig, UpdateCBConfig } from 'drizzle-orm/column-builder'; import { SQL } from 'drizzle-orm/sql'; import { Update } from 'drizzle-orm/utils'; import { Simplify } from 'drizzle-orm/utils'; import { UpdateDeleteAction } from '../foreign-keys'; import { AnyPgTable } from '../table'; import { PgEnumColumn, PgEnumColumnBuilder } from './enum'; import { PgText, PgTextBuilder } from './text'; export interface ReferenceConfig { ref: () => AnyPgColumn; actions: { onUpdate?: UpdateDeleteAction; onDelete?: UpdateDeleteAction; }; } export declare abstract class PgColumnBuilder, TConfig extends Record = {}> extends ColumnBuilder { protected abstract $pgColumnBuilderBrand: string; private foreignKeyConfigs; constructor(name: string); notNull(): PgColumnBuilder>; default(value: T['data'] | SQL): PgColumnBuilder>; primaryKey(): PgColumnBuilder>; references(ref: ReferenceConfig['ref'], actions?: ReferenceConfig['actions']): this; } export declare type AnyPgColumnBuilder = {}> = PgColumnBuilder>; export declare abstract class PgColumn> extends Column { readonly table: AnyPgTable<{ name: T['tableName']; }>; protected $pgBrand: 'PgColumn'; protected abstract $pgColumnBrand: string; constructor(table: AnyPgTable<{ name: T['tableName']; }>, config: PgColumnBuilder>['config']); unsafe(): AnyPgColumn; } export declare type AnyPgColumn = {}> = PgColumn>; export declare type BuildColumn = TBuilder extends PgTextBuilder ? PgText> : TBuilder extends PgEnumColumnBuilder ? PgEnumColumn> : TBuilder extends ColumnBuilderWithConfig ? PgColumn> : never; export declare type BuildColumns> = Simplify<{ [Key in keyof TConfigMap]: BuildColumn; }>; export declare type ChangeColumnTableName = TColumn extends PgColumn ? PgColumn & { tableName: TAlias; }>> : never; //# sourceMappingURL=common.d.ts.map