timer-db
Version: 
A library for cubing timer results storage with CouchDB-based synchronization.
28 lines • 1.19 kB
TypeScript
import { RedBlackTreeStructure } from "@collectable/red-black-tree";
import { StoredAttempt } from "../data/Attempt";
import { AttemptUUID, SessionUUID } from "../UUID";
import { Storage } from "./storage";
declare type RedBlackTree = RedBlackTreeStructure<string, StoredAttempt>;
export declare class AttemptCache {
    private storage;
    private sessionID;
    private minSize;
    private midSize;
    private maxSize;
    private latestSolves;
    constructor(storage: Storage, sessionID: SessionUUID, minSize?: number, midSize?: number, maxSize?: number);
    /******** Functions that don't access `this.latestSolves`. ********/
    getLatestFromDB(n: number): Promise<RedBlackTree>;
    private growToMidSize;
    private shrinkToMidSize;
    private maintainSize;
    /******** Functions that DO access `this.latestSolves`. ********/
    debugCurrentSize(): Promise<number>;
    debugPrint(): Promise<void>;
    set(storedAttempt: StoredAttempt): Promise<void>;
    delete(id: AttemptUUID): Promise<void>;
    kthMostRecent(k: number): Promise<StoredAttempt | null>;
    nMostRecent(n: number): Promise<StoredAttempt[]>;
}
export {};
//# sourceMappingURL=AttemptCache.d.ts.map