xstate 5.0.0-beta.27 → 5.0.0-beta.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +9 -7
  2. package/actions/dist/xstate-actions.cjs.js +11 -17
  3. package/actions/dist/xstate-actions.cjs.mjs +0 -8
  4. package/actions/dist/xstate-actions.development.cjs.js +11 -17
  5. package/actions/dist/xstate-actions.development.cjs.mjs +0 -8
  6. package/actions/dist/xstate-actions.development.esm.js +3 -1
  7. package/actions/dist/xstate-actions.esm.js +3 -1
  8. package/actions/dist/xstate-actions.umd.min.js +1 -1
  9. package/actions/dist/xstate-actions.umd.min.js.map +1 -1
  10. package/actors/dist/xstate-actors.cjs.js +395 -28
  11. package/actors/dist/xstate-actors.cjs.mjs +1 -3
  12. package/actors/dist/xstate-actors.development.cjs.js +395 -28
  13. package/actors/dist/xstate-actors.development.cjs.mjs +1 -3
  14. package/actors/dist/xstate-actors.development.esm.js +389 -21
  15. package/actors/dist/xstate-actors.esm.js +389 -21
  16. package/actors/dist/xstate-actors.umd.min.js +1 -1
  17. package/actors/dist/xstate-actors.umd.min.js.map +1 -1
  18. package/dist/declarations/src/StateNode.d.ts +3 -3
  19. package/dist/declarations/src/actions/assign.d.ts +9 -4
  20. package/dist/declarations/src/actions/cancel.d.ts +4 -4
  21. package/dist/declarations/src/actions/choose.d.ts +5 -4
  22. package/dist/declarations/src/actions/log.d.ts +4 -4
  23. package/dist/declarations/src/actions/pure.d.ts +6 -5
  24. package/dist/declarations/src/actions/raise.d.ts +2 -2
  25. package/dist/declarations/src/actions/send.d.ts +7 -7
  26. package/dist/declarations/src/actions/stop.d.ts +4 -4
  27. package/dist/declarations/src/actions.d.ts +8 -44
  28. package/dist/declarations/src/actors/callback.d.ts +2 -2
  29. package/dist/declarations/src/actors/index.d.ts +3 -5
  30. package/dist/declarations/src/constants.d.ts +1 -0
  31. package/dist/declarations/src/index.d.ts +9 -16
  32. package/dist/declarations/src/spawn.d.ts +25 -0
  33. package/dist/declarations/src/stateUtils.d.ts +1 -1
  34. package/dist/declarations/src/typegenTypes.d.ts +4 -4
  35. package/dist/declarations/src/types.d.ts +92 -122
  36. package/dist/declarations/src/utils.d.ts +2 -2
  37. package/dist/interpreter-498891b2.esm.js +741 -0
  38. package/dist/interpreter-6e7909c8.development.esm.js +749 -0
  39. package/dist/interpreter-c357bc50.cjs.js +773 -0
  40. package/dist/interpreter-e2c6a579.development.cjs.js +781 -0
  41. package/dist/{actions-9754d2ca.development.esm.js → raise-03e57569.cjs.js} +130 -1307
  42. package/dist/{actions-d1dba4ac.cjs.js → raise-59f2c242.esm.js} +65 -1267
  43. package/dist/{actions-020463e9.esm.js → raise-e778a828.development.esm.js} +109 -1203
  44. package/dist/{actions-ca622922.development.cjs.js → raise-f751dfac.development.cjs.js} +101 -1306
  45. package/dist/send-42c83fb2.development.esm.js +364 -0
  46. package/dist/send-51717e53.cjs.js +349 -0
  47. package/dist/send-f53778f6.development.cjs.js +374 -0
  48. package/dist/send-fff224db.esm.js +339 -0
  49. package/dist/xstate.cjs.js +114 -112
  50. package/dist/xstate.cjs.mjs +2 -2
  51. package/dist/xstate.development.cjs.js +114 -112
  52. package/dist/xstate.development.cjs.mjs +2 -2
  53. package/dist/xstate.development.esm.js +78 -74
  54. package/dist/xstate.esm.js +78 -74
  55. package/dist/xstate.umd.min.js +1 -1
  56. package/dist/xstate.umd.min.js.map +1 -1
  57. package/guards/dist/xstate-guards.cjs.js +2 -1
  58. package/guards/dist/xstate-guards.development.cjs.js +2 -1
  59. package/guards/dist/xstate-guards.development.esm.js +2 -1
  60. package/guards/dist/xstate-guards.esm.js +2 -1
  61. package/guards/dist/xstate-guards.umd.min.js.map +1 -1
  62. package/package.json +1 -1
  63. package/dist/declarations/src/constantPrefixes.d.ts +0 -6
  64. package/dist/promise-2ad94e3b.development.esm.js +0 -406
  65. package/dist/promise-3b7e3357.development.cjs.js +0 -412
  66. package/dist/promise-5b07c38e.esm.js +0 -406
  67. package/dist/promise-7a8c1768.cjs.js +0 -412
@@ -5,6 +5,8 @@ import type { StateMachine } from "./StateMachine.js";
5
5
  import { TypegenDisabled, ResolveTypegenMeta, TypegenConstraint, MarkAllImplementationsAsProvided, AreAllImplementationsAssumedToBeProvided } from "./typegenTypes.js";
6
6
  import { PromiseActorLogic } from "./actors/promise.js";
7
7
  import { Guard, GuardPredicate, UnknownGuard } from "./guards.js";
