import { CharacterArg, TextType, IntegerArg, IntegerType } from '..' import { AnyExpression, Expression } from '../../expressions' import { ConstraintConfig } from '../../functions' import { Type, type } from '../index' import { IntervalArg } from './interval' import { TimeArg } from './time' import { TimestampType } from './timestamp' export const DATE = () => type`DATE` as DateType export type DateArg = DateType['argument'] export interface DateType extends Type<'DATE', R> { expression: DateExpression argument: Expression | this['input'] required(conf?: ConstraintConfig): DateType } interface DateExpression extends AnyExpression> { concat(arg: CharacterArg): Expression> add(arg: IntegerArg): Expression> add(arg: IntervalArg): Expression> add(arg: TimeArg): Expression> sub(arg: DateArg): Expression> sub(arg: IntegerArg): Expression> sub(arg: IntervalArg): Expression> }