import { Observable } from 'rxjs';
export interface CacheEntry<T> {
    timeStamp: number;
    data$: T;
}
export declare class Cache<T, K = string> extends Map<K, CacheEntry<T>> {
    duty: number;
    constructor(duty?: number);
    clear(timeStamp?: number): void;
    getCache(key: K, defaultValueFn?: (timeStamp: number) => T): T;
    setCache(key: K, value: T): void;
}
export declare class ObservableCache<T, K = string> extends Cache<Observable<T>, K> {
    getCache(key: K, defaultValueFn?: (timeStamp: number) => Observable<T>): Observable<T>;
}
