import { BooleanType } from '..'; import { AnyExpression, Expression } from '../../expressions'; import { ConstraintConfig } from '../../functions'; import { Type } from '../index'; import { TSQueryType } from '../search/tsquery'; export declare const CHAR: (n?: number | undefined) => CharType; export declare type CharArg = CharType['argument']; export interface CharType extends Type<'CHAR', R> { expression: StringExpression>; argument: Expression | this['input'] | Expression | Expression; required(conf?: ConstraintConfig): CharType; } export declare const VARCHAR: (n?: number | undefined) => VarcharType; export declare type VarcharArg = VarcharType['argument']; export interface VarcharType extends Type<'VARCHAR', R> { expression: StringExpression>; argument: Expression | this['input'] | Expression | Expression; required(conf?: ConstraintConfig): VarcharType; } export declare const TEXT: () => TextType; export declare type TextArg = TextType['argument']; export interface TextType extends Type<'TEXT', R> { expression: StringExpression>; argument: Expression | this['input'] | Expression | Expression; required(conf?: ConstraintConfig): TextType; } export declare type CharacterTypes = CharType | VarcharType | TextType; export declare type CharacterArg = CharacterTypes['argument']; export interface StringExpression extends AnyExpression { concat(arg: CharacterArg): Expression>; match(arg: Expression): Expression>; similarTo(pattern: CharacterArg, escape?: CharacterArg): Expression>; notSimilarTo(pattern: CharacterArg, escape?: CharacterArg): Expression>; matchRegex(pattern: CharacterArg, caseSensitively?: boolean): Expression>; notMatchRegex(pattern: CharacterArg, caseSensitively?: boolean): Expression>; isNormalized(form?: 'NFC' | 'NFD' | 'NFKC' | 'NFKD'): Expression>; isNotNormalized(form?: 'NFC' | 'NFD' | 'NFKC' | 'NFKD'): Expression>; like(pattern: CharacterArg, escape?: CharacterArg): Expression>; notLike(pattern: CharacterArg, escape?: CharacterArg): Expression>; }