import type { ColumnBuilderBaseConfig } from "../../column-builder.cjs"; import type { ColumnBaseConfig } from "../../column.cjs"; import { entityKind } from "../../entity.cjs"; import type { AnyPgTable } from "../table.cjs"; import type { Writable } from "../../utils.cjs"; import { PgColumn, PgColumnBuilder } from "./common.cjs"; export type PgEnumColumnBuilderInitial = PgEnumColumnBuilder<{ name: TName; dataType: 'string'; columnType: 'PgEnumColumn'; data: TValues[number]; enumValues: TValues; driverParam: string; }>; export interface PgEnum { (): PgEnumColumnBuilderInitial<'', TValues>; (name: TName): PgEnumColumnBuilderInitial; (name?: TName): PgEnumColumnBuilderInitial; readonly enumName: string; readonly enumValues: TValues; readonly schema: string | undefined; } export declare function isPgEnum(obj: unknown): obj is PgEnum<[string, ...string[]]>; export declare class PgEnumColumnBuilder & { enumValues: [string, ...string[]]; }> extends PgColumnBuilder; }> { static readonly [entityKind]: string; constructor(name: T['name'], enumInstance: PgEnum); } export declare class PgEnumColumn & { enumValues: [string, ...string[]]; }> extends PgColumn; }> { static readonly [entityKind]: string; readonly enum: PgEnum; readonly enumValues: T["enumValues"]; constructor(table: AnyPgTable<{ name: T['tableName']; }>, config: PgEnumColumnBuilder['config']); getSQLType(): string; } export declare function pgEnum>(enumName: string, values: T | Writable): PgEnum>;