valtio-fsm
    Preparing search index...

    Interface ChainableStateMachine<TState, TContext>

    Main interface for the state machine

    interface ChainableStateMachine<
        TState extends string,
        TContext extends Record<string, unknown>,
    > {
        context: TContext;
        current: TState;
        addTransition(
            state: TState,
            transition: TState,
        ): ChainableStateMachine<TState, TContext>;
        canMoveTo(state: TState): boolean;
        clearHistory(): ChainableStateMachine<TState, TContext>;
        enableHistory(enable?: boolean): ChainableStateMachine<TState, TContext>;
        fire(
            eventName: string,
            payload?: unknown,
        ): ChainableStateMachine<TState, TContext>;
        getHistory(): TransitionHistoryItem<TState>[];
        getStore(): MachineStore<TState, TContext>;
        isIn(state: TState): boolean;
        moveTo(
            state: TState,
            payload?: unknown,
        ): ChainableStateMachine<TState, TContext>;
        off(
            eventName: string,
            handler?: EventHandler<TContext>,
        ): ChainableStateMachine<TState, TContext>;
        on(
            eventName: string,
            handler: EventHandler<TContext>,
        ): ChainableStateMachine<TState, TContext>;
        once(
            eventName: string,
            handler: EventHandler<TContext>,
        ): ChainableStateMachine<TState, TContext>;
        onContextChange(listener: ContextChangeListener<TContext>): () => void;
        onTransition(
            listener: TransitionListener<TState>,
        ): ChainableStateMachine<TState, TContext>;
        removeTransition(
            state: TState,
            transition: TState,
        ): ChainableStateMachine<TState, TContext>;
        resetContext(): ChainableStateMachine<TState, TContext>;
        setHandler(
            state: TState,
            type: "onEnter" | "onExit",
            handler: (context: TContext, payload?: unknown) => void,
        ): ChainableStateMachine<TState, TContext>;
        setHistorySize(size: number): ChainableStateMachine<TState, TContext>;
        setTransitions(
            state: TState,
            transitions: TState[],
        ): ChainableStateMachine<TState, TContext>;
        whenIn(
            state: TState,
            callback: StateCallback<TContext>,
        ): ChainableStateMachine<TState, TContext>;
    }

    Type Parameters

    • TState extends string

      String literal type representing valid states

    • TContext extends Record<string, unknown>

      Context data type for the state machine

    Index

    Properties

    context: TContext

    Current context data (read-only)

    current: TState

    Current state (read-only)

    Methods

    • Check if transition to a specific state is allowed

      Parameters

      • state: TState

        Target state to check

      Returns boolean

    • Check if machine is in a specific state

      Parameters

      Returns boolean