export type Query = RootLogical & { [K in keyof T]?: FieldQuery; }; type RootLogical = { $and?: Query[]; $or?: Query[]; $not?: Query; }; type FieldOps = { $eq?: T; $ne?: T; $gt?: T; $gte?: T; $lt?: T; $lte?: T; $exists?: boolean; $regex?: string; $size?: number; }; type ArrayOps = { $in?: T[]; $nin?: T[]; }; type FieldQuery = T | (FieldOps & ArrayOps); export type Op = '$eq' | '$ne' | '$gt' | '$gte' | '$lt' | '$lte' | '$in' | '$nin' | '$and' | '$or' | '$not' | '$exists' | '$regex' | '$size'; export declare function matches(doc: TDoc, query: Query): boolean; export {};