UNPKG

timer-db

Version:

A library for cubing timer results storage with CouchDB-based synchronization.

32 lines (25 loc) 1.08 kB
// This should be a `.d.ts` file, but we need to make it `.ts` (or Parcel won't include it in the output). import { StoredAttempt, Attempt } from "../data/Attempt"; import { SessionMetadata, StoredSessionMetadata, } from "../data/SessionMetadata"; import { SessionUUID } from "../UUID"; export type SyncChangeListener = (attempt: StoredAttempt[]) => void; export declare interface Storage { connectRemoteDB(username: string, password: string): void; // Sessions createSession( sessionMetadata: SessionMetadata ): Promise<StoredSessionMetadata>; getAllSessions(): Promise<StoredSessionMetadata[]>; // Attempts addNewAttempt(attempt: Attempt): Promise<StoredAttempt>; updateAttempt(storedAttempt: StoredAttempt): Promise<void>; deleteAttempt(storedAttempt: StoredAttempt): Promise<void>; latestAttempts(sessionID: SessionUUID, n: number): Promise<StoredAttempt[]>; sessionNumAttempts(sessionID: SessionUUID): Promise<number>; // Listeners addListener(listener: SyncChangeListener): void; removeListener(listener: SyncChangeListener): void; }