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; get _id(): SessionUUID; get name(): SessionUUID; get eventID(): SessionUUID; private onSyncChange; getStatSnapshot(): Promise; addStatListener(listener: StatListener): void; removeStatListener(listener: StatListener): void; private fireStatListeners; private ensurePersisted; add(attempt: Attempt): Promise; update(storedAttempt: StoredAttempt): Promise; delete(storedAttempt: StoredAttempt): Promise; kthMostRecent(k: number): Promise; nMostRecent(n: number): Promise; numAttempts(): Promise; /******** Debug ********/ private debugPouch; private debugCache; } export {}; //# sourceMappingURL=Session.d.ts.map