UNPKG

xstate

Version:

Finite State Machines and Statecharts for the Modern Web.

45 lines (40 loc) 1.51 kB
import { ActionArgs, EventObject, MachineContext, SendExpr, ParameterizedObject, ActionFunction } from "../types.js"; export interface EmitAction<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TEvent extends EventObject, TEmitted extends EventObject> { (args: ActionArgs<TContext, TExpressionEvent, TEvent>, params: TParams): void; _out_TEmitted?: TEmitted; } /** * Emits an event to event handlers registered on the actor via `actor.on(event, handler)`. * * @example ```ts import { emit } from 'xstate'; const machine = createMachine({ // ... on: { something: { actions: emit({ type: 'emitted', some: 'data' }) } } // ... }); const actor = createActor(machine).start(); actor.on('emitted', (event) => { console.log(event); }); actor.send({ type: 'something' }); // logs: // { // type: 'emitted', // some: 'data' // } ``` */ export declare function emit<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TEvent extends EventObject, TEmitted extends EventObject>( /** * The event to emit, or an expression that returns an event to emit. */ eventOrExpr: TEmitted | SendExpr<TContext, TExpressionEvent, TParams, TEmitted, TEvent>): ActionFunction<TContext, TExpressionEvent, TEvent, TParams, never, never, never, never, TEmitted>;