import { Type } from '@nestjs/common'; import { ClassTransformOptions } from 'class-transformer'; import { ValidatorOptions } from 'class-validator'; import Debug from 'debug'; import { ChangeStreamOptions, ClientSession, ClientSessionOptions, CountDocumentsOptions, DeleteOptions, Document, Filter, FindCursor, FindOptions, InsertOneOptions, MongoClient, TransactionOptions, UpdateOptions } from 'mongodb'; import type { ExceptionFactory } from '../module/interfaces'; import { SessionLoaderService } from '../session/service'; import { EntityInterface } from './interfaces'; import { EntityRepository } from './repository'; export declare class EntityManager { protected readonly client: MongoClient; protected readonly sessionLoaderService: SessionLoaderService; protected readonly exceptionFactory: ExceptionFactory; protected readonly repositories: Map; protected readonly models: Map>; protected log: Debug.Debugger; constructor(client: MongoClient, sessionLoaderService: SessionLoaderService, exceptionFactory: ExceptionFactory); registerModel(name: string, model: Type): Promise; getModel(id: string): Type | undefined; getModels(): Map>; registerRepository = EntityRepository>(name: string, repository: R): EntityManager; getRepository = EntityRepository>(classType: Type): R; getClient(): MongoClient; getDatabase(databaseName?: string): import("mongodb").Db; getSessionLoaderService(): SessionLoaderService; getSessionContext(): import("../session/types").ClientSessionContext; setSessionContext(mongoSession: ClientSession): void; clearSessionContext(): void; getCollectionName(nameOrInstance: Model | Type): string; getCollection(nameOrInstance: Model | Type, databaseName?: string): import("mongodb").Collection; validate(obj: Model, validatorOptions?: ValidatorOptions, throwError?: boolean): Promise; save(entity: Model, options?: (InsertOneOptions | UpdateOptions) & { skipValidation?: boolean; validatorOptions?: ValidatorOptions; }): Promise; find(classType: Type, query: Filter, options?: FindOptions): Promise>; findOne(classType: Type, query: Filter, options?: FindOptions): Promise; count(classType: Type, query: Filter, options?: CountDocumentsOptions): Promise; isIdQuery(query: any): boolean; isIdsQuery(query: any): boolean; protected deleteCascade(classType: Type, entity: Model): Promise; deleteOne(classType: Type, query: Filter, options?: DeleteOptions): Promise; deleteMany(classType: Type, query: Filter, options?: DeleteOptions): Promise; watch(classType: Type, pipes?: Document[], options?: ChangeStreamOptions): import("mongodb").ChangeStream>; getRelationship(obj: any, property: string, options?: FindOptions): Promise; getRelationships(obj: any, property: string, options?: FindOptions): Promise>; startSessionWithTransaction(transactionFn: (session: ClientSession) => Promise, options?: { useContext?: boolean; transactionOptions?: TransactionOptions; sessionOptions?: ClientSessionOptions; }): Promise; fromPlain(classType: Type, data: object, options?: ClassTransformOptions): Model; merge(entity: Model, data: Model, excludePrefixes?: string[]): Model; createIndexs(model: Type): Promise; } //# sourceMappingURL=manager.d.ts.map