import { storageSymbol, Store } from './store';
export declare const objectCacheSymbol: unique symbol;
export declare const cacheSizeSymbol: unique symbol;
export declare const storeSymbol: unique symbol;
export declare const asyncStoreSymbol: unique symbol;
export declare const maxCacheSizeSymbol: unique symbol;
/**
 * only cache object
 * raw string item are not cached
 * */
export declare class CachedObjectStore implements Store {
    private [objectCacheSymbol];
    private [cacheSizeSymbol];
    private [storeSymbol];
    private [asyncStoreSymbol];
    private [maxCacheSizeSymbol];
    private constructor();
    get [storageSymbol](): Storage;
    set storage(storage: Storage);
    get length(): number;
    clear(): void;
    clearCache(): void;
    getItem(key: string): string | null;
    getObject<T>(key: string): T | null;
    key(index: number): string | null;
    keys(): string[];
    removeItem(key: string): void;
    setItem(key: string, value: string): void;
    setObject(key: string, value: any): void;
    static create(dirpath: string, maxCacheSize?: number, maxStorageSize?: number): CachedObjectStore;
}
