import { ColumnType } from 'fewer';
export interface ColumnOptions {
    nonNull?: boolean;
    unique?: boolean;
    default?: any;
}
export interface NumericOptions extends ColumnOptions {
    precision?: number;
    scale?: number;
}
export interface CharacterOptions extends ColumnOptions {
    length?: number;
}
export interface PathOptions extends ColumnOptions {
    open?: boolean;
}
export interface ArrayOptions<T> extends ColumnOptions {
    type: T;
}
declare const columnTypes: {
    boolean: (config?: ColumnOptions | undefined) => ColumnType<boolean | undefined, ColumnOptions>;
    numeric: (config?: NumericOptions | undefined) => ColumnType<number | undefined, NumericOptions>;
    decimal: (config?: NumericOptions | undefined) => ColumnType<number | undefined, NumericOptions>;
    smallint: (config?: ColumnOptions | undefined) => ColumnType<number | undefined, ColumnOptions>;
    integer: (config?: ColumnOptions | undefined) => ColumnType<number | undefined, ColumnOptions>;
    int: (config?: ColumnOptions | undefined) => ColumnType<number | undefined, ColumnOptions>;
    bigint: (config?: ColumnOptions | undefined) => ColumnType<number | undefined, ColumnOptions>;
    double: (config?: ColumnOptions | undefined) => ColumnType<number | undefined, ColumnOptions>;
    real: (config?: ColumnOptions | undefined) => ColumnType<number | undefined, ColumnOptions>;
    smallserial: (options?: ColumnOptions | undefined) => ColumnType<number, any>;
    serial: (options?: ColumnOptions | undefined) => ColumnType<number, any>;
    bigserial: (options?: ColumnOptions | undefined) => ColumnType<number, any>;
    char: (config?: CharacterOptions | undefined) => ColumnType<string | undefined, CharacterOptions>;
    varchar: (config?: CharacterOptions | undefined) => ColumnType<string | undefined, CharacterOptions>;
    text: (config?: ColumnOptions | undefined) => ColumnType<string | undefined, ColumnOptions>;
    string: (options?: CharacterOptions | undefined) => ColumnType<string | undefined, CharacterOptions>;
    bytea: (config?: ColumnOptions | undefined) => ColumnType<string | undefined, ColumnOptions>;
    point: (config?: ColumnOptions | undefined) => ColumnType<[number, number] | undefined, ColumnOptions>;
    line: (config?: ColumnOptions | undefined) => ColumnType<{
        A: number;
        B: number;
        C: number;
    } | undefined, ColumnOptions>;
    lseg: (config?: ColumnOptions | undefined) => ColumnType<[[number, number], [number, number]] | undefined, ColumnOptions>;
    box: (config?: ColumnOptions | undefined) => ColumnType<[[number, number], [number, number]] | undefined, ColumnOptions>;
    path: (config?: PathOptions | undefined) => ColumnType<[number, number][] | undefined, PathOptions>;
    polygon: (config?: PathOptions | undefined) => ColumnType<[number, number][] | undefined, PathOptions>;
    circle: (config?: ColumnOptions | undefined) => ColumnType<[[number, number], number] | undefined, ColumnOptions>;
    uuid: (config?: ColumnOptions | undefined) => ColumnType<string | undefined, ColumnOptions>;
    json: (config?: ColumnOptions | undefined) => ColumnType<object | undefined, ColumnOptions>;
    jsonb: (config?: ColumnOptions | undefined) => ColumnType<object | undefined, ColumnOptions>;
};
export default columnTypes;
