///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
import { ClientSession, CreateOptions, InsertManyOptions, Model, PaginateModel, PaginateResult, ProjectionType, QueryOptions } from 'mongoose';
export declare class MongooseOptions {
session?: ClientSession | null;
[x: string]: any;
}
export declare class FindOptions extends MongooseOptions {
[x: string]: any;
page?: number;
limit?: number;
lean?: boolean;
}
export type TypedModel = PaginateModel | Model;
export declare class MongoDBRepository {
private readonly Model;
constructor(Model: TypedModel);
getModel(): TypedModel;
create(payload: Record, options?: CreateOptions): Promise;
findById(id: string, projection?: ProjectionType, options?: QueryOptions): import("mongoose").Query;
findOne(condition?: Record, sort?: Record, options?: FindOptions): import("mongoose").Query;
find(condition: Record, sort?: Record, options?: FindOptions): import("mongoose").Query;
paginate(condition: Record, sort?: Record, options?: FindOptions): Promise>;
deleteMany(condition?: Record, options?: MongooseOptions): import("mongoose").Query;
insertMany(data: any[] | undefined, options: InsertManyOptions & {
lean: true;
}): never[] | Promise;
countDocuments(condition?: Record, options?: MongooseOptions): import("mongoose").Query;
updateOne(query?: Record, update?: Record, options?: MongooseOptions): import("mongoose").Query;
updateMany(query?: Record, update?: Record, options?: MongooseOptions): import("mongoose").Query;
upsert(query?: Record, update?: any, options?: MongooseOptions): import("mongoose").Query;
findOneAndUpdate(filter: any, update: any, options?: MongooseOptions): import("mongoose").Query;
bulkWrite(bulkWritePayload: any): any;
deleteOne(query: Record): import("mongoose").Query;
}