@platform/state
Version:
A small, simple, strongly typed, [rx/observable] state-machine.
24 lines (23 loc) • 907 B
TypeScript
import { Observable } from 'rxjs';
import { t } from '../common';
declare type O = Record<string, unknown>;
export declare class Store<M extends O, E extends t.IStoreEvent> implements t.IStore<M, E> {
static create<M extends O, E extends t.IStoreEvent>(args: t.IStoreArgs<M>): t.IStore<M, E>;
private constructor();
dispose(): void;
private readonly _dispose$;
private readonly _event$;
private readonly _changing$;
private readonly _changed$;
private readonly _;
readonly dispose$: Observable<void>;
readonly changing$: Observable<t.IStateChanging<M, E>>;
readonly changed$: Observable<t.IStateChange<M, E>>;
readonly event$: Observable<t.IDispatch<M, E, E>>;
get isDisposed(): boolean;
get state(): M;
dispatch(event: E): this;
on<E2 extends E>(type: E2['type']): Observable<t.IDispatch<M, E2, E>>;
private toDispatchEvent;
}
export {};