import { BaseStatement } from './BaseStatement'; import { Raw } from './Raw'; import { StringKey, TransformPossibleColumnDefinition } from './ColumnDefinition'; export declare type WhereEntry> = ([K, '>' | '<' | '=' | 'CONTAINS', S[K]]) | ([K, 'IS NOT NULL']) | ([K, 'IN', (Raw | any)[]]) | ([[K], '>' | '<' | '=', [S[K]][]]); export declare type WhereEntryMulti2, K2 extends StringKey> = ([[K1, K2], '>' | '<' | '=', [S[K1], S[K2]][]]); export declare type WhereEntryMulti3, K2 extends StringKey, K3 extends StringKey> = ([[K1, K2, K3], '>' | '<' | '=', [S[K1], S[K2], S[K3]][]]); export declare type WhereEntryMulti4, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey> = ([[K1, K2, K3, K4], '>' | '<' | '=', [S[K1], S[K2], S[K3], S[K4]][]]); export declare type WhereEntryMulti5, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey, K5 extends StringKey> = ([[K1, K2, K3, K4, K5], '>' | '<' | '=', [S[K1], S[K2], S[K3], S[K4], S[K5]][]]); export declare class WhereStatement extends BaseStatement

{ protected whereClauseDefs: Raw[]; where(selection: Raw): this; where>(keys: [K], comparator: 'IN', valueList: [S[K]][]): this; where, K2 extends StringKey>(keys: [K1, K2], comparator: 'IN', valueList: [S[K1], S[K2]][]): this; where, K2 extends StringKey, K3 extends StringKey>(keys: [K1, K2, K3], comparator: 'IN', valueList: [S[K1], S[K2], S[K3]][]): this; where, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey>(keys: [K1, K2, K3, K4], comparator: 'IN', valueList: [S[K1], S[K2], S[K3], S[K4]][]): this; where, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey, K5 extends StringKey>(keys: [K1, K2, K3, K4, K5], comparator: 'IN', valueList: [S[K1], S[K2], S[K3], S[K4], S[K5]][]): this; where>(keys: [K], comparator: '>' | '<' | '=' | '>=' | '<=', valueList: [S[K]]): this; where, K2 extends StringKey>(keys: [K1, K2], comparator: '>' | '<' | '=' | '>=' | '<=', valueList: [S[K1], S[K2]]): this; where, K2 extends StringKey, K3 extends StringKey>(keys: [K1, K2, K3], comparator: '>' | '<' | '=' | '>=' | '<=', valueList: [S[K1], S[K2], S[K3]]): this; where, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey>(keys: [K1, K2, K3, K4], comparator: '>' | '<' | '=' | '>=' | '<=', valueList: [S[K1], S[K2], S[K3], S[K4]]): this; where, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey, K5 extends StringKey>(keys: [K1, K2, K3, K4, K5], comparator: '>' | '<' | '=' | '>=' | '<=', valueList: [S[K1], S[K2], S[K3], S[K4], S[K5]]): this; where>(selection: WhereEntry[]): this; where, K2 extends StringKey>(selection: WhereEntryMulti2[]): this; where, K2 extends StringKey, K3 extends StringKey>(selection: WhereEntryMulti3[]): this; where, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey>(selection: WhereEntryMulti4[]): this; where, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey, K5 extends StringKey>(selection: WhereEntryMulti5[]): this; where(selection: Partial<{ [J in StringKey]: S[J]; }>): this; where>(key: K, comparator: 'IS NOT NULL'): this; where>(key: K, comparator: 'IN', values: S[K][]): this; where>(key: K, comparator: '>' | '<' | '=' | '>=' | '<=' | 'CONTAINS', value: S[K]): this; whereIsNotNull>(key: K): this; whereIn(where: { [K in StringKey]: S[K]; }[]): this; whereIn>(keys: [K], valueList: [S[K]][]): this; whereIn, K2 extends StringKey>(keys: [K1, K2], valueList: [S[K1], S[K2]][]): this; whereIn, K2 extends StringKey, K3 extends StringKey>(keys: [K1, K2, K3], valueList: [S[K1], S[K2], S[K3]][]): this; whereIn, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey>(keys: [K1, K2, K3, K4], valueList: [S[K1], S[K2], S[K3], S[K4]][]): this; whereIn, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey, K5 extends StringKey>(keys: [K1, K2, K3, K4, K5], valueList: [S[K1], S[K2], S[K3], S[K4], S[K5]][]): this; whereIn>(keys: K[], valueList: any[][]): this; whereIn>(key: K, values: S[K][]): this; whereContains>(keys: [K], valueList: [S[K]]): this; whereContains, K2 extends StringKey>(keys: [K1, K2], valueList: [S[K1], S[K2]]): this; whereContains, K2 extends StringKey, K3 extends StringKey>(keys: [K1, K2, K3], valueList: [S[K1], S[K2], S[K3]]): this; whereContains, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey>(keys: [K1, K2, K3, K4], valueList: [S[K1], S[K2], S[K3], S[K4]]): this; whereContains, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey, K5 extends StringKey>(keys: [K1, K2, K3, K4, K5], valueList: [S[K1], S[K2], S[K3], S[K4], S[K5]]): this; whereContains>(keys: K[], valueList: S[K][]): this; whereContains>(key: K, value: S[K]): this; whereLowerThan>(keys: [K], valueList: [S[K]]): this; whereLowerThan, K2 extends StringKey>(keys: [K1, K2], valueList: [S[K1], S[K2]]): this; whereLowerThan, K2 extends StringKey, K3 extends StringKey>(keys: [K1, K2, K3], valueList: [S[K1], S[K2], S[K3]]): this; whereLowerThan, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey>(keys: [K1, K2, K3, K4], valueList: [S[K1], S[K2], S[K3], S[K4]]): this; whereLowerThan, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey, K5 extends StringKey>(keys: [K1, K2, K3, K4, K5], valueList: [S[K1], S[K2], S[K3], S[K4], S[K5]]): this; whereLowerThan>(keys: K[], valueList: any[]): this; whereLowerThan>(key: K, value: S[K]): this; whereGreaterThan>(keys: [K], valueList: [S[K]]): this; whereGreaterThan, K2 extends StringKey>(keys: [K1, K2], valueList: [S[K1], S[K2]]): this; whereGreaterThan, K2 extends StringKey, K3 extends StringKey>(keys: [K1, K2, K3], valueList: [S[K1], S[K2], S[K3]]): this; whereGreaterThan, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey>(keys: [K1, K2, K3, K4], valueList: [S[K1], S[K2], S[K3], S[K4]]): this; whereGreaterThan, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey, K5 extends StringKey>(keys: [K1, K2, K3, K4, K5], valueList: [S[K1], S[K2], S[K3], S[K4], S[K5]]): this; whereGreaterThan>(keys: K[], valueList: any[]): this; whereGreaterThan>(key: K, value: S[K]): this; whereEquals>(keys: [K], valueList: [S[K]]): this; whereEquals, K2 extends StringKey>(keys: [K1, K2], valueList: [S[K1], S[K2]]): this; whereEquals, K2 extends StringKey, K3 extends StringKey>(keys: [K1, K2, K3], valueList: [S[K1], S[K2], S[K3]]): this; whereEquals, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey>(keys: [K1, K2, K3, K4], valueList: [S[K1], S[K2], S[K3], S[K4]]): this; whereEquals, K2 extends StringKey, K3 extends StringKey, K4 extends StringKey, K5 extends StringKey>(keys: [K1, K2, K3, K4, K5], valueList: [S[K1], S[K2], S[K3], S[K4], S[K5]]): this; whereEquals>(keys: K[], valueList: any[]): this; whereEquals>(key: K, value: S[K]): this; hasWhereClauses(): boolean; getWhereParams(): any[]; getWhereQuery(): string; }