8
+ import { Spawner } from "./spawn.js";
9
+ import { AssignArgs } from "./actions/assign.js";
8
10
  /**
9
11
  * `T | unknown` reduces to `unknown` and that can be problematic when it comes to contextual typing.
10
12
  * It especially is a problem when the union has a function member, like here:
@@ -56,37 +58,29 @@ export interface ParameterizedObject {
56
58
  type: string;
57
59
  params?: Record<string, unknown>;
58
60
  }
59
- export interface UnifiedArg<TContext extends MachineContext, TExpressionEvent extends EventObject> {
61
+ export interface UnifiedArg<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject> {
60
62
  context: TContext;
61
63
  event: TExpressionEvent;
62
- self: ActorRef<TExpressionEvent>;
64
+ self: ActorRef<TEvent, TContext>;
63
65
  system: ActorSystem<any>;
64
66
  }
65
67
  export type MachineContext = Record<string, any>;
66
- export interface ActionArgs<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject | undefined> extends UnifiedArg<TContext, TEvent> {
67
- action: TAction;
68
+ export interface ActionArgs<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject> extends UnifiedArg<TContext, TExpressionEvent, TEvent> {
69
+ action: TExpressionAction;
68
70
  }
69
71
  export type InputFrom<T extends AnyActorLogic> = T extends StateMachine<infer _TContext, infer _TEvent, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TTag, infer TInput, infer _TOutput, infer _TResolvedTypesMeta> ? TInput : T extends ActorLogic<infer _TEvent, infer _TSnapshot, infer _TInternalState, infer _TPersisted, infer _TSystem, infer TInput> ? TInput : never;
70
72
  export type OutputFrom<T extends AnyActorLogic> = T extends ActorLogic<infer _TEvent, infer _TSnapshot, infer _TInternalState, infer _TPersisted, infer _TSystem, infer _TInput, infer TOutput> ? TOutput : never;
71
- export type Spawner = <T extends AnyActorLogic | string>(// TODO: read string from machine logic keys
72
- logic: T, options?: Partial<{
73
- id: string;
74
- systemId?: string;
75
- input: T extends AnyActorLogic ? InputFrom<T> : any;
76
- }>) => ActorRefFrom<T>;
77
- export interface AssignArgs<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined> extends ActionArgs<TContext, TExpressionEvent, TExpressionAction> {
78
- spawn: Spawner;
79
- }
80
- export type ActionFunction<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
81
- (args: ActionArgs<TContext, TExpressionEvent, TExpressionAction>): void;
73
+ export type ActionFunction<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
74
+ (args: ActionArgs<TContext, TExpressionEvent, TExpressionAction, TEvent>): void;
82
75
  _out_TEvent?: TEvent;
76
+ _out_TActor?: TActor;
83
77
  _out_TAction?: TAction;
84
78
  _out_TGuard?: TGuard;
85
79
  _out_TDelay?: TDelay;
86
80
  };
87
- export interface ChooseBranch<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string> {
81
+ export interface ChooseBranch<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent, TActor extends ProvidedActor = ProvidedActor, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string> {
88
82
  guard?: Guard<TContext, TExpressionEvent, undefined, TGuard>;
89
- actions: Actions<TContext, TExpressionEvent, TEvent, undefined, TAction, TGuard, TDelay>;
83
+ actions: Actions<TContext, TExpressionEvent, TEvent, undefined, TActor, TAction, TGuard, TDelay>;
90
84
  }
91
85
  export type NoRequiredParams<T extends ParameterizedObject> = T extends any ? {
92
86
  type: T['type'];
@@ -99,9 +93,9 @@ export type WithDynamicParams<TContext extends MachineContext, TExpressionEvent
99
93
  event: TExpressionEvent;
100
94
  }) => T['params']);
101
95
  }, undefined extends T['params'] ? false : true> : never;
102
- export type Action<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = NoRequiredParams<TAction> | WithDynamicParams<TContext, TExpressionEvent, TAction> | ActionFunction<TContext, TExpressionEvent, TEvent, TExpressionAction, TAction, TGuard, TDelay>;
103
- export type UnknownAction = Action<MachineContext, EventObject, EventObject, ParameterizedObject | undefined, ParameterizedObject, ParameterizedObject, string>;
104
- export type Actions<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = SingleOrArray<Action<TContext, TExpressionEvent, TEvent, TExpressionAction, TAction, TGuard, TDelay>>;
96
+ export type Action<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = NoRequiredParams<TAction> | WithDynamicParams<TContext, TExpressionEvent, TAction> | ActionFunction<TContext, TExpressionEvent, TEvent, TExpressionAction, TActor, TAction, TGuard, TDelay>;
97
+ export type UnknownAction = Action<MachineContext, EventObject, EventObject, ParameterizedObject | undefined, ProvidedActor, ParameterizedObject, ParameterizedObject, string>;
98
+ export type Actions<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = SingleOrArray<Action<TContext, TExpressionEvent, TEvent, TExpressionAction, TActor, TAction, TGuard, TDelay>>;
105
99
  export type StateKey = string | AnyState;
106
100
  export interface StateValueMap {
107
101
  [key: string]: StateValue;
@@ -114,19 +108,19 @@ export interface StateValueMap {
114
108
  */
115
109
  export type StateValue = string | StateValueMap;
116
110
  export type TransitionTarget = SingleOrArray<string>;
