import { CacheItemInterface, UtilityEntry } from './cache.interface';
import { WebStorageServiceInterface } from '../service/webstorage.interface';
import { DecoratorConfig } from '../ngx-store.types';
import { WebStorageUtility } from '../utility/webstorage.utility';
export declare class Cache {
    static items: Map<string, CacheItem>;
    static getCacheFor(cacheCandidate: CacheItemInterface): CacheItem;
    static remove(cacheItem: CacheItem): boolean;
    static get(key: string): CacheItem;
    protected static set(cacheItem: CacheItem): void;
}
export declare class CacheItem implements CacheItemInterface {
    name: string;
    targets: Array<object>;
    services: Array<WebStorageServiceInterface>;
    utilities: Array<UtilityEntry>;
    currentTarget: object;
    protected proxy: any;
    protected _key: string;
    protected initializedTargets: Set<object>;
    constructor(cacheItem: CacheItemInterface);
    get key(): string;
    saveValue(value: any, config?: DecoratorConfig): any;
    getProxy(value?: any, config?: DecoratorConfig): any;
    readValue(config?: DecoratorConfig): any;
    addTargets(targets: Array<any>): void;
    addServices(services: Array<WebStorageServiceInterface>): void;
    addUtilities(utilityEntries: Array<UtilityEntry>): void;
    resetProxy(): void;
    propagateChange(value: any, source?: WebStorageUtility): void;
    protected migrate(config: DecoratorConfig, utility: WebStorageUtility): void;
}
