UNPKG

yay-machine

Version:

A modern, simple, lightweight, zero-dependency, TypeScript state-machine library

22 lines 1.13 kB
import type { MachineEvent } from "./MachineEvent"; import type { MachineInstance, MachineInstanceConfig } from "./MachineInstance"; import type { MachineState } from "./MachineState"; export interface MachineInstanceProvider<StateType extends MachineState, EventType extends MachineEvent> { /** * Create a new machine instance * @param config optional configuration for the new machine instance * @returns a new machine instance */ newInstance(config?: MachineInstanceConfig<StateType>): MachineInstance<StateType, EventType>; } /** * The result of calling `defineMachine`. * A factory for creating new machine instances. */ export interface MachineDefinition<StateType extends MachineState, EventType extends MachineEvent> extends MachineInstanceProvider<StateType, EventType> { } /** * Infer type of MachineInstance for a machine definition */ export type MachineInstanceOf<Definition extends MachineDefinition<any, any>> = Definition extends MachineDefinition<infer StateType, infer EventType> ? MachineInstance<StateType, EventType> : never; //# sourceMappingURL=MachineDefinition.d.ts.map