juliette
Version:
Reactive State Management Powered by RxJS
17 lines (16 loc) • 776 B
TypeScript
import { Observable } from 'rxjs';
import { Handler, Selector } from './models';
export declare class Store<T> {
private readonly devMode;
private readonly state;
private readonly handlers;
readonly state$: Observable<T>;
readonly handlers$: Observable<Handler<any, any>>;
constructor(initialState: T, devMode: boolean);
dispatch(handler: Handler<any, any>): void;
select<K extends keyof T>(key: K): Observable<T[K]>;
select<R>(selector: Selector<T, R>): Observable<R>;
select<K extends keyof T, R>(keyOrSelector: K | Selector<T, R>): Observable<T[K] | R>;
addFeatureState(featureKey: keyof T, initialState: T[keyof T]): void;
}
export declare const createStore: <T>(initialState: T, devMode?: boolean) => Store<T>;