import type { ColumnBuilderBaseConfig } from "../../column-builder.js";
import type { ColumnBaseConfig } from "../../column.js";
import { entityKind } from "../../entity.js";
import { CockroachColumn, CockroachColumnWithArrayBuilder } from "./common.js";
import type { Precision } from "./timestamp.js";
export type CockroachIntervalBuilderInitial<TName extends string> = CockroachIntervalBuilder<{
    name: TName;
    dataType: 'string';
    columnType: 'CockroachInterval';
    data: string;
    driverParam: string;
    enumValues: undefined;
}>;
export declare class CockroachIntervalBuilder<T extends ColumnBuilderBaseConfig<'string', 'CockroachInterval'>> extends CockroachColumnWithArrayBuilder<T, {
    intervalConfig: IntervalConfig;
}> {
    static readonly [entityKind]: string;
    constructor(name: T['name'], intervalConfig: IntervalConfig);
}
export declare class CockroachInterval<T extends ColumnBaseConfig<'string', 'CockroachInterval'>> extends CockroachColumn<T, {
    intervalConfig: IntervalConfig;
}> {
    static readonly [entityKind]: string;
    readonly fields: IntervalConfig['fields'];
    readonly precision: IntervalConfig['precision'];
    getSQLType(): string;
}
export interface IntervalConfig {
    fields?: 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second' | 'year to month' | 'day to hour' | 'day to minute' | 'day to second' | 'hour to minute' | 'hour to second' | 'minute to second';
    precision?: Precision;
}
export declare function interval(): CockroachIntervalBuilderInitial<''>;
export declare function interval(config?: IntervalConfig): CockroachIntervalBuilderInitial<''>;
export declare function interval<TName extends string>(name: TName, config?: IntervalConfig): CockroachIntervalBuilderInitial<TName>;
