import { Observable } from 'rxjs/Observable'; import { ValueOrResolver, PartialValueOrResolver, ActionOptions } from './common'; export interface IReactiveStore { setter(key: K, value: ValueOrResolver, options: ActionOptions): Promise; setterPartial(key: K, value: PartialValueOrResolver, options: ActionOptions): Promise; resetter(key: K, options: ActionOptions): Promise; getter(): Observable; getterAsPromise(): Promise; forceResetForTesting(): Promise | never; forceCompleteForTesting(): Promise | never; initialState: T; currentState: T; }