import { DatabaseDriver } from './drivers/DriverInterface.js';
import { DatabaseConfig } from './types.js';
import { Repository } from './Repository.js';
import { Migrator } from './migrations/Migrator.js';
export declare class DatabaseManager {
    private driver;
    private repositories;
    private modelMetadata;
    private migrationRunner;
    private _migrator;
    private _config;
    constructor();
    get migrator(): Migrator;
    connect(config: DatabaseConfig): Promise<void>;
    disconnect(): Promise<void>;
    registerModel(modelClass: any): void;
    getRepository<T>(modelClass: any): Repository<T>;
    ensureSchemas(): Promise<void>;
    getDriver(): DatabaseDriver;
    transaction<T>(fn: (db: DatabaseManager) => Promise<T>): Promise<T>;
    dropCollection(name: string): Promise<void>;
    listCollections(): Promise<string[]>;
    getCollectionMetadata(): {
        name: string;
        fields: any[];
        relations: any[];
    }[];
    private loadDriver;
}
