import type { ColumnBuilderBaseConfig, MakeColumnConfig } from '../../column-builder.js'; import type { ColumnBaseConfig } from '../../column.js'; import { entityKind } from '../../entity.js'; import type { AnyPgTable } from '../table.js'; import type { NonArray, Writable } from '../../utils.js'; import { PgColumn, PgColumnBuilder } from './common.js'; export type PgEnumObjectColumnBuilderInitial = PgEnumObjectColumnBuilder<{ name: TName; dataType: 'string'; columnType: 'PgEnumObjectColumn'; data: TValues[keyof TValues]; enumValues: string[]; driverParam: string; }>; export interface PgEnumObject { (): PgEnumObjectColumnBuilderInitial<'', TValues>; (name: TName): PgEnumObjectColumnBuilderInitial; (name?: TName): PgEnumObjectColumnBuilderInitial; readonly enumName: string; readonly enumValues: string[]; readonly schema: string | undefined; /** @internal */ [isPgEnumSym]: true; } export declare class PgEnumObjectColumnBuilder & { enumValues: string[]; }> extends PgColumnBuilder; }> { static readonly [entityKind]: string; constructor(name: T['name'], enumInstance: PgEnumObject); /** @internal */ build(table: AnyPgTable<{ name: TTableName; }>): PgEnumObjectColumn>; } export declare class PgEnumObjectColumn & { enumValues: object; }> extends PgColumn; }> { static readonly [entityKind]: string; readonly enum: PgEnumObject; readonly enumValues: string[]; constructor(table: AnyPgTable<{ name: T['tableName']; }>, config: PgEnumObjectColumnBuilder['config']); getSQLType(): string; } export type PgEnumColumnBuilderInitial = PgEnumColumnBuilder<{ name: TName; dataType: 'string'; columnType: 'PgEnumColumn'; data: TValues[number]; enumValues: TValues; driverParam: string; }>; declare const isPgEnumSym: unique symbol; export interface PgEnum { (): PgEnumColumnBuilderInitial<'', TValues>; (name: TName): PgEnumColumnBuilderInitial; (name?: TName): PgEnumColumnBuilderInitial; readonly enumName: string; readonly enumValues: TValues; readonly schema: string | undefined; /** @internal */ [isPgEnumSym]: true; } 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); /** @internal */ build(table: AnyPgTable<{ name: TTableName; }>): PgEnumColumn>; } 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>; export declare function pgEnum>(enumName: string, enumObj: NonArray): PgEnumObject; /** @internal */ export declare function pgEnumWithSchema>(enumName: string, values: T | Writable, schema?: string): PgEnum>; /** @internal */ export declare function pgEnumObjectWithSchema(enumName: string, values: T, schema?: string): PgEnumObject; export {}; //# sourceMappingURL=enum.d.ts.map