import { EventEmitter } from 'node:events'; import { MongoConnectionManager } from './connection_manager.js'; import type { MongoConnectionContract, MongoDatabaseContract, MongoQueryEventNode } from '../types/database.js'; import type { MongoDBConfig } from '../define_config.js'; /** * Database class exposes the API to manage multiple connections and execute * queries against one or more connections. */ export declare class MongoDatabase implements MongoDatabaseContract { config: MongoDBConfig & { prettyPrintDebugQueries?: boolean; }; logger: any; emitter: EventEmitter; /** * Connection manager to manage multiple named connections */ manager: MongoConnectionManager; /** * Default connection name */ private defaultConnectionName; constructor(config: MongoDBConfig & { prettyPrintDebugQueries?: boolean; }, logger: any, emitter: EventEmitter); /** * Returns connection for a specific name or the default connection */ connection(name?: string): MongoConnectionContract; /** * Pretty print query */ prettyPrint(query: MongoQueryEventNode): void; }