import { Resource } from '../models/resource';
import { HalOptions } from '../services/rest.service';
export declare type ResourceExpire<T extends Resource> = {
    entity: any;
    body?: any;
    params?: HalOptions;
    expire: number;
};
export declare enum EvictStrategy {
    EvictTrivial = 0,
    EvictSmart = 1
}
export declare class CacheHelper {
    private static cacheMap;
    static isActive: boolean;
    static maxEntries: number;
    static evictStrategy: EvictStrategy;
    static defaultExpire: number;
    static initClearCacheProcess(): void;
    static ifPresent<T extends Resource>(link: string, body?: string, params?: HalOptions, isActiveLocal?: boolean): boolean;
    static getArray<T extends Resource>(link: string, body?: string, params?: HalOptions): T[];
    static putArray<T extends Resource>(link: string, array: T[], expireMs?: number, body?: string, params?: HalOptions): void;
    static get<T extends Resource>(link: string, body?: string, params?: HalOptions): T;
    static put<T extends Resource>(link: string, array: T, expireMs?: number, body?: string, params?: HalOptions): void;
    private static expireDate;
    private static key;
    private static toStringParams;
    static evict(key: string): void;
    static evictAll(): void;
}
