import { CharacterArg, DoubleArg, TextType } from '..'; import { AnyExpression, Expression } from '../../expressions'; import { ConstraintConfig } from '../../functions'; import { Type } from '../index'; import { DateType } from './date'; import { TimeTypes } from './time'; import { TimestampTypes } from './timestamp'; export declare function INTERVAL(fields?: string, precission?: number): IntervalType; export interface PostgresInterval { years?: number; days?: number; hours?: number; seconds?: number; toPostgres(): string; toISOString(): string; } export declare type IntervalArg = IntervalType['argument']; export interface IntervalType extends Type<'INTERVAL', R> { expression: IntervalExpression; argument: Expression | this['input']; required(conf?: ConstraintConfig): IntervalType; } export interface IntervalExpression extends AnyExpression> { concat(arg: CharacterArg): Expression>; add(arg: IntervalArg): Expression>; add(arg: Expression): Expression>; add(arg: Expression): Expression; add(arg: Expression): Expression; negate(): Expression>; sub(arg: IntervalArg): Expression>; mul(arg: DoubleArg): Expression>; div(arg: DoubleArg): Expression>; }