import type { ColumnConfig, ColumnDataType, ForeignKeyRef } from "../types/index.js"; export interface ColumnOptions { notNull?: TNotNull; primaryKey?: TPrimary; unique?: boolean; default?: unknown; defaultRaw?: string; references?: TRef; check?: string; } type ActualNotNull = P extends true ? true : N; export declare function buildColumn(dataType: T, nameOrOpts?: string | ColumnOptions, opts?: ColumnOptions): ColBuilder, TPrimary, TRef>; export type ColBuilder = ColumnConfig, P, R> & { as: (alias: TAlias) => ColBuilder & { alias: TAlias; }; array: () => ColBuilder<`${T}[]`, N, P, R>; generatedAlwaysAs: (expr: string | { sql: string; }) => ColBuilder; }; export declare const text: (nameOrOpts?: string | ColumnOptions, opts?: ColumnOptions) => ColBuilder<"text", N, P, R>; export declare const varchar: (nameOrOpts?: string | (ColumnOptions & { length?: number; }), opts?: ColumnOptions & { length?: number; }) => ColBuilder<"varchar", N, P, R>; export declare const char: (nameOrOpts?: string | (ColumnOptions & { length?: number; }), opts?: ColumnOptions & { length?: number; }) => ColBuilder<"char", N, P, R>; export declare const integer: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"integer", N, P, R>; export declare const bigint: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"bigint", N, P, R>; export declare const smallint: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"smallint", N, P, R>; export declare const serial: (nameOrOpts?: string | ColumnOptions, opts?: ColumnOptions) => ColBuilder<"serial", true, P, R>; export declare const bigserial: (nameOrOpts?: string | ColumnOptions, opts?: ColumnOptions) => ColBuilder<"bigserial", true, P, R>; export declare const smallserial: (nameOrOpts?: string | ColumnOptions, opts?: ColumnOptions) => ColBuilder<"smallserial", true, P, R>; export declare const boolean: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"boolean", N, P, R>; export declare const real: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"real", N, P, R>; export declare const doublePrecision: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"double precision", N, P, R>; export declare const numeric: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"numeric", N, P, R>; export declare const decimal: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"decimal", N, P, R>; export declare const json: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"json", N, P, R>; export declare const jsonb: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"jsonb", N, P, R>; export declare const timestamp: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"timestamp", N, P, R>; export declare const timestamptz: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"timestamptz", N, P, R>; export declare const deletedAt: (nameOrOpts?: string | ColumnOptions, opts?: ColumnOptions) => ColBuilder<"timestamptz", false, false, undefined>; export declare const date: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"date", N, P, R>; export declare const time: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"time", N, P, R>; export declare const timetz: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"timetz", N, P, R>; export declare const uuid: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"uuid", N, P, R>; export declare const bytea: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"bytea", N, P, R>; export declare const interval: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"interval", N, P, R>; export declare const inet: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"inet", N, P, R>; export declare const cidr: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"cidr", N, P, R>; export declare const macaddr: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"macaddr", N, P, R>; export declare const textArray: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"text[]", N, P, R>; export declare const integerArray: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"integer[]", N, P, R>; export declare const varcharArray: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"varchar[]", N, P, R>; export declare const uuidArray: (nameOrOpts?: string | ColumnOptions | undefined, opts?: ColumnOptions | undefined) => ColBuilder<"uuid[]", N, P, R>; export declare function customType(dataType: string): (nameOrOpts?: string | ColumnOptions, opts?: ColumnOptions) => ColBuilder; export {}; //# sourceMappingURL=columns.d.ts.map