import type { Task } from "./types.js"; export interface StateMachineDef { readonly initial: TState; readonly states: readonly TState[]; readonly events: Readonly>>; } export interface EventDef { readonly from: readonly TState[] | "*"; readonly to: TState; readonly guard?: (task: Task) => true | string; readonly onEnter?: (task: Task) => void | Promise; readonly onExit?: (task: Task) => void | Promise; } export declare function validateMachine(machine: StateMachineDef): void; export declare function eventsFromState(machine: StateMachineDef, fromState: TState): readonly TEvent[]; export declare function findEvent(machine: StateMachineDef, fromState: TState, eventName: TEvent): EventDef | undefined;