import { Database } from 'sqlite';
import { PersistenceContext, PersistenceContextOptions } from './PersistenceContext';
import { LoggerFactory } from '../LoggerFactory';
export interface ServerPersistenceOptions extends PersistenceContextOptions {
    loggerFactory: LoggerFactory;
    migrationsPath?: string;
    onInit?: (db: Database) => Promise<void>;
}
export default class ServerPersistence implements PersistenceContext {
    private readonly logger;
    private readonly dbFilePath;
    private store?;
    private error?;
    private initCalled;
    private readonly migrationsPath?;
    private readonly onInit?;
    static createInstance(opts: ServerPersistenceOptions): Promise<ServerPersistence>;
    private constructor();
    exists(): Promise<boolean>;
    private tryExec;
    init(): Promise<void>;
    get(key: string, namespace: string): Promise<string | undefined>;
    set(key: string, value: string, namespace: string): Promise<void>;
    close(): Promise<void>;
}
