export interface Identifier { _id: string; } interface Operator { $lt?: T; $lte?: T; $gt?: T; $gte?: T; $ne?: T; $in?: T[]; $nin?: T[]; $exists?: boolean; $regex?: RegExp; } interface LogicalOperator { $and?: Array>; $or?: Array>; $not?: Query; $where?: (this: T) => boolean; } /** * A query to select objects in database. */ export declare type Query = Partial | LogicalOperator | { [P in keyof T]?: Operator; }; /** * A projection for selected objects. */ export declare type Projection = { [P in keyof T]?: 0 | 1; }; interface UpdateOperator { $set?: Partial; $unset?: { [P in keyof T]?: true; }; $inc?: Partial; $min?: Partial; $max?: Partial; } /** * An update query. */ export declare type Update = T | UpdateOperator; export {};