import { ClientSession, Db, MongoClient, MongoClientOptions } from 'mongodb';
import { InnerDBManager } from './interfaces/IDBManager.js';
import { IConfig, IConfigBase } from '../config/interfaces/IConfig';
export declare class ConfigurableDBManager extends InnerDBManager {
    #private;
    private readonly mongoOpts;
    isConnected: boolean;
    db: Db | null;
    private client;
    private mongo;
    private isConnecting;
    private databaseName;
    private connectionUri;
    private isSetup;
    private connectionPromise;
    constructor(config: IConfig<IConfigBase>, mongoOpts?: MongoClientOptions);
    createNewMongoClient(): [MongoClient, string];
    setup(): boolean;
    close(): Promise<void>;
    connect(log?: boolean): Promise<void>;
    startSession(): ClientSession;
}
