export declare const OP: { EQUALS: string; NOT_EQUAL: string; GREATER: string; GREATER_OR_EQUAL: string; LOWER: string; LOWER_OR_EQUAL: string; LIKE: string; IN: string; NOT_IN: string; BETWEEN: string; NOT_BETWEEN: string; IS: string; }; /** * Represents a single condition */ export interface ICondition { and(cond: ICondition): ICondition; or(cond: ICondition): ICondition; } /** * Example * * { * "gender": { "=": "male" }, * "species": { "IN": ["cat", "dog"]} * } * * @export * @interface IConditionsMap */ export interface IConditionsMap { [field: string]: { [opKey: string]: any; }; } export interface IConditionGroup { conditions: ICondition[]; operator: 'AND' | 'OR'; } export declare class Condition implements ICondition { field: string; op: string; value: string; constructor(field: string, op: string, value: string); and(cond: ICondition): ConditionGroup; or(cond: ICondition): ConditionGroup; } /** * Represents a group of conditions combined by a specific logic operator */ export declare class ConditionGroup implements ICondition { conditions: ICondition[]; operator: 'AND' | 'OR'; constructor(conditions: ICondition[], operator: 'AND' | 'OR'); and(cond: ICondition): ConditionGroup; or(cond: ICondition): ConditionGroup; }