import { type ClientSession } from 'mongodb'; import { type Configuration, type Constructor, type CountOptions, DatabaseDriver, type EntityData, type EntityDictionary, type EntityField, EntityManagerType, type EntityName, type FilterQuery, type FindOneOptions, type FindOptions, type NativeInsertUpdateManyOptions, type NativeInsertUpdateOptions, type PopulateOptions, type QueryResult, type StreamOptions, type Transaction, type UpsertManyOptions, type UpsertOptions } from '@mikro-orm/core'; import { MongoConnection } from './MongoConnection.js'; import { MongoPlatform } from './MongoPlatform.js'; import { MongoEntityManager } from './MongoEntityManager.js'; import { MongoMikroORM } from './MongoMikroORM.js'; /** Database driver for MongoDB. */ export declare class MongoDriver extends DatabaseDriver { [EntityManagerType]: MongoEntityManager; protected readonly connection: MongoConnection; protected readonly platform: MongoPlatform; constructor(config: Configuration); createEntityManager(useContext?: boolean): this[typeof EntityManagerType]; stream(entityName: EntityName, where: FilterQuery, options: StreamOptions & { rawResults?: boolean; }): AsyncIterableIterator; find(entityName: EntityName, where: FilterQuery, options?: FindOptions): Promise[]>; private findWithPartitionLimit; findOne(entityName: EntityName, where: FilterQuery, options?: FindOneOptions): Promise | null>; findVirtual(entityName: EntityName, where: FilterQuery, options: FindOptions): Promise[]>; streamVirtual(entityName: EntityName, where: FilterQuery, options: FindOptions): AsyncIterableIterator>; count(entityName: EntityName, where: FilterQuery, options?: CountOptions): Promise; nativeInsert(entityName: EntityName, data: EntityDictionary, options?: NativeInsertUpdateOptions): Promise>; nativeClone(entityName: EntityName, where: FilterQuery, overrides?: EntityData, options?: NativeInsertUpdateOptions): Promise>; nativeInsertMany(entityName: EntityName, data: EntityDictionary[], options?: NativeInsertUpdateManyOptions): Promise>; nativeUpdate(entityName: EntityName, where: FilterQuery, data: EntityDictionary, options?: NativeInsertUpdateOptions & UpsertOptions): Promise>; nativeUpdateMany(entityName: EntityName, where: FilterQuery[], data: EntityDictionary[], options?: NativeInsertUpdateOptions & UpsertManyOptions): Promise>; nativeDelete(entityName: EntityName, where: FilterQuery, options?: { ctx?: Transaction; signal?: AbortSignal; }): Promise>; aggregate(entityName: EntityName, pipeline: any[], ctx?: Transaction, signal?: AbortSignal): Promise; streamAggregate(entityName: EntityName, pipeline: any[], ctx?: Transaction, signal?: AbortSignal): AsyncIterableIterator; getPlatform(): MongoPlatform; private buildQueryOptions; /** @internal */ renameFields(entityName: EntityName, data: T, dotPaths?: boolean, object?: boolean, root?: boolean): T; private convertObjectIds; private buildFilterById; protected buildFields(entityName: EntityName, populate: PopulateOptions[], fields?: readonly EntityField[], exclude?: string[]): string[] | undefined; private handleVersionProperty; /** @inheritDoc */ getORMClass(): Constructor; }