1 | import { Observable } from 'rxjs';
|
2 | import { t } from '../common';
|
3 | declare type O = Record<string, unknown>;
|
4 | export declare class Store<M extends O, E extends t.IStoreEvent> implements t.IStore<M, E> {
|
5 | static create<M extends O, E extends t.IStoreEvent>(args: t.IStoreArgs<M>): t.IStore<M, E>;
|
6 | private constructor();
|
7 | dispose(): void;
|
8 | private readonly _dispose$;
|
9 | private readonly _event$;
|
10 | private readonly _changing$;
|
11 | private readonly _changed$;
|
12 | private readonly _;
|
13 | readonly dispose$: Observable<void>;
|
14 | readonly changing$: Observable<t.IStateChanging<M, E>>;
|
15 | readonly changed$: Observable<t.IStateChange<M, E>>;
|
16 | readonly event$: Observable<t.IDispatch<M, E, E>>;
|
17 | get isDisposed(): boolean;
|
18 | get state(): M;
|
19 | dispatch(event: E): this;
|
20 | on<E2 extends E>(type: E2['type']): Observable<t.IDispatch<M, E2, E>>;
|
21 | private toDispatchEvent;
|
22 | }
|
23 | export {};
|