// Copyright IBM Corp. 2018. All Rights Reserved. // Node module: loopback-datasource-juggler // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT /** * Operators for where clauses */ export declare enum Operators { /** * Equal operator (=) */ eq = 'eq', /** * Not equal operator (!=) */ neq = 'neq', /** * Greater than operator (>) */ gt = 'gt', /** * Greater than or equal operator (>=) */ gte = 'gte', /** * Less than operator (<) */ lt = 'lt', /** * Less than or equal (<=) */ lte = 'lte', /** * IN operator. For example, `{type: {inq: ['a', 'b', 'c']}}` */ inq = 'inq', /** * Between operator. For example, `{age: {between: [18, 40]}}` */ between = 'between', /** * Exists operator */ exists = 'exists', /** * AND operator */ and = 'and', /** * OR operator */ or = 'or', } /** * Matching criteria */ export interface Condition { eq?: any; neq?: any; gt?: any; gte?: any; lt?: any; lte?: any; inq?: any[]; between?: any[]; exists?: boolean; and?: Where[]; or?: Where[]; } /** * Where object */ export interface Where { and?: Where[]; // AND or?: Where[]; // OR [property: string]: Condition | any; } /** * Selection of fields */ export interface Fields { [property: string]: boolean; } /** * Inclusion of related items */ export interface Inclusion { relation: string; scope?: Filter; } /** * Query filter object */ export interface Filter { where?: Where; fields?: string | string[] | Fields; order?: string | string[]; limit?: number; skip?: number; offset?: number; include?: string | string[] | Inclusion[]; }