import { ClientSession, MongoClient } from "mongodb"; import { IDocumentClass, IDocumentInstance, IExplain, IQueryOptions, IQueryUpdaterOptions, IRepositoryOptions, IWeakTypeQueryUpdaterOptions } from "../types"; import { QueryAsyncIterator } from "./QueryAsyncIterator"; import { QueryDeleter } from "./QueryDeleter"; import { QueryLogic } from "./QueryLogic"; import { QueryUpdater } from "./QueryUpdater"; export declare class Query> extends QueryLogic { readonly mongoClient: MongoClient; readonly classObject: TD; readonly dbName: string; readonly collectionName: string; readonly session?: ClientSession; private _skip?; private _limit?; private _sort?; constructor(options: IRepositoryOptions, queryOptions?: IQueryOptions); getUpdater(options?: IQueryUpdaterOptions): QueryUpdater>; getUpdater(options?: IWeakTypeQueryUpdaterOptions): QueryUpdater; getDeleter(): QueryDeleter; sort(fieldName: K | "$natural", value: 1 | -1): this; skip(value: number): this; limit(value: number): this; getAsyncIterator(): QueryAsyncIterator; findOne(): Promise | undefined>; findMany(): Promise[]>; count(): Promise; explain(): Promise; }