///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
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 {};