import type { DatabaseInitConnectionOptions, DatabaseInitializationResult } from './types.js';
export type DatabaseInitializationStrategy = {
    initialize(options: DatabaseInitConnectionOptions): Promise<DatabaseInitializationResult>;
};
export declare class DefaultDatabaseInitializationStrategy implements DatabaseInitializationStrategy {
    initialize({ baseDbDir, databaseName, additionalFolder, }: DatabaseInitConnectionOptions): Promise<DatabaseInitializationResult>;
}
export declare class LocalDatabaseInitializationStrategy implements DatabaseInitializationStrategy {
    initialize({ removeExisting, baseDbDir, runWithPragmaWalWriteOptimization, databaseName, additionalFolder, migrationsFolder, }: DatabaseInitConnectionOptions): Promise<DatabaseInitializationResult>;
}
type RemoteDatabaseInitializationStrategyParams = {
    skipLogs?: boolean;
};
export declare class RemoteDatabaseInitializationStrategy implements DatabaseInitializationStrategy {
    #private;
    constructor(params?: RemoteDatabaseInitializationStrategyParams);
    initialize({ removeExisting, baseDbDir, syncUrl, authToken, databaseName, additionalFolder, migrationsFolder, }: DatabaseInitConnectionOptions & {
        syncUrl: string;
        authToken: string;
    }): Promise<DatabaseInitializationResult>;
}
export {};
//# sourceMappingURL=database-initialization-strategy.d.ts.map