fsmachine
Version:
> A simple and small TypeScript finite state machine
21 lines (20 loc) • 1.21 kB
TypeScript
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 {};