timer-db
Version:
A library for cubing timer results storage with CouchDB-based synchronization.
48 lines • 1.83 kB
TypeScript
import { Attempt, StoredAttempt, EventName } from "./data/Attempt";
import { StoredSessionMetadata, SessionMetadata } from "./data/SessionMetadata";
import { SessionUUID } from "./UUID";
import { Storage } from "./storage/Storage";
export interface StatSnapshot {
latest100: StoredAttempt[];
mean3: number | null;
avg5: number | null;
avg12: number | null;
avg100: number | null;
best100: number | null;
worst100: number | null;
avg1000?: number;
best1000?: number;
worst1000?: number;
}
export declare type StatListener = (statsSnapshot: StatSnapshot) => void;
interface StubSessionMetadata extends SessionMetadata {
_id: SessionUUID;
}
export interface SessionCreationOptions {
stub?: boolean;
}
export declare class Session implements SessionMetadata {
#private;
constructor(storage: Storage, metadata: StubSessionMetadata | StoredSessionMetadata, options?: SessionCreationOptions);
static create(storage: Storage, name: string, event: EventName, options?: SessionCreationOptions): Promise<Session>;
get _id(): SessionUUID;
get name(): SessionUUID;
get eventID(): SessionUUID;
private onSyncChange;
getStatSnapshot(): Promise<StatSnapshot>;
addStatListener(listener: StatListener): void;
removeStatListener(listener: StatListener): void;
private fireStatListeners;
private ensurePersisted;
add(attempt: Attempt): Promise<StoredAttempt>;
update(storedAttempt: StoredAttempt): Promise<void>;
delete(storedAttempt: StoredAttempt): Promise<void>;
kthMostRecent(k: number): Promise<StoredAttempt | null>;
nMostRecent(n: number): Promise<StoredAttempt[]>;
numAttempts(): Promise<number>;
/******** Debug ********/
private debugPouch;
private debugCache;
}
export {};
//# sourceMappingURL=Session.d.ts.map