import { BooleanType, CharacterArg, TextType } from '../' import { AnyExpression, Expression } from '../../expressions' import { ConstraintConfig } from '../../functions' import { Type, type } from '../index' import { TSVectorArg } from './tsvector' export const TSQUERY = () => type`TSQUERY` as TSQueryType export type TSQueryArg = TSQueryType['argument'] export interface TSQueryType extends Type<'TSQUERY', R> { expression: TSQueryExpression argument: Expression | this['input'] required(conf?: ConstraintConfig): TSQueryType } export interface TSQueryExpression extends AnyExpression> { concat (arg: CharacterArg): Expression> match (arg: TSVectorArg): Expression> also (arg: TSQueryArg): Expression> either (arg: TSQueryArg): Expression> no (): Expression> successive (arg: TSQueryArg): Expression> }