import { MixinTarget } from '@loopback/core'; import { Where } from '@loopback/filter'; import { Entity, EntityCrudRepository } from '@loopback/repository'; import { QueryFilter, QueryWhere } from '../filter'; import { Query } from '../query'; export interface QueryEnhancedRepository { readonly query?: Query | null; } export interface QueryMixinOptions { overrideCruds?: boolean; } /** * A mixin to add query support to a repository. * * @param superClass - Base class * @param mixinOptions - Mixin options */ export declare function QueryRepositoryMixin>>(superClass: R, mixinOptions?: boolean | QueryMixinOptions): { new (...args: any[]): { __query__?: Query | null; readonly query: Query | null | undefined; find(filter?: QueryFilter, options?: object): Promise<(M & Relations)[]>; findOne(filter?: QueryFilter, options?: object): Promise<(M & Relations) | null>; count(where?: QueryWhere, options?: object): Promise<{ count: number; }>; entityClass: typeof Entity & { prototype: M; }; inclusionResolvers: Map>; save: (entity: import("@loopback/repository").DataObject, options?: import("@loopback/repository").Options) => Promise; update: (entity: import("@loopback/repository").DataObject, options?: import("@loopback/repository").Options) => Promise; delete: (entity: import("@loopback/repository").DataObject, options?: import("@loopback/repository").Options) => Promise; findById: (id: ID, filter?: import("@loopback/filter").FilterExcludingWhere | undefined, options?: import("@loopback/repository").Options) => Promise; updateById: (id: ID, data: import("@loopback/repository").DataObject, options?: import("@loopback/repository").Options) => Promise; replaceById: (id: ID, data: import("@loopback/repository").DataObject, options?: import("@loopback/repository").Options) => Promise; deleteById: (id: ID, options?: import("@loopback/repository").Options) => Promise; exists: (id: ID, options?: import("@loopback/repository").Options) => Promise; execute: (command: import("@loopback/repository").Command, parameters: import("@loopback/repository").NamedParameters | import("@loopback/repository").PositionalParameters, options?: import("@loopback/repository").Options) => Promise; create: (dataObject: import("@loopback/repository").DataObject, options?: import("@loopback/repository").Options) => Promise; createAll: (dataObjects: import("@loopback/repository").DataObject[], options?: import("@loopback/repository").Options) => Promise; updateAll: (dataObject: import("@loopback/repository").DataObject, where?: Where | undefined, options?: import("@loopback/repository").Options) => Promise; deleteAll: (where?: Where | undefined, options?: import("@loopback/repository").Options) => Promise; }; } & R;