import { UpdateCBConfig } from 'drizzle-orm/column-builder'; import { SQL } from 'drizzle-orm/sql'; import { Update } from 'drizzle-orm/utils'; import { AnyPgTable } from '../table'; import { PgColumn, PgColumnBuilder } from './common'; export interface PgEnum { (name: string): PgEnumColumnBuilder>; readonly enumName: string; readonly enumValues: TValues; } export declare function isPgEnum(obj: unknown): obj is PgEnum<[string, ...string[]]>; export interface PgEnumColumnBuilderConfig { notNull: boolean; hasDefault: boolean; values: [string, ...string[]]; } export interface PgEnumColumnConfig extends PgEnumColumnBuilderConfig { tableName: string; } export declare class PgEnumColumnBuilder extends PgColumnBuilder<{ data: T['values'][number]; driverParam: string; notNull: T['notNull']; hasDefault: T['hasDefault']; }, { enumInstance: PgEnum; }> { protected $pgColumnBuilderBrand: 'PgEnumColumnBuilder'; constructor(name: string, enumInstance: PgEnum); notNull(): PgEnumColumnBuilder>; default(value: T['values'][number] | SQL): PgEnumColumnBuilder>; primaryKey(): PgEnumColumnBuilder>; } export declare class PgEnumColumn extends PgColumn<{ tableName: T['tableName']; data: T['values'][number]; driverParam: string; notNull: T['notNull']; hasDefault: T['hasDefault']; }> { protected $pgColumnBrand: 'PgEnumColumn'; readonly enum: PgEnum; constructor(table: AnyPgTable<{ name: T['tableName']; }>, config: PgEnumColumnBuilder>['config']); getSQLType(): string; } export declare function pgEnum>(enumName: string, values: T): PgEnum>; export declare type Writeable = { -readonly [P in keyof T]: T[P]; }; //# sourceMappingURL=enum.d.ts.map