Interface StateMachine<EventPayloadMapping, Context, States>

interface StateMachine<
    EventPayloadMapping,
    Context,
    States extends string = "IDLE",
> {
    possibleStates: States[];
    states: Record<States, State<EventPayloadMapping, Context, States>>;
    happens<K extends string | number | symbol>(
        event: K,
        payload: EventPayloadMapping[K],
        context: Context,
    ): States;
    onHappens(
        callback: (
            event: keyof EventPayloadMapping,
            payload: EventPayloadMapping[keyof EventPayloadMapping],
            context: Context,
        ) => void,
    ): void;
    onStateChange(
        callback: StateChangeCallback<EventPayloadMapping, Context, States>,
    ): void;
    setContext(context: Context): void;
    switchTo(state: States): void;
}

Type Parameters

  • EventPayloadMapping
  • Context
  • States extends string = "IDLE"

Implemented by

Properties

possibleStates: States[]

Methods