import { Attempt, StoredAttempt } from "../data/Attempt";
import { SessionMetadata, StoredSessionMetadata } from "../data/SessionMetadata";
import { SessionUUID } from "../UUID";
import { SyncChangeListener } from "./storage";
export declare class PouchDBStorage {
    private localDB;
    private remoteDB?;
    private sync?;
    private listeners;
    constructor();
    connectRemoteDB(username: string, password: string): void;
    addListener(listener: SyncChangeListener): void;
    removeListener(listener: SyncChangeListener): void;
    private onSyncChange;
    private onSyncError;
    addNewAttempt(attempt: Attempt): Promise<StoredAttempt>;
    updateAttempt(storedAttempt: StoredAttempt): Promise<void>;
    deleteAttempt(storedAttempt: StoredAttempt): Promise<void>;
    latestAttempts(sessionID: SessionUUID, n: number): Promise<StoredAttempt[]>;
    createSession(sessionMetadata: SessionMetadata): Promise<StoredSessionMetadata>;
    getAllSessions(): Promise<StoredSessionMetadata[]>;
    sessionNumAttempts(sessionID: SessionUUID): Promise<number>;
}
//# sourceMappingURL=PouchDBStorage.d.ts.map