117
- export interface TransitionConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> {
111
+ export interface TransitionConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> {
118
112
  guard?: Guard<TContext, TExpressionEvent, undefined, TGuard>;
119
- actions?: Actions<TContext, TExpressionEvent, TEvent, undefined, TAction, TGuard, TDelay>;
113
+ actions?: Actions<TContext, TExpressionEvent, TEvent, undefined, TActor, TAction, TGuard, TDelay>;
120
114
  reenter?: boolean;
121
115
  target?: TransitionTarget | undefined;
122
116
  meta?: Record<string, any>;
123
117
  description?: string;
124
118
  }
125
- export interface InitialTransitionConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> extends TransitionConfig<TContext, TEvent, TEvent, TAction, TGuard, TDelay> {
119
+ export interface InitialTransitionConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> extends TransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay> {
126
120
  target: TransitionTarget;
127
121
  }
128
- export type AnyTransitionConfig = TransitionConfig<any, any, any, any, any, any>;
129
- export interface InvokeDefinition<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> {
122
+ export type AnyTransitionConfig = TransitionConfig<any, any, any, any, any, any, any>;
123
+ export interface InvokeDefinition<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> {
130
124
  id: string;
131
125
  systemId: string | undefined;
132
126
  /**
@@ -137,19 +131,19 @@ export interface InvokeDefinition<TContext extends MachineContext, TEvent extend
137
131
  /**
138
132
  * The transition to take upon the invoked child machine reaching its final top-level state.
139
133
  */
140
- onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneInvokeEvent<any>, DoneInvokeEvent<any>, TAction, TGuard, TDelay>>;
134
+ onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneActorEvent<unknown>, TEvent, TActor, TAction, TGuard, TDelay>>;
141
135
  /**
142
136
  * The transition to take upon the invoked child machine sending an error event.
143
137
  */
144
- onError?: string | SingleOrArray<TransitionConfig<TContext, ErrorEvent<any>, ErrorEvent<any>, TAction, TGuard, TDelay>>;
145
- onSnapshot?: string | SingleOrArray<TransitionConfig<TContext, SnapshotEvent<any>, SnapshotEvent<any>, TAction, TGuard, TDelay>>;
146
- toJSON: () => Omit<InvokeDefinition<TContext, TEvent, TAction, TGuard, TDelay>, 'onDone' | 'onError' | 'toJSON'>;
138
+ onError?: string | SingleOrArray<TransitionConfig<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay>>;
139
+ onSnapshot?: string | SingleOrArray<TransitionConfig<TContext, SnapshotEvent<unknown>, TEvent, TActor, TAction, TGuard, TDelay>>;
140
+ toJSON: () => Omit<InvokeDefinition<TContext, TEvent, TActor, TAction, TGuard, TDelay>, 'onDone' | 'onError' | 'toJSON'>;
147
141
  }
148
142
  type Delay<TDelay extends string> = TDelay | number;
149
- export type DelayedTransitions<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
150
- [K in Delay<TDelay>]?: string | SingleOrArray<TransitionConfig<TContext, TEvent, TEvent, TAction, TGuard, TDelay>>;
151
- } | Array<TransitionConfig<TContext, TEvent, TEvent, TAction, TGuard, TDelay> & {
152
- delay: Delay<TDelay> | ((args: UnifiedArg<TContext, TEvent>) => Delay<TDelay>);
143
+ export type DelayedTransitions<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
144
+ [K in Delay<TDelay>]?: string | SingleOrArray<TransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay>>;
145
+ } | Array<TransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay> & {
146
+ delay: Delay<TDelay> | ((args: UnifiedArg<TContext, TEvent, TEvent>) => Delay<TDelay>);
153
147
  }>;
154
148
  export type StateTypes = 'atomic' | 'compound' | 'parallel' | 'final' | 'history' | string;
155
149
  export type SingleOrArray<T> = readonly T[] | T;
@@ -163,15 +157,15 @@ export type StatesDefinition<TContext extends MachineContext, TEvent extends Eve
163
157
  [K in string]: StateNodeDefinition<TContext, TEvent>;
164
158
  };
165
159
  export type TransitionConfigTarget = string | undefined;
166
- export type TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = SingleOrArray<TransitionConfigTarget | TransitionConfig<TContext, TExpressionEvent, TEvent, TAction, TGuard, TDelay>>;
167
- export type TransitionsConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
168
- [K in EventDescriptor<TEvent>]?: TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent, TAction, TGuard, TDelay>;
160
+ export type TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = SingleOrArray<TransitionConfigTarget | TransitionConfig<TContext, TExpressionEvent, TEvent, TActor, TAction, TGuard, TDelay>>;
161
+ export type TransitionsConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
162
+ [K in EventDescriptor<TEvent>]?: TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent, TActor, TAction, TGuard, TDelay>;
169
163
  };
170
164
  type PartialEventDescriptor<TEventType extends string> = TEventType extends `${infer TLeading}.${infer TTail}` ? `${TLeading}.*` | `${TLeading}.${PartialEventDescriptor<TTail>}` : never;
171
165
  export type EventDescriptor<TEvent extends EventObject> = TEvent['type'] | PartialEventDescriptor<TEvent['type']> | '*';
172
166
  type NormalizeDescriptor<TDescriptor extends string> = TDescriptor extends '*' ? string : TDescriptor extends `${infer TLeading}.*` ? `${TLeading}.${string}` : TDescriptor;
