landstrasse
Version:
Strongly typed WAMP Client for browsers
11 lines (10 loc) • 476 B
TypeScript
export declare type StateTransitionFunction<EState, TArgs> = (args: TArgs) => EState | null;
export declare type TransitionMap<EState, TArgs> = Map<EState, StateTransitionFunction<EState, TArgs>>;
declare class StateMachine<EState, TArgs> {
private currentState;
private readonly transitionMap;
get current(): EState;
constructor(initialState: EState, transitionMap: TransitionMap<EState, TArgs>);
update(args: TArgs): void;
}
export default StateMachine;