import { Observable } from 'rxjs';
import { DataStore } from './data-store';
/**
 * Defines a base class extended from DataStore but with additional caching cabailities
 */
export declare abstract class CachedDataStore<TData, TStoredData> extends DataStore<TData, TStoredData> {
    /**
     * Backing subject for dataCleared property
     */
    get cachedValue(): TData;
    private internalCachedValue;
    private cached;
    /**
     * Initializes a new instance of CachedDataStore<TData, TStoredData>
     */
    constructor();
    /**
     * Gets the data value from the data store
     */
    get(): Observable<TData>;
    /**
     * Clears the cache from this data store
     */
    clearCache(): void;
}
