import { Observable } from 'rxjs';
import { DataStore } from './data-store';
/**
 * Defines a single value data store using memory as the backing store
 * Semantically this is now different than managing a local variable,
 * however it can be used anywhere a dataStore is accepted.
 * It also has usefulness for testing classes that use a DataStore
 */
export declare abstract class MemoryDataStore<TData> extends DataStore<TData, TData> {
    private data;
    /**
     * Initializes a new instance of DataStore<T>
     */
    constructor();
    /**
     * Implementation to get the stored data
     */
    protected getData(): Observable<TData>;
    /**
     * Implementation to set the stored data
     */
    protected setData(data: TData): Observable<void>;
    /**
     * Implementation to clear the stored data
     */
    protected clearData(): Observable<void>;
}
