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