fsmachine
Version:
> A simple and small TypeScript finite state machine
12 lines (11 loc) • 835 B
TypeScript
import { AsyncCallback, Callback, Options, TransitionMap } from './types';
export declare type Dispatcher<TState extends string, TEvent extends string> = {
dispatch: (ev: TEvent) => boolean;
getState: () => TState;
};
export declare type DispatcherAsync<TState extends string, TEvent extends string> = {
dispatch: (ev: TEvent) => Promise<boolean>;
getState: () => TState;
};
export declare function dispatcher<TState extends string, TEvent extends string>(init: TState, transitions: TransitionMap<TState, TEvent, Callback<TState, TEvent>>, opts: Options): Dispatcher<TState, TEvent>;
export declare function dispatcherAsync<TState extends string, TEvent extends string>(init: TState, transitions: TransitionMap<TState, TEvent, AsyncCallback<TState, TEvent>>, opts: Options): DispatcherAsync<TState, TEvent>;