import type { Cache, CacheOptions } from 'cachefactory';
import { CacheFactory } from 'cachefactory';
export interface ILocalStorage {
    getItem: (key: string) => void;
    removeItem: (key: string) => void;
    setItem: (key: string, value: any) => void;
}
export interface ICacheProxy {
    [key: string]: any;
}
export interface IStats {
    ageMax: number;
    ageMin: number;
    keys: number;
}
export interface ICacheOptions extends CacheOptions {
    onReset?: Function[];
}
export interface ICache extends Cache {
    config: ICacheOptions;
    getStats: () => IStats;
    onReset?: Function[];
}
export interface ICacheConfig {
    cacheFactory?: CacheFactory;
    disabled?: boolean;
    get?: (key: string) => string;
    initializers?: Function[];
    maxAge?: number;
    onReset?: Function[];
    version?: number;
    storageMode?: 'memory' | 'localStorage' | 'sessionStorage';
}
export interface ICacheMap {
    [key: string]: ICache;
}
export declare class DeckCacheFactory {
    private static cacheFactory;
    private static caches;
    private static cacheProxy;
    static getStoragePrefix(key: string, version: number): string;
    private static buildCacheKey;
    private static bombCorruptedCache;
    private static clearPreviousVersions;
    private static getStats;
    static createCache(namespace: string, cacheId: string, cacheConfig: ICacheConfig): ICache;
    static clearCache(namespace: string, key: string): void;
    static getCache(namespace?: string, cacheId?: string): ICache;
}
