import { AttributeTypes } from './interfaces/AttributeTypes'; import { IValue } from './interfaces/Expressions'; import { OperatorTypes } from './interfaces/OperatorTypes'; export declare class Expression { values: IValue[]; private conditions; and(subQuery?: Expression): this; or(subQuery?: Expression): this; /** * @param {string} key * @param {OperatorTypes | any} param1 - Value of key or an expression operator * @param {any | undefined} param2 - Value of key */ where(key: string, param1: OperatorTypes | any, param2?: any | undefined): this; whereBetween(key: string, firstValue: number, secondValue: number): this; whereIn(key: string, values: Array): this; attributeExists(key: string): this; attributeNotExists(key: string): this; attributeType(key: string, type: AttributeTypes): this; beginsWith(key: string, beginStr: string): this; contains(key: string, valueSet: Array): this; toString(isSub?: boolean): string; }