import { IDataCache } from "../IDataCache";
import { ICacheStrategie } from "../cacheStrategies/ICacheStrategie";
import { ConfigInterface } from "../../config/ConfigInterface";
import { AbstractDataObject } from "../dataObject/impl/AbstractDataObject";
import { DataRetrievalInterface } from "../dataObject/DataRetrievalInterface";
import { CacheKeyInterface } from "../DataManager";
export declare class LocalDataCache implements IDataCache<CacheKeyInterface, any> {
    private _cache;
    private timeToLive;
    private _cacheSizeLimit;
    private _cacheStrategie;
    private _currentCacheSize;
    private readonly _garbageCollectingCoefficient;
    constructor(cacheStrategie: ICacheStrategie, config: ConfigInterface);
    setTimeToLive(minutes: number): void;
    getCache(key: CacheKeyInterface): DataRetrievalInterface;
    private removeFromCache;
    private _removeFromCache;
    setCache(key: CacheKeyInterface, data: AbstractDataObject): void;
    private collectGabbage;
    private garbageItemsComparator;
    private getGarbageItemScore;
    setCacheStrategie(cacheStrategie: ICacheStrategie): void;
    clearCache(): void;
    private getCacheKey;
    getCacheMemoryStatus(): string;
}
export interface CachedDataObject {
    data: DataRetrievalInterface;
    timeStamp: number;
    computationTime: number;
    dataMemorySize: number;
}
export interface GarbageColletingItemsInterface {
    key: string;
    timeStamp: number;
    computationTime: number;
    dataMemorySize: number;
    isCacheStaled: boolean;
}
