@platform/state
Version:
A small, simple, strongly typed, [rx/observable] state-machine.
26 lines (25 loc) • 1.24 kB
TypeScript
import { t } from '../common';
declare type O = Record<string, unknown>;
export declare class StateObject<T extends O, E extends t.Event<any>> implements t.IStateObjectWritable<T, E> {
static create<T extends O, E extends t.Event<any> = any>(initial: T): t.IStateObjectWritable<T, E>;
static readonly<T extends O, E extends t.Event<any> = any>(obj: t.IStateObjectWritable<T, E>): t.IStateObject<T, E>;
static merge: <T_1 extends {
[key: string]: Record<string, unknown>;
}, E_1 extends t.Event<any> = any>(initial: T_1 | Record<keyof T_1, t.IStateObjectReadable<T_1[keyof T_1], t.Event<Record<string, unknown>>>>, dispose$?: import("rxjs").Observable<any> | undefined) => t.StateMerger<T_1, E_1>;
static toObject<T extends O>(input: T): T;
static isStateObject(input: any): boolean;
private constructor();
dispose(): void;
private _state;
private _dispose$;
readonly dispose$: import("rxjs").Observable<void>;
private readonly _event$;
readonly event: t.IStateObjectEvents<T, E>;
readonly original: T;
get isDisposed(): boolean;
get state(): T;
get readonly(): t.IStateObjectReadable<T, E>;
change: t.StateObjectChange<T, E>;
private fire;
}
export {};