import { DatabaseFactoryContract } from './database-factory-contract';
import { DatabaseObject } from 'database-builder';
import { Observable } from 'rxjs';
import { PlatformLoad } from './platform-load';
export declare abstract class DatabaseManager {
    protected databaseFactory: DatabaseFactoryContract;
    protected _platformLoad: PlatformLoad;
    private _databases;
    constructor(databaseFactory: DatabaseFactoryContract, _platformLoad: PlatformLoad);
    cleanDatabaseName(name: string): string;
    protected addDatabaseNameExtension(databaseName: string): string;
    databaseInstance(name: string, version: number): Promise<DatabaseObject>;
    invalidateInstance(): void;
    abstract databaseNameFile(databaseName?: string): string;
    protected abstract migrationVersion(database: DatabaseObject, version: number): Observable<boolean>;
    private setDatabase;
    private createDatabase;
    private catchException;
}
