import { MongoClient, Db, Collection, Document, TransactionOptions as MongoTransactionOptions } from 'mongodb';
import { OdmConfig, MongoConnectionConfig, DatabaseManager } from './types/index.js';
import { MongoTransactionClient } from './transaction_client.js';
/**
 * MongoDB Database Manager
 */
export declare class MongoDatabaseManager implements DatabaseManager {
    private clients;
    private databases;
    private config;
    constructor(config: OdmConfig);
    /**
     * Get a MongoDB client connection
     */
    connection(name?: string): MongoClient;
    /**
     * Get a database instance
     */
    db(name?: string): Db;
    /**
     * Get a collection instance
     */
    collection<T extends Document = Document>(name: string, connectionName?: string): Collection<T>;
    /**
     * Connect to all configured MongoDB instances
     */
    connect(): Promise<void>;
    /**
     * Close all connections
     */
    close(): Promise<void>;
    /**
     * Create a MongoDB client connection
     */
    private createConnection;
    /**
     * Extract database name from connection configuration
     */
    private extractDatabaseName;
    /**
     * Get connection configuration
     */
    getConnectionConfig(name?: string): MongoConnectionConfig;
    /**
     * Check if a connection exists
     */
    hasConnection(name: string): boolean;
    /**
     * Get all connection names
     */
    getConnectionNames(): string[];
    /**
     * Start a transaction - Manual transaction
     */
    transaction(options?: MongoTransactionOptions): Promise<MongoTransactionClient>;
    /**
     * Start a transaction - Managed transaction
     */
    transaction<TResult = any>(callback: (trx: MongoTransactionClient) => Promise<TResult>, options?: MongoTransactionOptions): Promise<TResult>;
}
//# sourceMappingURL=database_manager.d.ts.map