export declare const ShrinkThreshold = 200;
export declare class Store<K, T> {
    #private;
    constructor(data?: Map<K, T> | Record<string, T> | null, zeroValue?: T);
    reset(newData?: Map<K, T> | Record<string, T> | null, zeroValue?: T): void;
    length(): number;
    removeAll(): void;
    remove(key: K): void;
    has(key: K): boolean;
    get(key: K): T | undefined;
    getOk(key: K): [T | undefined, boolean];
    getAll(): Map<K, T>;
    values(): T[];
    set(key: K, value: T): void;
    setFunc(key: K, fn: (old: T | undefined) => T): void;
    getOrSet(key: K, setFunc: () => T): T;
    setIfLessThanLimit(key: K, value: T, maxAllowedElements: number): boolean;
    loadJSON(data: string): void;
    toJSON(): Record<string, T>;
}
