UNPKG

fsmachine

Version:

> A simple and small TypeScript finite state machine

12 lines (11 loc) 835 B
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>;