173
- type IsLiteralString<T extends string> = string extends T ? false : true;
174
- type DistributeActors<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = TActor extends {
167
+ export type IsLiteralString<T extends string> = string extends T ? false : true;
168
+ type DistributeActors<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TSpecificActor extends ProvidedActor> = TSpecificActor extends {
175
169
  src: infer TSrc;
176
170
  } ? Compute<{
177
171
  systemId?: string;
@@ -179,22 +173,22 @@ type DistributeActors<TContext extends MachineContext, TEvent extends EventObjec
179
173
  * The source of the machine to be invoked, or the machine itself.
180
174
  */
181
175
  src: TSrc;
182
- input?: Mapper<TContext, TEvent, InputFrom<TActor['logic']>> | InputFrom<TActor['logic']>;
176
+ input?: Mapper<TContext, TEvent, InputFrom<TSpecificActor['logic']>> | InputFrom<TSpecificActor['logic']>;
183
177
  /**
184
178
  * The transition to take upon the invoked child machine reaching its final top-level state.
185
179
  */
186
- onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneInvokeEvent<OutputFrom<TActor['logic']>>, TEvent, TAction, TGuard, TDelay>>;
180
+ onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneActorEvent<OutputFrom<TSpecificActor['logic']>>, TEvent, TActor, TAction, TGuard, TDelay>>;
187
181
  /**
188
182
  * The transition to take upon the invoked child machine sending an error event.
189
183
  */
190
- onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorEvent<any>, TEvent, TAction, TGuard, TDelay>>;
191
- onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<any>, TEvent, TAction, TGuard, TDelay>>;
192
- } & (TActor['id'] extends string ? {
184
+ onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay>>;
185
+ onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<SnapshotFrom<TSpecificActor['logic']>>, TEvent, TActor, TAction, TGuard, TDelay>>;
186
+ } & (TSpecificActor['id'] extends string ? {
193
187
  /**
194
188
  * The unique identifier for the invoked machine. If not specified, this
195
189
  * will be the machine's own `id`, or the URL (from `src`).
196
190
  */
197
- id: TActor['id'];
191
+ id: TSpecificActor['id'];
198
192
  } : {
199
193
  /**
200
194
  * The unique identifier for the invoked machine. If not specified, this
@@ -202,7 +196,7 @@ type DistributeActors<TContext extends MachineContext, TEvent extends EventObjec
202
196
  */
203
197
  id?: string;
204
198
  })> : never;
205
- export type InvokeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = IsLiteralString<TActor['src']> extends true ? DistributeActors<TContext, TEvent, TActor, TAction, TGuard, TDelay> : {
199
+ export type InvokeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = IsLiteralString<TActor['src']> extends true ? DistributeActors<TContext, TEvent, TActor, TAction, TGuard, TDelay, TActor> : {
206
200
  /**
207
201
  * The unique identifier for the invoked machine. If not specified, this
208
202
  * will be the machine's own `id`, or the URL (from `src`).
@@ -217,19 +211,21 @@ export type InvokeConfig<TContext extends MachineContext, TEvent extends EventOb
217
211
  /**
218
212
  * The transition to take upon the invoked child machine reaching its final top-level state.
219
213
  */
220
- onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneInvokeEvent<any>, TEvent, TAction, TGuard, TDelay>>;
214
+ onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneActorEvent<any>, // TODO: consider replacing with `unknown`
215
+ TEvent, TActor, TAction, TGuard, TDelay>>;
221
216
  /**
222
217
  * The transition to take upon the invoked child machine sending an error event.
223
218
  */
224
- onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorEvent<any>, TEvent, TAction, TGuard, TDelay>>;
225
- onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<any>, TEvent, TAction, TGuard, TDelay>>;
219
+ onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay>>;
220
+ onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<any>, // TODO: consider replacing with `unknown`
221
+ TEvent, TActor, TAction, TGuard, TDelay>>;
226
222
  };
227
223
  export type AnyInvokeConfig = InvokeConfig<any, any, any, any, any, any>;
228
224
  export interface StateNodeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TOutput> {
229
225
  /**
230
226
  * The initial state transition.
231
227
  */
232
- initial?: InitialTransitionConfig<TContext, TEvent, TAction, TGuard, TDelay> | SingleOrArray<string> | undefined;
228
+ initial?: InitialTransitionConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay> | SingleOrArray<string> | undefined;
233
229
  /**
234
230
  * The type of this state node:
235
231
  *
@@ -257,30 +253,30 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
257
253
  /**
258
254
  * The mapping of event types to their potential transition(s).
259
255
  */
260
- on?: TransitionsConfig<TContext, TEvent, TAction, TGuard, TDelay>;
256
+ on?: TransitionsConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay>;
261
257
  /**
262
258
  * The action(s) to be executed upon entering the state node.
263
259
  */
264
- entry?: Actions<TContext, TEvent, TEvent, undefined, TAction, TGuard, TDelay>;
260
+ entry?: Actions<TContext, TEvent, TEvent, undefined, TActor, TAction, TGuard, TDelay>;
265
261
  /**
266
262
  * The action(s) to be executed upon exiting the state node.
267
263
  */
268
- exit?: Actions<TContext, TEvent, TEvent, undefined, TAction, TGuard, TDelay>;
264
+ exit?: Actions<TContext, TEvent, TEvent, undefined, TActor, TAction, TGuard, TDelay>;
269
265
  /**
270
266
  * The potential transition(s) to be taken upon reaching a final child state node.
271
267
  *
272
268
  * This is equivalent to defining a `[done(id)]` transition on this state node's `on` property.
273
269
  */
274
- onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneEventObject, DoneEventObject, TAction, TGuard, TDelay>> | undefined;
270
+ onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneStateEvent, TEvent, TActor, TAction, TGuard, TDelay>> | undefined;
275
271
  /**
276
272
  * The mapping (or array) of delays (in milliseconds) to their potential transition(s).
277
273
  * The delayed transitions are taken after the specified delay in an interpreter.
278
274
  */
279
- after?: DelayedTransitions<TContext, TEvent, TAction, TGuard, TDelay>;
275
+ after?: DelayedTransitions<TContext, TEvent, TActor, TAction, TGuard, TDelay>;
280
276
  /**
281
277
  * An eventless transition that is always taken when this state node is active.
282
278
  */
283
- always?: TransitionConfigOrTarget<TContext, TEvent, TEvent, TAction, TGuard, TDelay>;
279
+ always?: TransitionConfigOrTarget<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay>;
284
280
  /**
285
281
  * @private
286
282
  */
@@ -290,7 +286,7 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
290
286
  */
291
287
  meta?: any;
292
288
  /**
293
- * The output data sent with the "done.state._id_" event if this is a final state node.
289
+ * The output data sent with the "xstate.done.state._id_" event if this is a final state node.
294
290
  *
295
291
  * The output data will be evaluated with the current `context` and placed on the `.data` property
296
292
  * of the event.
@@ -334,7 +330,7 @@ export interface StateNodeDefinition<TContext extends MachineContext, TEvent ext
334
330
  meta: any;
335
331
  order: number;
336
332
  output?: FinalStateNodeConfig<TContext, TEvent>['output'];
337
- invoke: Array<InvokeDefinition<TContext, TEvent, TODO, TODO, TODO>>;
333
+ invoke: Array<InvokeDefinition<TContext, TEvent, TODO, TODO, TODO, TODO>>;
338
334
  description?: string;
339
335
  tags: string[];
340
336
  }
@@ -360,27 +356,27 @@ export interface HistoryStateNodeConfig<TContext extends MachineContext, TEvent
360
356
  export interface FinalStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> extends AtomicStateNodeConfig<TContext, TEvent> {
361
357
  type: 'final';
362
358
  /**
363
- * The data to be sent with the "done.state.<id>" event. The data can be
359
+ * The data to be sent with the "xstate.done.state.<id>" event. The data can be
364
360
  * static or dynamic (based on assigners).
365
361
  */
366
362
  output?: Mapper<TContext, TEvent, any>;
367
363
  }
368
364
  export type SimpleOrStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> = AtomicStateNodeConfig<TContext, TEvent> | StateNodeConfig<TContext, TEvent, TODO, TODO, TODO, TODO, TODO, TODO>;
369
- export type ActionFunctionMap<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string> = {
365
+ export type ActionFunctionMap<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string> = {
370
366
  [K in TAction['type']]?: ActionFunction<TContext, TEvent, TEvent, TAction extends {
371
367
  type: K;
372
- } ? TAction : never, TAction, TGuard, TDelay>;
368
+ } ? TAction : never, TActor, TAction, TGuard, TDelay>;
373
369
  };
374
370
  type GuardMap<TContext extends MachineContext, TEvent extends EventObject, TGuard extends ParameterizedObject> = {
375
371
  [K in TGuard['type']]?: GuardPredicate<TContext, TEvent, TGuard extends {
376
372
  type: K;
377
373
  } ? TGuard : never, TGuard>;
378
374
  };
379
- export type DelayFunctionMap<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject> = Record<string, DelayConfig<TContext, TEvent, TAction>>;
380
- export type DelayConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined> = number | DelayExpr<TContext, TExpressionEvent, TExpressionAction>;
381
- export interface MachineImplementationsSimplified<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject> {
375
+ export type DelayFunctionMap<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject> = Record<string, DelayConfig<TContext, TEvent, TAction, TEvent>>;
376
+ export type DelayConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject> = number | DelayExpr<TContext, TExpressionEvent, TExpressionAction, TEvent>;
377
+ export interface MachineImplementationsSimplified<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor = ProvidedActor, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject> {
382
378
  guards: GuardMap<TContext, TEvent, TGuard>;
383
- actions: ActionFunctionMap<TContext, TEvent, TAction>;
379
+ actions: ActionFunctionMap<TContext, TEvent, TActor, TAction>;
384
380
  actors: Record<string, AnyActorLogic | {
385
381
  src: AnyActorLogic;
386
382
  input: Mapper<TContext, TEvent, any> | any;
@@ -388,8 +384,8 @@ export interface MachineImplementationsSimplified<TContext extends MachineContex
388
384
  delays: DelayFunctionMap<TContext, TEvent, TAction>;
389
385
  }
390
386
  type MaybeNarrowedEvent<TIndexedEvents, TCausingLookup, K> = Cast<Prop<TIndexedEvents, K extends keyof TCausingLookup ? TCausingLookup[K] : TIndexedEvents[keyof TIndexedEvents]>, EventObject>;
391
- type MachineImplementationsActions<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingActions'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, TIndexedActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActions'>, TIndexedGuards = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedGuards'>, TIndexedDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedDelays'>> = {
392
- [K in keyof TIndexedActions]?: ActionFunction<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingActions, K>, Cast<Prop<TIndexedEvents, keyof TIndexedEvents>, EventObject>, Cast<TIndexedActions[K], ParameterizedObject>, Cast<Prop<TIndexedActions, keyof TIndexedActions>, ParameterizedObject>, Cast<Prop<TIndexedGuards, keyof TIndexedGuards>, ParameterizedObject>, Cast<Prop<TIndexedDelays, keyof TIndexedDelays>, ParameterizedObject>['type']>;
387
+ type MachineImplementationsActions<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingActions'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, TIndexedActors = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActors'>, TIndexedActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActions'>, TIndexedGuards = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedGuards'>, TIndexedDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedDelays'>> = {
388
+ [K in keyof TIndexedActions]?: ActionFunction<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingActions, K>, Cast<Prop<TIndexedEvents, keyof TIndexedEvents>, EventObject>, Cast<TIndexedActions[K], ParameterizedObject>, Cast<Prop<TIndexedActors, keyof TIndexedActors>, ProvidedActor>, Cast<Prop<TIndexedActions, keyof TIndexedActions>, ParameterizedObject>, Cast<Prop<TIndexedGuards, keyof TIndexedGuards>, ParameterizedObject>, Cast<Prop<TIndexedDelays, keyof TIndexedDelays>, ParameterizedObject>['type']>;
393
389
  };
394
390
  type MachineImplementationsActors<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingActors = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingActors'>, TIndexedActors = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActors'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, _TInvokeSrcNameMap = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'invokeSrcNameMap'>> = {
395
391
  [K in keyof TIndexedActors]?: Cast<Prop<TIndexedActors[K], 'logic'>, AnyActorLogic> | {
@@ -398,7 +394,7 @@ type MachineImplementationsActors<TContext extends MachineContext, TResolvedType
398
394
  };
399
395
  };
400
396
  type MachineImplementationsDelays<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingDelays'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, TIndexedActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActions'>, TIndexedDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedDelays'>> = {
401
- [K in keyof TIndexedDelays]?: DelayConfig<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingDelays, K>, Cast<Prop<TIndexedActions, keyof TIndexedActions>, ParameterizedObject> | undefined>;
397
+ [K in keyof TIndexedDelays]?: DelayConfig<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingDelays, K>, Cast<Prop<TIndexedActions, keyof TIndexedActions>, ParameterizedObject> | undefined, Cast<Prop<TIndexedEvents, keyof TIndexedEvents>, EventObject>>;
402
398
  };
403
399
  type MachineImplementationsGuards<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingGuards = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingGuards'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, TIndexedGuards = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedGuards'>> = {
404
400
  [K in keyof TIndexedGuards]?: Guard<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingGuards, K>, Cast<TIndexedGuards[K], ParameterizedObject>, Cast<Prop<TIndexedGuards, keyof TIndexedGuards>, ParameterizedObject>>;
@@ -423,9 +419,9 @@ type GenerateGuardsImplementationsPart<TContext extends MachineContext, TResolve
423
419
  }>;
424
420
  export type InternalMachineImplementations<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TDelay extends string, TResolvedTypesMeta, TRequireMissingImplementations extends boolean = false, TMissingImplementations = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'missingImplementations'>> = Compute<GenerateActionsImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateActorsImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateDelaysImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateGuardsImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations>>;
425
421
  export type MachineImplementations<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor = ProvidedActor, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string, TTag extends string = string, TTypesMeta extends TypegenConstraint = TypegenDisabled> = InternalMachineImplementations<TContext, TEvent, TActor, TAction, TDelay, ResolveTypegenMeta<TTypesMeta, TEvent, TActor, TAction, TGuard, TDelay, TTag>>;
426
- type InitialContext<TContext extends MachineContext, TInput> = TContext | ContextFactory<TContext, TInput>;
427
- export type ContextFactory<TContext extends MachineContext, TInput> = ({ spawn, input }: {
428
- spawn: Spawner;
422
+ type InitialContext<TContext extends MachineContext, TActor extends ProvidedActor, TInput> = TContext | ContextFactory<TContext, TActor, TInput>;
423
+ export type ContextFactory<TContext extends MachineContext, TActor extends ProvidedActor, TInput> = ({ spawn, input }: {
424
+ spawn: Spawner<TActor>;
429
425
  input: TInput;
430
426
  }) => TContext;
431
427
  type RootStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TOutput> = Omit<StateNodeConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TOutput>, 'states'> & {
@@ -441,9 +437,9 @@ export type MachineConfig<TContext extends MachineContext, TEvent extends EventO
441
437
  version?: string;
442
438
  types?: MachineTypes<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TInput, TOutput, TTypesMeta>;
443
439
  }) & (Equals<TContext, MachineContext> extends true ? {
444
- context?: InitialContext<LowInfer<TContext>, TInput>;
440
+ context?: InitialContext<LowInfer<TContext>, TActor, TInput>;
445
441
  } : {
446
- context: InitialContext<LowInfer<TContext>, TInput>;
442
+ context: InitialContext<LowInfer<TContext>, TActor, TInput>;
447
443
  });
448
444
  export interface ProvidedActor {
449
445
  src: string;
@@ -470,63 +466,45 @@ export type HistoryValue<TContext extends MachineContext, TEvent extends EventOb
470
466
  export type AnyHistoryValue = HistoryValue<any, any>;
471
467
  export type StateFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = T extends AnyStateMachine ? ReturnType<T['transition']> : T extends (...args: any[]) => AnyStateMachine ? ReturnType<ReturnType<T>['transition']> : never;
472
468
  export type Transitions<TContext extends MachineContext, TEvent extends EventObject> = Array<TransitionDefinition<TContext, TEvent>>;
473
- export declare enum ConstantPrefix {
474
- After = "xstate.after",
475
- DoneState = "done.state",
476
- DoneInvoke = "done.invoke",
477
- ErrorExecution = "error.execution",
478
- ErrorCommunication = "error.communication",
479
- ErrorPlatform = "error.platform",
480
- ErrorCustom = "xstate.error"
481
- }
482
- export interface DoneInvokeEvent<TOutput> {
483
- type: `done.invoke.${string}`;
469
+ export interface DoneActorEvent<TOutput = unknown> {
470
+ type: `xstate.done.actor.${string}`;
484
471
  output: TOutput;
485
472
  }
486
- export interface ErrorEvent<TErrorData> {
487
- type: `error.${string}`;
473
+ export interface ErrorActorEvent<TErrorData = unknown> extends EventObject {
474
+ type: `xstate.error.actor.${string}`;
488
475
  data: TErrorData;
489
476
  }
490
- export interface SnapshotEvent<TData> {
477
+ export interface SnapshotEvent<TData = unknown> extends EventObject {
491
478
  type: `xstate.snapshot.${string}`;
492
479
  data: TData;
493
480
  }
494
- export interface ErrorExecutionEvent extends EventObject {
495
- src: string;
496
- type: ConstantPrefix.ErrorExecution;
497
- data: any;
498
- }
499
- export interface ErrorPlatformEvent extends EventObject {
500
- data: any;
501
- }
502
- export interface DoneEventObject extends EventObject {
503
- output?: any;
504
- toString(): string;
481
+ export interface DoneStateEvent<TOutput = unknown> extends EventObject {
482
+ type: `xstate.done.state.${string}`;
483
+ output: TOutput;
505
484
  }
506
- export type DoneEvent = DoneEventObject & string;
507
- export type DelayExpr<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined> = (args: ActionArgs<TContext, TExpressionEvent, TExpressionAction>) => number;
508
- export type LogExpr<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined> = (args: ActionArgs<TContext, TExpressionEvent, TExpressionAction>) => unknown;
509
- export type SendExpr<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TSentEvent extends EventObject> = (args: ActionArgs<TContext, TExpressionEvent, TExpressionAction>) => TSentEvent;
485
+ export type DelayExpr<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject> = (args: ActionArgs<TContext, TExpressionEvent, TExpressionAction, TEvent>) => number;
486
+ export type LogExpr<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject> = (args: ActionArgs<TContext, TExpressionEvent, TExpressionAction, TEvent>) => unknown;
487
+ export type SendExpr<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TSentEvent extends EventObject, TEvent extends EventObject> = (args: ActionArgs<TContext, TExpressionEvent, TExpressionAction, TEvent>) => TSentEvent;
510
488
  export declare enum SpecialTargets {
511
489
  Parent = "#_parent",
512
490
  Internal = "#_internal"
513
491
  }
514
- export interface SendToActionOptions<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TDelay extends string> extends RaiseActionOptions<TContext, TExpressionEvent, TExpressionAction, TDelay> {
492
+ export interface SendToActionOptions<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject, TDelay extends string> extends RaiseActionOptions<TContext, TExpressionEvent, TExpressionAction, TEvent, TDelay> {
515
493
  }
516
- export interface RaiseActionOptions<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TDelay extends string> {
494
+ export interface RaiseActionOptions<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject, TDelay extends string> {
517
495
  id?: string;
518
- delay?: Delay<TDelay> | DelayExpr<TContext, TExpressionEvent, TExpressionAction>;
496
+ delay?: Delay<TDelay> | DelayExpr<TContext, TExpressionEvent, TExpressionAction, TEvent>;
519
497
  }
520
- export interface RaiseActionParams<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject, TDelay extends string> extends RaiseActionOptions<TContext, TExpressionEvent, TExpressionAction, TDelay> {
521
- event: TEvent | SendExpr<TContext, TExpressionEvent, TExpressionAction, TEvent>;
498
+ export interface RaiseActionParams<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject, TDelay extends string> extends RaiseActionOptions<TContext, TExpressionEvent, TExpressionAction, TEvent, TDelay> {
499
+ event: TEvent | SendExpr<TContext, TExpressionEvent, TExpressionAction, TEvent, TEvent>;
522
500
  }
523
- export interface SendToActionParams<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TSentEvent extends EventObject, TDelay extends string> extends SendToActionOptions<TContext, TExpressionEvent, TExpressionAction, TDelay> {
524
- event: TSentEvent | SendExpr<TContext, TExpressionEvent, TExpressionAction, TSentEvent>;
501
+ export interface SendToActionParams<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TSentEvent extends EventObject, TEvent extends EventObject, TDelay extends string> extends SendToActionOptions<TContext, TExpressionEvent, TExpressionAction, TEvent, TDelay> {
502
+ event: TSentEvent | SendExpr<TContext, TExpressionEvent, TExpressionAction, TSentEvent, TEvent>;
525
503
  }
526
- export type Assigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined> = (args: AssignArgs<TContext, TExpressionEvent, TExpressionAction>) => Partial<TContext>;
527
- export type PartialAssigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TKey extends keyof TContext> = (args: AssignArgs<TContext, TExpressionEvent, TExpressionAction>) => TContext[TKey];
528
- export type PropertyAssigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined> = {
529
- [K in keyof TContext]?: PartialAssigner<TContext, TExpressionEvent, TExpressionAction, K> | TContext[K];
504
+ export type Assigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject, TActor extends ProvidedActor> = (args: AssignArgs<TContext, TExpressionEvent, TExpressionAction, TEvent, TActor>) => Partial<TContext>;
505
+ export type PartialAssigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject, TActor extends ProvidedActor, TKey extends keyof TContext> = (args: AssignArgs<TContext, TExpressionEvent, TExpressionAction, TEvent, TActor>) => TContext[TKey];
506
+ export type PropertyAssigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject, TActor extends ProvidedActor> = {
507
+ [K in keyof TContext]?: PartialAssigner<TContext, TExpressionEvent, TExpressionAction, TEvent, TActor, K> | TContext[K];
530
508
  };
531
509
  export type Mapper<TContext extends MachineContext, TEvent extends EventObject, TResult> = (args: {
532
510
  context: TContext;
@@ -536,7 +514,7 @@ export type Mapper<TContext extends MachineContext, TEvent extends EventObject,
536
514
  export type PropertyMapper<TContext extends MachineContext, TEvent extends EventObject, TParams extends {}> = {
537
515
  [K in keyof TParams]?: Mapper<TContext, TEvent, TParams[K]> | TParams[K];
538
516
  };
539
- export interface TransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends Omit<TransitionConfig<TContext, TEvent, TEvent, TODO, TODO, TODO>, 'target' | 'guard'> {
517
+ export interface TransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends Omit<TransitionConfig<TContext, TEvent, TEvent, TODO, TODO, TODO, TODO>, 'target' | 'guard'> {
540
518
  target: ReadonlyArray<StateNode<TContext, TEvent>> | undefined;
541
519
  source: StateNode<TContext, TEvent>;
542
520
  actions: readonly UnknownAction[];
@@ -561,7 +539,7 @@ export type TransitionDefinitionMap<TContext extends MachineContext, TEvent exte
561
539
  [K in EventDescriptor<TEvent>]: Array<TransitionDefinition<TContext, ExtractEvent<TEvent, K>>>;
562
540
  };
563
541
  export interface DelayedTransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends TransitionDefinition<TContext, TEvent> {
564
- delay: number | string | DelayExpr<TContext, TEvent, undefined>;
542
+ delay: number | string | DelayExpr<TContext, TEvent, undefined, TEvent>;
565
543
  }
566
544
  export interface StateLike<TContext extends MachineContext> {
567
545
  value: StateValue;
@@ -590,14 +568,6 @@ export interface ActorOptions<TLogic extends AnyActorLogic> {
590
568
  clock?: Clock;
591
569
  logger?: (...args: any[]) => void;
592
570
  parent?: ActorRef<any>;
593
- /**
594
- * If `true`, defers processing of sent events until the service
595
- * is initialized (`.start()`). Otherwise, an error will be thrown
596
- * for events sent to an uninitialized service.
597
- *
598
- * Default: `true`
599
- */
600
- deferEvents?: boolean;
601
571
  /**
602
572
  * The custom `id` for referencing this service.
603
573
  */
@@ -1,6 +1,6 @@
1
1
  import { AnyActorLogic, AnyState } from "./index.js";
2
2
  import type { StateNode } from "./StateNode.js";
3
- import type { ActorLogic, AnyEventObject, EventObject, MachineContext, Mapper, Observer, ErrorEvent, SingleOrArray, StateLike, StateValue, Subscribable, TransitionConfigTarget, AnyActorRef, AnyTransitionConfig } from "./types.js";
3
+ import type { ActorLogic, AnyEventObject, EventObject, MachineContext, Mapper, Observer, ErrorActorEvent, SingleOrArray, StateLike, StateValue, Subscribable, TransitionConfigTarget, AnyActorRef, AnyTransitionConfig } from "./types.js";
4
4
  export declare function keys<T extends object>(value: T): Array<keyof T & string>;
5
5
  export declare function matchesState(parentStateId: StateValue, childStateId: StateValue): boolean;
6
6
  export declare function toStatePath(stateId: string | string[]): string[];
@@ -34,7 +34,7 @@ export declare function partition<T, A extends T, B extends T>(items: T[], predi
34
34
  export declare function isArray(value: any): value is readonly any[];
35
35
  export declare function isObservable<T>(value: any): value is Subscribable<T>;
36
36
  export declare const uniqueId: () => string;
37
- export declare function isErrorEvent(event: AnyEventObject): event is ErrorEvent<any>;
37
+ export declare function isErrorActorEvent(event: AnyEventObject): event is ErrorActorEvent;
38
38
  export declare function toTransitionConfigArray<TContext extends MachineContext, TEvent extends EventObject>(configLike: SingleOrArray<AnyTransitionConfig | TransitionConfigTarget>): Array<AnyTransitionConfig>;
39
39
  export declare function normalizeTarget<TContext extends MachineContext, TEvent extends EventObject>(target: SingleOrArray<string | StateNode<TContext, TEvent>> | undefined): ReadonlyArray<string | StateNode<TContext, TEvent>> | undefined;
40
40
  export declare function reportUnhandledExceptionOnInvocation(originalError: any, currentError: any, id: string): void;