export declare type MachineStep = { name: string; onStart?: (state: MachineState) => void; onTick?: (state: MachineState) => void; onLeave?: (state: MachineState) => void; nextState?: (state: MachineState) => string | undefined; }; export declare type MachineState = T & { stepStartTs: number; }; export declare class StateMachine { steps: MachineStep[]; currentState: MachineStep; internalState: MachineState; constructor(steps: MachineStep[], initState: T, currentStateName?: string); goToState(name: string): void; tick(): void; testNextState(): void; }