/// import { ArrayType, BooleanType, ByteaType, JSONBType, NumericType, TextType, TimestampType, Type, UnknownType } from '../types'; import { AnyExpression } from './any'; export * from './any'; export * from './array'; export * from './json'; export * from './math'; export * from './search'; export * from './string'; export * from './timezone'; declare const ExpressionImpl_base: { new (...args: any[]): { isNormalized(form?: "NFC" | "NFD" | "NFKC" | "NFKD" | undefined): import("../types").BooleanExpression; isNotNormalized(form?: "NFC" | "NFD" | "NFKC" | "NFKD" | undefined): import("../types").BooleanExpression; like(pattern: string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>, escape?: string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression> | undefined): import("../types").BooleanExpression; notLike(pattern: string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>, escape?: string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression> | undefined): import("../types").BooleanExpression; similarTo(pattern: string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>, escape?: string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression> | undefined): import("../types").BooleanExpression; notSimilarTo(pattern: string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>, escape?: string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression> | undefined): import("../types").BooleanExpression; matchRegex(pattern: string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>, caseSensitively?: boolean): import("../types").BooleanExpression; notMatchRegex(pattern: string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>, caseSensitively?: boolean): import("../types").BooleanExpression; type: Type, boolean, any>; alias?: string | undefined; columns?: string[] | undefined; as(alias: string, columns?: string[] | undefined): any; toQuery(start?: number): [string, any[]]; toSource(): import("../template").Template; cast, boolean, any>>(type: NT): Expression; concat(operand: any): AnyExpression, boolean, any>>; eq(operand: any): import("../types").BooleanExpression; ne(operand: any): import("../types").BooleanExpression; is(operand: boolean | "UNKNOWN" | null): import("../types").BooleanExpression; isNot(operand: boolean | "UNKNOWN" | null): import("../types").BooleanExpression; isDistinctFrom(operand: any): import("../types").BooleanExpression; isNotDistinctFrom(operand: any): import("../types").BooleanExpression; gt(operand: any): import("../types").BooleanExpression; lt(operand: any): import("../types").BooleanExpression; gte(operand: any): import("../types").BooleanExpression; lte(operand: any): import("../types").BooleanExpression; gl(operand: any): import("../types").BooleanExpression; between(from: any, to: any): import("../types").BooleanExpression; notBetween(from: any, to: any): import("../types").BooleanExpression; betweenSymetric(from: any, to: any): import("../types").BooleanExpression; notBetweenSymetric(from: any, to: any): import("../types").BooleanExpression; in(subquery: any): import("../types").BooleanExpression; in(...operands: any[]): import("../types").BooleanExpression; notIn(subquery: any): import("../types").BooleanExpression; notIn(...operands: any[]): import("../types").BooleanExpression; contain(arg: any): import("../types").BooleanExpression; contained(arg: any): import("../types").BooleanExpression; strings: string[]; literals: any[]; readonly text: string; readonly values: any[]; }; } & { new (...args: any[]): { tz(operand: string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>): AnyExpression, boolean, any>>; type: Type, boolean, any>; alias?: string | undefined; columns?: string[] | undefined; as(alias: string, columns?: string[] | undefined): any; toQuery(start?: number): [string, any[]]; toSource(): import("../template").Template; cast, boolean, any>>(type: NT): Expression; concat(operand: any): AnyExpression, boolean, any>>; eq(operand: any): import("../types").BooleanExpression; ne(operand: any): import("../types").BooleanExpression; is(operand: boolean | "UNKNOWN" | null): import("../types").BooleanExpression; isNot(operand: boolean | "UNKNOWN" | null): import("../types").BooleanExpression; isDistinctFrom(operand: any): import("../types").BooleanExpression; isNotDistinctFrom(operand: any): import("../types").BooleanExpression; gt(operand: any): import("../types").BooleanExpression; lt(operand: any): import("../types").BooleanExpression; gte(operand: any): import("../types").BooleanExpression; lte(operand: any): import("../types").BooleanExpression; gl(operand: any): import("../types").BooleanExpression; between(from: any, to: any): import("../types").BooleanExpression; notBetween(from: any, to: any): import("../types").BooleanExpression; betweenSymetric(from: any, to: any): import("../types").BooleanExpression; notBetweenSymetric(from: any, to: any): import("../types").BooleanExpression; in(subquery: any): import("../types").BooleanExpression; in(...operands: any[]): import("../types").BooleanExpression; notIn(subquery: any): import("../types").BooleanExpression; notIn(...operands: any[]): import("../types").BooleanExpression; contain(arg: any): import("../types").BooleanExpression; contained(arg: any): import("../types").BooleanExpression; strings: string[]; literals: any[]; readonly text: string; readonly values: any[]; }; } & { new (...args: any[]): { add(operand: any): AnyExpression, boolean, any>>; sub(operand: any): AnyExpression, boolean, any>>; mul(operand: any): AnyExpression, boolean, any>>; div(operand: any): AnyExpression, boolean, any>>; mod(operand: any): AnyExpression, boolean, any>>; neg(): AnyExpression, boolean, any>>; abs(): AnyExpression, boolean, any>>; pow(operand: any): AnyExpression, boolean, any>>; sqrt(): AnyExpression, boolean, any>>; cbrt(): AnyExpression, boolean, any>>; type: Type, boolean, any>; alias?: string | undefined; columns?: string[] | undefined; as(alias: string, columns?: string[] | undefined): any; toQuery(start?: number): [string, any[]]; toSource(): import("../template").Template; cast, boolean, any>>(type: NT): Expression; concat(operand: any): AnyExpression, boolean, any>>; eq(operand: any): import("../types").BooleanExpression; ne(operand: any): import("../types").BooleanExpression; is(operand: boolean | "UNKNOWN" | null): import("../types").BooleanExpression; isNot(operand: boolean | "UNKNOWN" | null): import("../types").BooleanExpression; isDistinctFrom(operand: any): import("../types").BooleanExpression; isNotDistinctFrom(operand: any): import("../types").BooleanExpression; gt(operand: any): import("../types").BooleanExpression; lt(operand: any): import("../types").BooleanExpression; gte(operand: any): import("../types").BooleanExpression; lte(operand: any): import("../types").BooleanExpression; gl(operand: any): import("../types").BooleanExpression; between(from: any, to: any): import("../types").BooleanExpression; notBetween(from: any, to: any): import("../types").BooleanExpression; betweenSymetric(from: any, to: any): import("../types").BooleanExpression; notBetweenSymetric(from: any, to: any): import("../types").BooleanExpression; in(subquery: any): import("../types").BooleanExpression; in(...operands: any[]): import("../types").BooleanExpression; notIn(subquery: any): import("../types").BooleanExpression; notIn(...operands: any[]): import("../types").BooleanExpression; contain(arg: any): import("../types").BooleanExpression; contained(arg: any): import("../types").BooleanExpression; strings: string[]; literals: any[]; readonly text: string; readonly values: any[]; }; } & { new (...args: any[]): { and(operand: any): AnyExpression, boolean, any>>; or(operand: any): AnyExpression, boolean, any>>; xor(operand: any): AnyExpression, boolean, any>>; not(): AnyExpression, boolean, any>>; lshift(operand: any): AnyExpression, boolean, any>>; rshift(operand: any): AnyExpression, boolean, any>>; type: Type, boolean, any>; alias?: string | undefined; columns?: string[] | undefined; as(alias: string, columns?: string[] | undefined): any; toQuery(start?: number): [string, any[]]; toSource(): import("../template").Template; cast, boolean, any>>(type: NT): Expression; concat(operand: any): AnyExpression, boolean, any>>; eq(operand: any): import("../types").BooleanExpression; ne(operand: any): import("../types").BooleanExpression; is(operand: boolean | "UNKNOWN" | null): import("../types").BooleanExpression; isNot(operand: boolean | "UNKNOWN" | null): import("../types").BooleanExpression; isDistinctFrom(operand: any): import("../types").BooleanExpression; isNotDistinctFrom(operand: any): import("../types").BooleanExpression; gt(operand: any): import("../types").BooleanExpression; lt(operand: any): import("../types").BooleanExpression; gte(operand: any): import("../types").BooleanExpression; lte(operand: any): import("../types").BooleanExpression; gl(operand: any): import("../types").BooleanExpression; between(from: any, to: any): import("../types").BooleanExpression; notBetween(from: any, to: any): import("../types").BooleanExpression; betweenSymetric(from: any, to: any): import("../types").BooleanExpression; notBetweenSymetric(from: any, to: any): import("../types").BooleanExpression; in(subquery: any): import("../types").BooleanExpression; in(...operands: any[]): import("../types").BooleanExpression; notIn(subquery: any): import("../types").BooleanExpression; notIn(...operands: any[]): import("../types").BooleanExpression; contain(arg: any): import("../types").BooleanExpression; contained(arg: any): import("../types").BooleanExpression; strings: string[]; literals: any[]; readonly text: string; readonly values: any[]; }; } & { new (...args: any[]): { overlap(other: string | any[] | AnyExpression, boolean, any>> | import("../types").ArrayExpression, boolean, any>, boolean> | AnyExpression, boolean, any>>[]): import("../types").BooleanExpression; unshift(other: string | any[] | AnyExpression, boolean, any>> | import("../types").ArrayExpression, boolean, any>, boolean> | AnyExpression, boolean, any>>[]): import("../types").ArrayExpression, boolean, any>, boolean>; push(other: string | any[] | AnyExpression, boolean, any>> | import("../types").ArrayExpression, boolean, any>, boolean> | AnyExpression, boolean, any>>[]): import("../types").ArrayExpression, boolean, any>, boolean>; item(l: string | number | bigint | import("../types").IntegralExpression> | import("../types").IntegralExpression> | import("../types").IntegralExpression>, u?: string | number | bigint | import("../types").IntegralExpression> | import("../types").IntegralExpression> | import("../types").IntegralExpression> | undefined): import("../types").ArrayExpression, boolean, any>, boolean>; type: Type, boolean, any>; alias?: string | undefined; columns?: string[] | undefined; as(alias: string, columns?: string[] | undefined): any; toQuery(start?: number): [string, any[]]; toSource(): import("../template").Template; cast, boolean, any>>(type: NT): Expression; concat(operand: any): AnyExpression, boolean, any>>; eq(operand: any): import("../types").BooleanExpression; ne(operand: any): import("../types").BooleanExpression; is(operand: boolean | "UNKNOWN" | null): import("../types").BooleanExpression; isNot(operand: boolean | "UNKNOWN" | null): import("../types").BooleanExpression; isDistinctFrom(operand: any): import("../types").BooleanExpression; isNotDistinctFrom(operand: any): import("../types").BooleanExpression; gt(operand: any): import("../types").BooleanExpression; lt(operand: any): import("../types").BooleanExpression; gte(operand: any): import("../types").BooleanExpression; lte(operand: any): import("../types").BooleanExpression; gl(operand: any): import("../types").BooleanExpression; between(from: any, to: any): import("../types").BooleanExpression; notBetween(from: any, to: any): import("../types").BooleanExpression; betweenSymetric(from: any, to: any): import("../types").BooleanExpression; notBetweenSymetric(from: any, to: any): import("../types").BooleanExpression; in(subquery: any): import("../types").BooleanExpression; in(...operands: any[]): import("../types").BooleanExpression; notIn(subquery: any): import("../types").BooleanExpression; notIn(...operands: any[]): import("../types").BooleanExpression; contain(arg: any): import("../types").BooleanExpression; contained(arg: any): import("../types").BooleanExpression; strings: string[]; literals: any[]; readonly text: string; readonly values: any[]; }; } & { new (...args: any[]): { get(item: string | number | bigint | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").IntegralExpression>): import("../types").JSONExpression | import("../types").JSONBExpression; getText(item: string | number | bigint | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").IntegralExpression>): import("../types").StringExpression>; getByPath(path: (string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>)[] | import("../types").ArrayExpression, boolean>): import("../types").JSONExpression | import("../types").JSONBExpression; getTextByPath(path: (string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>)[] | import("../types").ArrayExpression, boolean>): import("../types").StringExpression>; includes(text: string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>): import("../types").BooleanExpression; includesAny(text: (string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>)[] | import("../types").ArrayExpression, boolean>): import("../types").BooleanExpression; includesAll(text: (string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>)[] | import("../types").ArrayExpression, boolean>): import("../types").BooleanExpression; unset(item: string | number | bigint | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").IntegralExpression>): import("../types").JSONBExpression; unsetAll(item: (string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>)[] | import("../types").ArrayExpression, boolean>): import("../types").JSONBExpression; unsetByPath(path: (string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>)[] | import("../types").ArrayExpression, boolean>): import("../types").JSONBExpression; jsonPathExist(path: string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>): import("../types").BooleanExpression; jsonPathCheck(path: string | import("../types").StringExpression> | import("../types").StringExpression> | import("../types").StringExpression>): import("../types").BooleanExpression; type: Type, boolean, any>; alias?: string | undefined; columns?: string[] | undefined; as(alias: string, columns?: string[] | undefined): any; toQuery(start?: number): [string, any[]]; toSource(): import("../template").Template; cast, boolean, any>>(type: NT): Expression; concat(operand: any): AnyExpression, boolean, any>>; eq(operand: any): import("../types").BooleanExpression; ne(operand: any): import("../types").BooleanExpression; is(operand: boolean | "UNKNOWN" | null): import("../types").BooleanExpression; isNot(operand: boolean | "UNKNOWN" | null): import("../types").BooleanExpression; isDistinctFrom(operand: any): import("../types").BooleanExpression; isNotDistinctFrom(operand: any): import("../types").BooleanExpression; gt(operand: any): import("../types").BooleanExpression; lt(operand: any): import("../types").BooleanExpression; gte(operand: any): import("../types").BooleanExpression; lte(operand: any): import("../types").BooleanExpression; gl(operand: any): import("../types").BooleanExpression; between(from: any, to: any): import("../types").BooleanExpression; notBetween(from: any, to: any): import("../types").BooleanExpression; betweenSymetric(from: any, to: any): import("../types").BooleanExpression; notBetweenSymetric(from: any, to: any): import("../types").BooleanExpression; in(subquery: any): import("../types").BooleanExpression; in(...operands: any[]): import("../types").BooleanExpression; notIn(subquery: any): import("../types").BooleanExpression; notIn(...operands: any[]): import("../types").BooleanExpression; contain(arg: any): import("../types").BooleanExpression; contained(arg: any): import("../types").BooleanExpression; strings: string[]; literals: any[]; readonly text: string; readonly values: any[]; }; } & { new (...args: any[]): { match(arg: any): import("../types").BooleanExpression; also(arg: import("../types").TSQueryExpression): import("../types").TSQueryExpression; either(arg: import("../types").TSQueryExpression): import("../types").TSQueryExpression; no(): import("../types").TSQueryExpression; successive(arg: import("../types").TSQueryExpression): import("../types").TSQueryExpression; type: Type, boolean, any>; alias?: string | undefined; columns?: string[] | undefined; as(alias: string, columns?: string[] | undefined): any; toQuery(start?: number): [string, any[]]; toSource(): import("../template").Template; cast, boolean, any>>(type: NT): Expression; concat(operand: any): AnyExpression, boolean, any>>; eq(operand: any): import("../types").BooleanExpression; ne(operand: any): import("../types").BooleanExpression; is(operand: boolean | "UNKNOWN" | null): import("../types").BooleanExpression; isNot(operand: boolean | "UNKNOWN" | null): import("../types").BooleanExpression; isDistinctFrom(operand: any): import("../types").BooleanExpression; isNotDistinctFrom(operand: any): import("../types").BooleanExpression; gt(operand: any): import("../types").BooleanExpression; lt(operand: any): import("../types").BooleanExpression; gte(operand: any): import("../types").BooleanExpression; lte(operand: any): import("../types").BooleanExpression; gl(operand: any): import("../types").BooleanExpression; between(from: any, to: any): import("../types").BooleanExpression; notBetween(from: any, to: any): import("../types").BooleanExpression; betweenSymetric(from: any, to: any): import("../types").BooleanExpression; notBetweenSymetric(from: any, to: any): import("../types").BooleanExpression; in(subquery: any): import("../types").BooleanExpression; in(...operands: any[]): import("../types").BooleanExpression; notIn(subquery: any): import("../types").BooleanExpression; notIn(...operands: any[]): import("../types").BooleanExpression; contain(arg: any): import("../types").BooleanExpression; contained(arg: any): import("../types").BooleanExpression; strings: string[]; literals: any[]; readonly text: string; readonly values: any[]; }; } & typeof AnyExpression; export declare class ExpressionImpl extends ExpressionImpl_base { } export declare type Constructor = new (...args: any[]) => T; export declare const expression: (strings: TemplateStringsArray, ...literals: any[]) => any; export declare type Expression = T['expression']; export declare type PrimitiveToType = T extends boolean ? BooleanType : T extends number ? NumericType : T extends string ? TextType : T extends Buffer ? ByteaType : T extends Date ? TimestampType : T extends Array ? ArrayType, R> : T extends Record ? JSONBType : UnknownType; export declare type ToType = T extends Expression ? T['type'] : Exclude extends never ? UnknownType : null extends T ? PrimitiveToType, true> : undefined extends T ? PrimitiveToType, true> : PrimitiveToType; export declare type ToExpression = T extends Expression ? T : Expression>; declare type IsUnknownRequired = null extends T ? true : undefined extends T ? true : false; export declare type UnknownLiteral = UnknownType>; export declare function literal(lit: T): Expression>; export declare type Condition = Condition[] | AnyExpression | 'AND' | 'OR' | 'NOT'; export declare const condition: (cond: Condition) => Expression; export declare const toExpression: (val: any) => Expression>;