UNPKG

fsmachine

Version:

> A simple and small TypeScript finite state machine

21 lines (20 loc) 1.21 kB
import { Dispatcher, DispatcherAsync } from './dispatch'; import { Transition } from './transition'; import { Options } from './types'; export declare type Machine<TState extends string, TEvent extends string> = { transition: (...transition: Transition<TState, TEvent>[]) => Machine<TState, TEvent>; create: (override?: OverrideOptions<TState>) => Dispatcher<TState, TEvent>; }; export declare type MachineAsync<TState extends string, TEvent extends string> = { transition: (...transition: Transition<TState, TEvent>[]) => MachineAsync<TState, TEvent>; create: (override?: OverrideOptions<TState>) => DispatcherAsync<TState, TEvent>; }; declare type OverrideOptions<TState extends string> = Options & { init?: TState; }; export declare function createMachine<TState extends string, TEvent extends string>(init: TState, opts?: Options): Machine<TState, TEvent>; export declare function createMachineAsync<TState extends string, TEvent extends string>(init: TState, opts?: Options): { transition: (...transition: Transition<TState, TEvent>[]) => void; create: (override?: OverrideOptions<TState> | undefined) => DispatcherAsync<TState, TEvent>; }; export {};