fsm-state-manager
Version:
A Flow FSM using a finite state machine pattern
29 lines (28 loc) • 1.12 kB
TypeScript
import FSMConfigI from "./interfaces/fsm-config.i";
import StateDataI from "./interfaces/state-data.i";
import Subscription from "./interfaces/subscription.i";
import TransitionRulesType from "./types/transition-rules-type";
interface FSMOptions {
devMode?: boolean;
logTransitions?: boolean;
subscriptionMode?: boolean;
}
export declare class StateManagerFSM<Config extends FSMConfigI> {
private stateData;
private transitionRules;
private options;
private subscriptionManager;
constructor(transitionRules: TransitionRulesType<Config>, options?: Partial<FSMOptions>);
setStateData(currentStateData: StateDataI<Config>): void;
getStateData(): StateDataI<Config>;
transition(event: Config['event'], appliedData?: Config['data'][]): void;
private isInitialized;
private warnWrongTransition;
private warnGuard;
private applyTransition;
private transitionAction;
private checkGuard;
canTransition(event: Config['event']): boolean;
subscribe(state: Config['state'], callback: (newStateData: StateDataI<Config>) => void): Subscription;
}
export {};