@sigi/core
Version:
Sigi core library
24 lines (23 loc) • 825 B
TypeScript
import { IStore, Epic, Action } from '@sigi/types';
import { ReplaySubject, Subject } from 'rxjs';
export type Reducer<S, T> = (prevState: S, Action: T) => S;
export declare class Store<S> implements IStore<S> {
readonly state$: ReplaySubject<S>;
readonly action$: Subject<Action<unknown>>;
readonly name: string;
private isReady;
private internalState;
private readonly reducer;
private readonly epic$;
private actionSub;
private readonly initAction;
get state(): S;
get ready(): boolean;
constructor(name: string, reducer?: Reducer<S, Action>, epic?: Epic);
setup(defaultState: S): void;
addEpic(combineEpic: (prevEpic: Epic) => Epic): () => void;
dispatch(action: Action): void;
log(action: Action): void;
dispose(): void;
private subscribeAction;
}