xstate 4.9.1 → 4.10.0

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.
package/es/State.d.ts CHANGED
@@ -2,9 +2,12 @@ import { StateValue, ActivityMap, EventObject, HistoryValue, ActionObject, Event
2
2
  import { StateNode } from './StateNode';
3
3
  import { Actor } from './Actor';
4
4
  export declare function stateValuesEqual(a: StateValue | undefined, b: StateValue | undefined): boolean;
5
- export declare function isState<TContext, TEvent extends EventObject>(state: object | string): state is State<TContext, TEvent>;
5
+ export declare function isState<TContext, TEvent extends EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = any>(state: object | string): state is State<TContext, TEvent, TStateSchema, TTypestate>;
6
6
  export declare function bindActionToState<TC, TE extends EventObject>(action: ActionObject<TC, TE>, state: State<TC, TE>): ActionObject<TC, TE>;
7
- export declare class State<TContext, TEvent extends EventObject = EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = any> {
7
+ export declare class State<TContext, TEvent extends EventObject = EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = {
8
+ value: any;
9
+ context: TContext;
10
+ }> {
8
11
  value: StateValue;
9
12
  context: TContext;
10
13
  historyValue?: HistoryValue | undefined;
@@ -86,8 +89,10 @@ export declare class State<TContext, TEvent extends EventObject = EventObject, T
86
89
  * Whether the current state value is a subset of the given parent state value.
87
90
  * @param parentStateValue
88
91
  */
89
- matches<TSV extends TTypestate['value']>(parentStateValue: TSV): this is TTypestate extends {
92
+ matches<TSV extends TTypestate['value']>(parentStateValue: TSV): this is State<(TTypestate extends {
93
+ value: TSV;
94
+ } ? TTypestate : never)['context'], TEvent, TStateSchema, TTypestate> & {
90
95
  value: TSV;
91
- } ? State<TTypestate['context'], TEvent, TStateSchema, TTypestate> : never;
96
+ };
92
97
  }
93
98
  //# sourceMappingURL=State.d.ts.map
package/es/StateNode.d.ts CHANGED
@@ -190,7 +190,10 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
190
190
  * @param event The event that was sent at the current state
191
191
  * @param context The current context (extended state) of the current state
192
192
  */
193
- transition(state: string | StateValueMap | State<TContext, TEvent, any, any> | undefined, event: Event<TEvent> | SCXML.Event<TEvent>, context?: TContext): State<TContext, TEvent, TStateSchema, TTypestate>;
193
+ transition(state: string | StateValueMap | State<TContext, TEvent, any, {
194
+ value: any;
195
+ context: TContext;
196
+ }> | undefined, event: Event<TEvent> | SCXML.Event<TEvent>, context?: TContext): State<TContext, TEvent, TStateSchema, TTypestate>;
194
197
  private resolveRaisedTransition;
195
198
  private resolveTransition;
196
199
  /**
package/es/StateNode.js CHANGED
@@ -843,9 +843,9 @@ function () {
843
843
  var action = actions_1_1.value;
844
844
 
845
845
  if (action.type === start$1) {
846
- activities[action.activity.type] = action;
846
+ activities[action.activity.id || action.activity.type] = action;
847
847
  } else if (action.type === stop$1) {
848
- activities[action.activity.type] = false;
848
+ activities[action.activity.id || action.activity.type] = false;
849
849
  }
850
850
  }
851
851
  } catch (e_6_1) {
@@ -1433,11 +1433,8 @@ function () {
1433
1433
  target: target,
1434
1434
  source: this,
1435
1435
  internal: internal,
1436
- eventType: transitionConfig.event
1437
- });
1438
-
1439
- Object.defineProperty(transition, 'toJSON', {
1440
- value: function () {
1436
+ eventType: transitionConfig.event,
1437
+ toJSON: function () {
1441
1438
  return __assign(__assign({}, transition), {
1442
1439
  target: transition.target ? transition.target.map(function (t) {
1443
1440
  return "#" + t.id;
@@ -1446,6 +1443,7 @@ function () {
1446
1443
  });
1447
1444
  }
1448
1445
  });
1446
+
1449
1447
  return transition;
1450
1448
  };
1451
1449
 
@@ -1479,6 +1477,11 @@ function () {
1479
1477
  }
1480
1478
 
1481
1479
  var doneConfig = this.config.onDone ? toTransitionConfigArray(String(done(this.id)), this.config.onDone) : [];
1480
+
1481
+ if (!IS_PRODUCTION) {
1482
+ warn(!(this.config.onDone && !this.parent), "Root nodes cannot have an \".onDone\" transition. Please check the config of \"" + this.id + "\".");
1483
+ }
1484
+
1482
1485
  var invokeConfig = flatten(this.invoke.map(function (invokeDef) {
1483
1486
  var settleTransitions = [];
1484
1487
 
package/es/actions.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Action, Event, EventObject, SingleOrArray, SendAction, SendActionOptions, CancelAction, ActionObject, ActionType, Assigner, PropertyAssigner, AssignAction, ActionFunction, ActionFunctionMap, ActivityActionObject, ActionTypes, ActivityDefinition, RaiseAction, RaiseActionObject, DoneEvent, ErrorPlatformEvent, DoneEventObject, SendExpr, SendActionObject, PureAction, LogExpr, LogAction, LogActionObject, DelayFunctionMap, SCXML, ExprWithMeta, ChooseConditon, ChooseAction } from './types';
1
+ import { Action, Event, EventObject, SingleOrArray, SendAction, SendActionOptions, CancelAction, ActionObject, ActionType, Assigner, PropertyAssigner, AssignAction, ActionFunction, ActionFunctionMap, ActivityActionObject, ActionTypes, ActivityDefinition, RaiseAction, RaiseActionObject, DoneEvent, ErrorPlatformEvent, DoneEventObject, SendExpr, SendActionObject, PureAction, LogExpr, LogAction, LogActionObject, DelayFunctionMap, SCXML, ExprWithMeta, ChooseConditon, ChooseAction, AnyEventObject } from './types';
2
2
  import * as actionTypes from './actionTypes';
3
3
  import { State } from './State';
4
4
  import { StateNode } from './StateNode';
@@ -8,7 +8,7 @@ export declare const initEvent: SCXML.Event<{
8
8
  }>;
9
9
  export declare function getActionFunction<TContext, TEvent extends EventObject>(actionType: ActionType, actionFunctionMap?: ActionFunctionMap<TContext, TEvent>): ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent> | undefined;
10
10
  export declare function toActionObject<TContext, TEvent extends EventObject>(action: Action<TContext, TEvent>, actionFunctionMap?: ActionFunctionMap<TContext, TEvent>): ActionObject<TContext, TEvent>;
11
- export declare const toActionObjects: <TContext, TEvent extends EventObject>(action?: string | RaiseAction<import("./types").AnyEventObject> | ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent> | AssignAction<Required<TContext>, TEvent> | SendAction<TContext, import("./types").AnyEventObject> | ChooseAction<TContext, TEvent> | Action<TContext, TEvent>[] | undefined, actionFunctionMap?: Record<string, ActionFunction<TContext, TEvent> | ActionObject<TContext, TEvent>> | undefined) => ActionObject<TContext, TEvent>[];
11
+ export declare const toActionObjects: <TContext, TEvent extends EventObject>(action?: string | RaiseAction<AnyEventObject> | ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent> | AssignAction<Required<TContext>, TEvent> | SendAction<TContext, TEvent, AnyEventObject> | ChooseAction<TContext, TEvent> | Action<TContext, TEvent>[] | undefined, actionFunctionMap?: Record<string, ActionFunction<TContext, TEvent> | ActionObject<TContext, TEvent>> | undefined) => ActionObject<TContext, TEvent>[];
12
12
  export declare function toActivityDefinition<TContext, TEvent extends EventObject>(action: string | ActivityDefinition<TContext, TEvent>): ActivityDefinition<TContext, TEvent>;
13
13
  /**
14
14
  * Raises an event. This places the event in the internal event queue, so that
@@ -16,7 +16,7 @@ export declare function toActivityDefinition<TContext, TEvent extends EventObjec
16
16
  *
17
17
  * @param eventType The event to raise.
18
18
  */
19
- export declare function raise<TContext, TEvent extends EventObject>(event: Event<TEvent>): RaiseAction<TEvent> | SendAction<TContext, TEvent>;
19
+ export declare function raise<TContext, TEvent extends EventObject>(event: Event<TEvent>): RaiseAction<TEvent> | SendAction<TContext, TEvent, TEvent>;
20
20
  export declare function resolveRaise<TEvent extends EventObject>(action: RaiseAction<TEvent>): RaiseActionObject<TEvent>;
21
21
  /**
22
22
  * Sends an event. This returns an action that will be read by an interpreter to
@@ -28,26 +28,28 @@ export declare function resolveRaise<TEvent extends EventObject>(action: RaiseAc
28
28
  * - `delay` - The number of milliseconds to delay the sending of the event.
29
29
  * - `to` - The target of this event (by default, the machine the event was sent from).
30
30
  */
31
- export declare function send<TContext, TEvent extends EventObject>(event: Event<TEvent> | SendExpr<TContext, TEvent>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent>;
32
- export declare function resolveSend<TContext, TEvent extends EventObject>(action: SendAction<TContext, TEvent>, ctx: TContext, _event: SCXML.Event<TEvent>, delaysMap?: DelayFunctionMap<TContext, TEvent>): SendActionObject<TContext, TEvent>;
31
+ export declare function send<TContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject>(event: Event<TSentEvent> | SendExpr<TContext, TEvent, TSentEvent>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent, TSentEvent>;
32
+ export declare function resolveSend<TContext, TEvent extends EventObject, TSentEvent extends EventObject>(action: SendAction<TContext, TEvent, TSentEvent>, ctx: TContext, _event: SCXML.Event<TEvent>, delaysMap?: DelayFunctionMap<TContext, TEvent>): SendActionObject<TContext, TEvent, TSentEvent>;
33
33
  /**
34
34
  * Sends an event to this machine's parent.
35
35
  *
36
36
  * @param event The event to send to the parent machine.
37
37
  * @param options Options to pass into the send event.
38
38
  */
39
- export declare function sendParent<TContext, TEvent extends EventObject>(event: Event<any> | SendExpr<TContext, TEvent>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent>;
39
+ export declare function sendParent<TContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject>(event: Event<TSentEvent> | SendExpr<TContext, TEvent, TSentEvent>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent, TSentEvent>;
40
40
  /**
41
41
  * Sends an update event to this machine's parent.
42
42
  */
43
- export declare function sendUpdate<TContext, TEvent extends EventObject>(): SendAction<TContext, TEvent>;
43
+ export declare function sendUpdate<TContext, TEvent extends EventObject>(): SendAction<TContext, TEvent, {
44
+ type: ActionTypes.Update;
45
+ }>;
44
46
  /**
45
47
  * Sends an event back to the sender of the original event.
46
48
  *
47
49
  * @param event The event to send back to the sender
48
50
  * @param options Options to pass into the send event
49
51
  */
50
- export declare function respond<TContext, TEvent extends EventObject>(event: Event<TEvent> | SendExpr<TContext, TEvent>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent>;
52
+ export declare function respond<TContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject>(event: Event<TEvent> | SendExpr<TContext, TEvent, TSentEvent>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent, AnyEventObject>;
51
53
  /**
52
54
  *
53
55
  * @param expr The expression function to evaluate which will be logged.
@@ -119,7 +121,7 @@ export declare function pure<TContext, TEvent extends EventObject>(getActions: (
119
121
  * @param target The target service to forward the event to.
120
122
  * @param options Options to pass into the send action creator.
121
123
  */
122
- export declare function forwardTo<TContext, TEvent extends EventObject>(target: Required<SendActionOptions<TContext, TEvent>>['to'], options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent>;
124
+ export declare function forwardTo<TContext, TEvent extends EventObject>(target: Required<SendActionOptions<TContext, TEvent>>['to'], options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent, AnyEventObject>;
123
125
  /**
124
126
  * Escalates an error by sending it as an event to this machine's parent.
125
127
  *
@@ -127,7 +129,7 @@ export declare function forwardTo<TContext, TEvent extends EventObject>(target:
127
129
  * takes in the `context`, `event`, and `meta`, and returns the error data to send.
128
130
  * @param options Options to pass into the send action creator.
129
131
  */
130
- export declare function escalate<TContext, TEvent extends EventObject, TErrorData = any>(errorData: TErrorData | ExprWithMeta<TContext, TEvent, TErrorData>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent>;
132
+ export declare function escalate<TContext, TEvent extends EventObject, TErrorData = any>(errorData: TErrorData | ExprWithMeta<TContext, TEvent, TErrorData>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent, AnyEventObject>;
131
133
  export declare function choose<TContext, TEvent extends EventObject>(conds: Array<ChooseConditon<TContext, TEvent>>): ChooseAction<TContext, TEvent>;
132
134
  export declare function resolveActions<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent>, currentState: State<TContext, TEvent> | undefined, currentContext: TContext, _event: SCXML.Event<TEvent>, actions: Array<ActionObject<TContext, TEvent>>): [Array<ActionObject<TContext, TEvent>>, TContext];
133
135
  //# sourceMappingURL=actions.d.ts.map
package/es/actions.js CHANGED
@@ -450,7 +450,7 @@ function resolveActions(machine, currentState, currentContext, _event, actions)
450
450
  return [];
451
451
  }
452
452
 
453
- var resolved = resolveActions(machine, currentState, updatedContext, _event, toActionObjects(toArray(matchedActions)));
453
+ var resolved = resolveActions(machine, currentState, updatedContext, _event, toActionObjects(toArray(matchedActions), machine.options.actions));
454
454
  updatedContext = resolved[1];
455
455
  return resolved[0];
456
456
  }
@@ -463,7 +463,7 @@ function resolveActions(machine, currentState, currentContext, _event, actions)
463
463
  return [];
464
464
  }
465
465
 
466
- var resolved = resolveActions(machine, currentState, updatedContext, _event, toActionObjects(toArray(matchedActions)));
466
+ var resolved = resolveActions(machine, currentState, updatedContext, _event, toActionObjects(toArray(matchedActions), machine.options.actions));
467
467
  updatedContext = resolved[1];
468
468
  return resolved[0];
469
469
  }
@@ -1,7 +1,7 @@
1
1
  import { StateMachine, Event, EventObject, DefaultContext, StateSchema, StateValue, InterpreterOptions, DoneEvent, Unsubscribable, MachineOptions, SCXML, EventData, Observer, Spawnable, Typestate } from './types';
2
2
  import { State } from './State';
3
3
  import { Actor } from './Actor';
4
- export declare type StateListener<TContext, TEvent extends EventObject, TTypestate extends Typestate<TContext> = any> = (state: State<TContext, TEvent, any, TTypestate>, event: TEvent) => void;
4
+ export declare type StateListener<TContext, TEvent extends EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = any> = (state: State<TContext, TEvent, TStateSchema, TTypestate>, event: TEvent) => void;
5
5
  export declare type ContextListener<TContext = DefaultContext> = (context: TContext, prevContext: TContext | undefined) => void;
6
6
  export declare type EventListener<TEvent extends EventObject = EventObject> = (event: TEvent) => void;
7
7
  export declare type Listener = () => void;
@@ -14,7 +14,7 @@ interface SpawnOptions {
14
14
  autoForward?: boolean;
15
15
  sync?: boolean;
16
16
  }
17
- export declare class Interpreter<TContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = EventObject, TTypestate extends Typestate<TContext> = any> implements Actor<State<TContext, TEvent>, TEvent> {
17
+ export declare class Interpreter<TContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = EventObject, TTypestate extends Typestate<TContext> = any> implements Actor<State<TContext, TEvent, TStateSchema, TTypestate>, TEvent> {
18
18
  machine: StateMachine<TContext, TStateSchema, TEvent, TTypestate>;
19
19
  /**
20
20
  * The default interpreter options:
@@ -63,8 +63,8 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
63
63
  * @param options Interpreter options
64
64
  */
65
65
  constructor(machine: StateMachine<TContext, TStateSchema, TEvent, TTypestate>, options?: Partial<InterpreterOptions>);
66
- get initialState(): State<TContext, TEvent>;
67
- get state(): State<TContext, TEvent, any, TTypestate>;
66
+ get initialState(): State<TContext, TEvent, TStateSchema, TTypestate>;
67
+ get state(): State<TContext, TEvent, TStateSchema, TTypestate>;
68
68
  static interpret: typeof interpret;
69
69
  /**
70
70
  * Executes the actions of the given state, with that state's `context` and `event`.
@@ -72,9 +72,9 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
72
72
  * @param state The state whose actions will be executed
73
73
  * @param actionsConfig The action implementations to use
74
74
  */
75
- execute(state: State<TContext, TEvent>, actionsConfig?: MachineOptions<TContext, TEvent>['actions']): void;
75
+ execute(state: State<TContext, TEvent, TStateSchema, TTypestate>, actionsConfig?: MachineOptions<TContext, TEvent>['actions']): void;
76
76
  private update;
77
- onTransition(listener: StateListener<TContext, TEvent, TTypestate>): this;
77
+ onTransition(listener: StateListener<TContext, TEvent, TStateSchema, TTypestate>): this;
78
78
  subscribe(observer: Observer<State<TContext, TEvent, any, TTypestate>>): Unsubscribable;
79
79
  subscribe(nextListener?: (state: State<TContext, TEvent, any, TTypestate>) => void, errorListener?: (error: any) => void, completeListener?: () => void): Unsubscribable;
80
80
  /**
@@ -110,12 +110,12 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
110
110
  /**
111
111
  * Alias for Interpreter.prototype.start
112
112
  */
113
- init: (initialState?: string | State<TContext, TEvent, any, any> | import("./types").StateValueMap | undefined) => Interpreter<TContext, TStateSchema, TEvent, TTypestate>;
113
+ init: (initialState?: string | State<TContext, TEvent, TStateSchema, TTypestate> | import("./types").StateValueMap | undefined) => Interpreter<TContext, TStateSchema, TEvent, TTypestate>;
114
114
  /**
115
115
  * Starts the interpreter from the given state, or the initial state.
116
116
  * @param initialState The state to start the statechart from
117
117
  */
118
- start(initialState?: State<TContext, TEvent> | StateValue): Interpreter<TContext, TStateSchema, TEvent, TTypestate>;
118
+ start(initialState?: State<TContext, TEvent, TStateSchema, TTypestate> | StateValue): Interpreter<TContext, TStateSchema, TEvent, TTypestate>;
119
119
  /**
120
120
  * Stops the interpreter and unsubscribe all listeners.
121
121
  *
@@ -131,14 +131,14 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
131
131
  *
132
132
  * @param event The event(s) to send
133
133
  */
134
- send: (event: TEvent | TEvent["type"] | Event<TEvent>[] | SCXML.Event<TEvent>, payload?: EventData | undefined) => State<TContext, TEvent, any, any>;
134
+ send: (event: TEvent | TEvent["type"] | Event<TEvent>[] | SCXML.Event<TEvent>, payload?: EventData | undefined) => State<TContext, TEvent, TStateSchema, TTypestate>;
135
135
  private batch;
136
136
  /**
137
137
  * Returns a send function bound to this interpreter instance.
138
138
  *
139
139
  * @param event The event to be sent by the sender.
140
140
  */
141
- sender(event: Event<TEvent>): () => State<TContext, TEvent>;
141
+ sender(event: Event<TEvent>): () => State<TContext, TEvent, TStateSchema, TTypestate>;
142
142
  private sendTo;
143
143
  /**
144
144
  * Returns the next state given the interpreter's current state and the event.
@@ -147,7 +147,7 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
147
147
  *
148
148
  * @param event The event to determine the next state
149
149
  */
150
- nextState(event: Event<TEvent> | SCXML.Event<TEvent>): State<TContext, TEvent>;
150
+ nextState(event: Event<TEvent> | SCXML.Event<TEvent>): State<TContext, TEvent, TStateSchema, TTypestate>;
151
151
  private forward;
152
152
  private defer;
153
153
  private cancel;
package/es/interpreter.js CHANGED
@@ -736,9 +736,13 @@ function () {
736
736
  };
737
737
 
738
738
  Interpreter.prototype.exec = function (action, state, actionFunctionMap) {
739
+ if (actionFunctionMap === void 0) {
740
+ actionFunctionMap = this.machine.options.actions;
741
+ }
742
+
739
743
  var context = state.context,
740
744
  _event = state._event;
741
- var actionOrExec = getActionFunction(action.type, actionFunctionMap) || action.exec;
745
+ var actionOrExec = action.exec || getActionFunction(action.type, actionFunctionMap);
742
746
  var exec = isFunction(actionOrExec) ? actionOrExec : actionOrExec ? actionOrExec.exec : action.exec;
743
747
 
744
748
  if (exec) {
@@ -787,7 +791,7 @@ function () {
787
791
  // (such as in transient states)
788
792
  // don't bother starting the activity.
789
793
 
790
- if (!this.state.activities[activity.type]) {
794
+ if (!this.state.activities[activity.id || activity.type]) {
791
795
  break;
792
796
  } // Invoked services
793
797
 
package/es/types.d.ts CHANGED
@@ -54,7 +54,7 @@ export interface ChooseConditon<TContext, TEvent extends EventObject> {
54
54
  cond?: Condition<TContext, TEvent>;
55
55
  actions: Actions<TContext, TEvent>;
56
56
  }
57
- export declare type Action<TContext, TEvent extends EventObject> = ActionType | ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent> | AssignAction<Required<TContext>, TEvent> | SendAction<TContext, AnyEventObject> | RaiseAction<AnyEventObject> | ChooseAction<TContext, TEvent>;
57
+ export declare type Action<TContext, TEvent extends EventObject> = ActionType | ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent> | AssignAction<Required<TContext>, TEvent> | SendAction<TContext, TEvent, AnyEventObject> | RaiseAction<AnyEventObject> | ChooseAction<TContext, TEvent>;
58
58
  export declare type Actions<TContext, TEvent extends EventObject> = SingleOrArray<Action<TContext, TEvent>>;
59
59
  export declare type StateKey = string | State<any>;
60
60
  export interface StateValueMap {
@@ -541,22 +541,22 @@ export interface LogAction<TContext, TEvent extends EventObject> extends ActionO
541
541
  export interface LogActionObject<TContext, TEvent extends EventObject> extends LogAction<TContext, TEvent> {
542
542
  value: any;
543
543
  }
544
- export interface SendAction<TContext, TEvent extends EventObject> extends ActionObject<TContext, TEvent> {
544
+ export interface SendAction<TContext, TEvent extends EventObject, TSentEvent extends EventObject> extends ActionObject<TContext, TEvent> {
545
545
  to: string | number | Actor | ExprWithMeta<TContext, TEvent, string | number | Actor> | undefined;
546
- event: TEvent | SendExpr<TContext, TEvent>;
546
+ event: TSentEvent | SendExpr<TContext, TEvent, TSentEvent>;
547
547
  delay?: number | string | DelayExpr<TContext, TEvent>;
548
548
  id: string | number;
549
549
  }
550
- export interface SendActionObject<TContext, TEvent extends EventObject> extends SendAction<TContext, TEvent> {
550
+ export interface SendActionObject<TContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject> extends SendAction<TContext, TEvent, TSentEvent> {
551
551
  to: string | number | Actor | undefined;
552
- _event: SCXML.Event<TEvent>;
553
- event: TEvent;
552
+ _event: SCXML.Event<TSentEvent>;
553
+ event: TSentEvent;
554
554
  delay?: number;
555
555
  id: string | number;
556
556
  }
557
557
  export declare type Expr<TContext, TEvent extends EventObject, T> = (context: TContext, event: TEvent) => T;
558
558
  export declare type ExprWithMeta<TContext, TEvent extends EventObject, T> = (context: TContext, event: TEvent, meta: SCXMLEventMeta<TEvent>) => T;
559
- export declare type SendExpr<TContext, TEvent extends EventObject> = ExprWithMeta<TContext, TEvent, TEvent>;
559
+ export declare type SendExpr<TContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject> = ExprWithMeta<TContext, TEvent, TSentEvent>;
560
560
  export declare enum SpecialTargets {
561
561
  Parent = "#_parent",
562
562
  Internal = "#_internal"
@@ -599,6 +599,13 @@ export interface TransitionDefinition<TContext, TEvent extends EventObject> exte
599
599
  actions: Array<ActionObject<TContext, TEvent>>;
600
600
  cond?: Guard<TContext, TEvent>;
601
601
  eventType: TEvent['type'] | NullEvent['type'] | '*';
602
+ toJSON: () => {
603
+ target: string[] | undefined;
604
+ source: string;
605
+ actions: Array<ActionObject<TContext, TEvent>>;
606
+ cond?: Guard<TContext, TEvent>;
607
+ eventType: TEvent['type'] | NullEvent['type'] | '*';
608
+ };
602
609
  }
603
610
  export declare type TransitionDefinitionMap<TContext, TEvent extends EventObject> = {
604
611
  [K in TEvent['type'] | NullEvent['type'] | '*']: Array<TransitionDefinition<TContext, K extends TEvent['type'] ? Extract<TEvent, {
package/lib/Machine.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  import { StateMachine, MachineOptions, DefaultContext, MachineConfig, StateSchema, EventObject, AnyEventObject, Typestate } from './types';
2
2
  export declare function Machine<TContext = any, TEvent extends EventObject = AnyEventObject>(config: MachineConfig<TContext, any, TEvent>, options?: Partial<MachineOptions<TContext, TEvent>>, initialContext?: TContext): StateMachine<TContext, any, TEvent>;
3
3
  export declare function Machine<TContext = DefaultContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = AnyEventObject>(config: MachineConfig<TContext, TStateSchema, TEvent>, options?: Partial<MachineOptions<TContext, TEvent>>, initialContext?: TContext): StateMachine<TContext, TStateSchema, TEvent>;
4
- export declare function createMachine<TContext, TEvent extends EventObject = AnyEventObject, TTypestate extends Typestate<TContext> = any>(config: MachineConfig<TContext, any, TEvent>, options?: Partial<MachineOptions<TContext, TEvent>>): StateMachine<TContext, any, TEvent, TTypestate>;
4
+ export declare function createMachine<TContext, TEvent extends EventObject = AnyEventObject, TTypestate extends Typestate<TContext> = {
5
+ value: any;
6
+ context: TContext;
7
+ }>(config: MachineConfig<TContext, any, TEvent>, options?: Partial<MachineOptions<TContext, TEvent>>): StateMachine<TContext, any, TEvent, TTypestate>;
5
8
  //# sourceMappingURL=Machine.d.ts.map
package/lib/State.d.ts CHANGED
@@ -2,9 +2,12 @@ import { StateValue, ActivityMap, EventObject, HistoryValue, ActionObject, Event
2
2
  import { StateNode } from './StateNode';
3
3
  import { Actor } from './Actor';
4
4
  export declare function stateValuesEqual(a: StateValue | undefined, b: StateValue | undefined): boolean;
5
- export declare function isState<TContext, TEvent extends EventObject>(state: object | string): state is State<TContext, TEvent>;
5
+ export declare function isState<TContext, TEvent extends EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = any>(state: object | string): state is State<TContext, TEvent, TStateSchema, TTypestate>;
6
6
  export declare function bindActionToState<TC, TE extends EventObject>(action: ActionObject<TC, TE>, state: State<TC, TE>): ActionObject<TC, TE>;
7
- export declare class State<TContext, TEvent extends EventObject = EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = any> {
7
+ export declare class State<TContext, TEvent extends EventObject = EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = {
8
+ value: any;
9
+ context: TContext;
10
+ }> {
8
11
  value: StateValue;
9
12
  context: TContext;
10
13
  historyValue?: HistoryValue | undefined;
@@ -86,8 +89,10 @@ export declare class State<TContext, TEvent extends EventObject = EventObject, T
86
89
  * Whether the current state value is a subset of the given parent state value.
87
90
  * @param parentStateValue
88
91
  */
89
- matches<TSV extends TTypestate['value']>(parentStateValue: TSV): this is TTypestate extends {
92
+ matches<TSV extends TTypestate['value']>(parentStateValue: TSV): this is State<(TTypestate extends {
93
+ value: TSV;
94
+ } ? TTypestate : never)['context'], TEvent, TStateSchema, TTypestate> & {
90
95
  value: TSV;
91
- } ? State<TTypestate['context'], TEvent, TStateSchema, TTypestate> : never;
96
+ };
92
97
  }
93
98
  //# sourceMappingURL=State.d.ts.map
@@ -190,7 +190,10 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
190
190
  * @param event The event that was sent at the current state
191
191
  * @param context The current context (extended state) of the current state
192
192
  */
193
- transition(state: string | StateValueMap | State<TContext, TEvent, any, any> | undefined, event: Event<TEvent> | SCXML.Event<TEvent>, context?: TContext): State<TContext, TEvent, TStateSchema, TTypestate>;
193
+ transition(state: string | StateValueMap | State<TContext, TEvent, any, {
194
+ value: any;
195
+ context: TContext;
196
+ }> | undefined, event: Event<TEvent> | SCXML.Event<TEvent>, context?: TContext): State<TContext, TEvent, TStateSchema, TTypestate>;
194
197
  private resolveRaisedTransition;
195
198
  private resolveTransition;
196
199
  /**
package/lib/StateNode.js CHANGED
@@ -753,10 +753,10 @@ var StateNode = /** @class */ (function () {
753
753
  for (var actions_2 = __values(actions), actions_2_1 = actions_2.next(); !actions_2_1.done; actions_2_1 = actions_2.next()) {
754
754
  var action = actions_2_1.value;
755
755
  if (action.type === actionTypes.start) {
756
- activities[action.activity.type] = action;
756
+ activities[action.activity.id || action.activity.type] = action;
757
757
  }
758
758
  else if (action.type === actionTypes.stop) {
759
- activities[action.activity.type] = false;
759
+ activities[action.activity.id || action.activity.type] = false;
760
760
  }
761
761
  }
762
762
  }
@@ -1280,12 +1280,9 @@ var StateNode = /** @class */ (function () {
1280
1280
  : true;
1281
1281
  var guards = this.machine.options.guards;
1282
1282
  var target = this.resolveTarget(normalizedTarget);
1283
- var transition = __assign(__assign({}, transitionConfig), { actions: actions_1.toActionObjects(utils_1.toArray(transitionConfig.actions)), cond: utils_1.toGuard(transitionConfig.cond, guards), target: target, source: this, internal: internal, eventType: transitionConfig.event });
1284
- Object.defineProperty(transition, 'toJSON', {
1285
- value: function () { return (__assign(__assign({}, transition), { target: transition.target
1283
+ var transition = __assign(__assign({}, transitionConfig), { actions: actions_1.toActionObjects(utils_1.toArray(transitionConfig.actions)), cond: utils_1.toGuard(transitionConfig.cond, guards), target: target, source: this, internal: internal, eventType: transitionConfig.event, toJSON: function () { return (__assign(__assign({}, transition), { target: transition.target
1286
1284
  ? transition.target.map(function (t) { return "#" + t.id; })
1287
- : undefined, source: "#{this.id}" })); }
1288
- });
1285
+ : undefined, source: "#{this.id}" })); } });
1289
1286
  return transition;
1290
1287
  };
1291
1288
  StateNode.prototype.formatTransitions = function () {
@@ -1313,6 +1310,9 @@ var StateNode = /** @class */ (function () {
1313
1310
  var doneConfig = this.config.onDone
1314
1311
  ? utils_1.toTransitionConfigArray(String(actions_1.done(this.id)), this.config.onDone)
1315
1312
  : [];
1313
+ if (!environment_1.IS_PRODUCTION) {
1314
+ utils_1.warn(!(this.config.onDone && !this.parent), "Root nodes cannot have an \".onDone\" transition. Please check the config of \"" + this.id + "\".");
1315
+ }
1316
1316
  var invokeConfig = utils_1.flatten(this.invoke.map(function (invokeDef) {
1317
1317
  var settleTransitions = [];
1318
1318
  if (invokeDef.onDone) {
package/lib/actions.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Action, Event, EventObject, SingleOrArray, SendAction, SendActionOptions, CancelAction, ActionObject, ActionType, Assigner, PropertyAssigner, AssignAction, ActionFunction, ActionFunctionMap, ActivityActionObject, ActionTypes, ActivityDefinition, RaiseAction, RaiseActionObject, DoneEvent, ErrorPlatformEvent, DoneEventObject, SendExpr, SendActionObject, PureAction, LogExpr, LogAction, LogActionObject, DelayFunctionMap, SCXML, ExprWithMeta, ChooseConditon, ChooseAction } from './types';
1
+ import { Action, Event, EventObject, SingleOrArray, SendAction, SendActionOptions, CancelAction, ActionObject, ActionType, Assigner, PropertyAssigner, AssignAction, ActionFunction, ActionFunctionMap, ActivityActionObject, ActionTypes, ActivityDefinition, RaiseAction, RaiseActionObject, DoneEvent, ErrorPlatformEvent, DoneEventObject, SendExpr, SendActionObject, PureAction, LogExpr, LogAction, LogActionObject, DelayFunctionMap, SCXML, ExprWithMeta, ChooseConditon, ChooseAction, AnyEventObject } from './types';
2
2
  import * as actionTypes from './actionTypes';
3
3
  import { State } from './State';
4
4
  import { StateNode } from './StateNode';
@@ -8,7 +8,7 @@ export declare const initEvent: SCXML.Event<{
8
8
  }>;
9
9
  export declare function getActionFunction<TContext, TEvent extends EventObject>(actionType: ActionType, actionFunctionMap?: ActionFunctionMap<TContext, TEvent>): ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent> | undefined;
10
10
  export declare function toActionObject<TContext, TEvent extends EventObject>(action: Action<TContext, TEvent>, actionFunctionMap?: ActionFunctionMap<TContext, TEvent>): ActionObject<TContext, TEvent>;
11
- export declare const toActionObjects: <TContext, TEvent extends EventObject>(action?: string | RaiseAction<import("./types").AnyEventObject> | ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent> | AssignAction<Required<TContext>, TEvent> | SendAction<TContext, import("./types").AnyEventObject> | ChooseAction<TContext, TEvent> | Action<TContext, TEvent>[] | undefined, actionFunctionMap?: Record<string, ActionFunction<TContext, TEvent> | ActionObject<TContext, TEvent>> | undefined) => ActionObject<TContext, TEvent>[];
11
+ export declare const toActionObjects: <TContext, TEvent extends EventObject>(action?: string | RaiseAction<AnyEventObject> | ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent> | AssignAction<Required<TContext>, TEvent> | SendAction<TContext, TEvent, AnyEventObject> | ChooseAction<TContext, TEvent> | Action<TContext, TEvent>[] | undefined, actionFunctionMap?: Record<string, ActionFunction<TContext, TEvent> | ActionObject<TContext, TEvent>> | undefined) => ActionObject<TContext, TEvent>[];
12
12
  export declare function toActivityDefinition<TContext, TEvent extends EventObject>(action: string | ActivityDefinition<TContext, TEvent>): ActivityDefinition<TContext, TEvent>;
13
13
  /**
14
14
  * Raises an event. This places the event in the internal event queue, so that
@@ -16,7 +16,7 @@ export declare function toActivityDefinition<TContext, TEvent extends EventObjec
16
16
  *
17
17
  * @param eventType The event to raise.
18
18
  */
19
- export declare function raise<TContext, TEvent extends EventObject>(event: Event<TEvent>): RaiseAction<TEvent> | SendAction<TContext, TEvent>;
19
+ export declare function raise<TContext, TEvent extends EventObject>(event: Event<TEvent>): RaiseAction<TEvent> | SendAction<TContext, TEvent, TEvent>;
20
20
  export declare function resolveRaise<TEvent extends EventObject>(action: RaiseAction<TEvent>): RaiseActionObject<TEvent>;
21
21
  /**
22
22
  * Sends an event. This returns an action that will be read by an interpreter to
@@ -28,26 +28,28 @@ export declare function resolveRaise<TEvent extends EventObject>(action: RaiseAc
28
28
  * - `delay` - The number of milliseconds to delay the sending of the event.
29
29
  * - `to` - The target of this event (by default, the machine the event was sent from).
30
30
  */
31
- export declare function send<TContext, TEvent extends EventObject>(event: Event<TEvent> | SendExpr<TContext, TEvent>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent>;
32
- export declare function resolveSend<TContext, TEvent extends EventObject>(action: SendAction<TContext, TEvent>, ctx: TContext, _event: SCXML.Event<TEvent>, delaysMap?: DelayFunctionMap<TContext, TEvent>): SendActionObject<TContext, TEvent>;
31
+ export declare function send<TContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject>(event: Event<TSentEvent> | SendExpr<TContext, TEvent, TSentEvent>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent, TSentEvent>;
32
+ export declare function resolveSend<TContext, TEvent extends EventObject, TSentEvent extends EventObject>(action: SendAction<TContext, TEvent, TSentEvent>, ctx: TContext, _event: SCXML.Event<TEvent>, delaysMap?: DelayFunctionMap<TContext, TEvent>): SendActionObject<TContext, TEvent, TSentEvent>;
33
33
  /**
34
34
  * Sends an event to this machine's parent.
35
35
  *
36
36
  * @param event The event to send to the parent machine.
37
37
  * @param options Options to pass into the send event.
38
38
  */
39
- export declare function sendParent<TContext, TEvent extends EventObject>(event: Event<any> | SendExpr<TContext, TEvent>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent>;
39
+ export declare function sendParent<TContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject>(event: Event<TSentEvent> | SendExpr<TContext, TEvent, TSentEvent>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent, TSentEvent>;
40
40
  /**
41
41
  * Sends an update event to this machine's parent.
42
42
  */
43
- export declare function sendUpdate<TContext, TEvent extends EventObject>(): SendAction<TContext, TEvent>;
43
+ export declare function sendUpdate<TContext, TEvent extends EventObject>(): SendAction<TContext, TEvent, {
44
+ type: ActionTypes.Update;
45
+ }>;
44
46
  /**
45
47
  * Sends an event back to the sender of the original event.
46
48
  *
47
49
  * @param event The event to send back to the sender
48
50
  * @param options Options to pass into the send event
49
51
  */
50
- export declare function respond<TContext, TEvent extends EventObject>(event: Event<TEvent> | SendExpr<TContext, TEvent>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent>;
52
+ export declare function respond<TContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject>(event: Event<TEvent> | SendExpr<TContext, TEvent, TSentEvent>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent, AnyEventObject>;
51
53
  /**
52
54
  *
53
55
  * @param expr The expression function to evaluate which will be logged.
@@ -119,7 +121,7 @@ export declare function pure<TContext, TEvent extends EventObject>(getActions: (
119
121
  * @param target The target service to forward the event to.
120
122
  * @param options Options to pass into the send action creator.
121
123
  */
122
- export declare function forwardTo<TContext, TEvent extends EventObject>(target: Required<SendActionOptions<TContext, TEvent>>['to'], options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent>;
124
+ export declare function forwardTo<TContext, TEvent extends EventObject>(target: Required<SendActionOptions<TContext, TEvent>>['to'], options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent, AnyEventObject>;
123
125
  /**
124
126
  * Escalates an error by sending it as an event to this machine's parent.
125
127
  *
@@ -127,7 +129,7 @@ export declare function forwardTo<TContext, TEvent extends EventObject>(target:
127
129
  * takes in the `context`, `event`, and `meta`, and returns the error data to send.
128
130
  * @param options Options to pass into the send action creator.
129
131
  */
130
- export declare function escalate<TContext, TEvent extends EventObject, TErrorData = any>(errorData: TErrorData | ExprWithMeta<TContext, TEvent, TErrorData>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent>;
132
+ export declare function escalate<TContext, TEvent extends EventObject, TErrorData = any>(errorData: TErrorData | ExprWithMeta<TContext, TEvent, TErrorData>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent, AnyEventObject>;
131
133
  export declare function choose<TContext, TEvent extends EventObject>(conds: Array<ChooseConditon<TContext, TEvent>>): ChooseAction<TContext, TEvent>;
132
134
  export declare function resolveActions<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent>, currentState: State<TContext, TEvent> | undefined, currentContext: TContext, _event: SCXML.Event<TEvent>, actions: Array<ActionObject<TContext, TEvent>>): [Array<ActionObject<TContext, TEvent>>, TContext];
133
135
  //# sourceMappingURL=actions.d.ts.map
package/lib/actions.js CHANGED
@@ -426,7 +426,7 @@ function resolveActions(machine, currentState, currentContext, _event, actions)
426
426
  if (!matchedActions) {
427
427
  return [];
428
428
  }
429
- var resolved = resolveActions(machine, currentState, updatedContext, _event, exports.toActionObjects(utils_1.toArray(matchedActions)));
429
+ var resolved = resolveActions(machine, currentState, updatedContext, _event, exports.toActionObjects(utils_1.toArray(matchedActions), machine.options.actions));
430
430
  updatedContext = resolved[1];
431
431
  return resolved[0];
432
432
  }
@@ -435,7 +435,7 @@ function resolveActions(machine, currentState, currentContext, _event, actions)
435
435
  if (!matchedActions) {
436
436
  return [];
437
437
  }
438
- var resolved = resolveActions(machine, currentState, updatedContext, _event, exports.toActionObjects(utils_1.toArray(matchedActions)));
438
+ var resolved = resolveActions(machine, currentState, updatedContext, _event, exports.toActionObjects(utils_1.toArray(matchedActions), machine.options.actions));
439
439
  updatedContext = resolved[1];
440
440
  return resolved[0];
441
441
  }
@@ -1,7 +1,7 @@
1
1
  import { StateMachine, Event, EventObject, DefaultContext, StateSchema, StateValue, InterpreterOptions, DoneEvent, Unsubscribable, MachineOptions, SCXML, EventData, Observer, Spawnable, Typestate } from './types';
2
2
  import { State } from './State';
3
3
  import { Actor } from './Actor';
4
- export declare type StateListener<TContext, TEvent extends EventObject, TTypestate extends Typestate<TContext> = any> = (state: State<TContext, TEvent, any, TTypestate>, event: TEvent) => void;
4
+ export declare type StateListener<TContext, TEvent extends EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = any> = (state: State<TContext, TEvent, TStateSchema, TTypestate>, event: TEvent) => void;
5
5
  export declare type ContextListener<TContext = DefaultContext> = (context: TContext, prevContext: TContext | undefined) => void;
6
6
  export declare type EventListener<TEvent extends EventObject = EventObject> = (event: TEvent) => void;
7
7
  export declare type Listener = () => void;
@@ -14,7 +14,7 @@ interface SpawnOptions {
14
14
  autoForward?: boolean;
15
15
  sync?: boolean;
16
16
  }
17
- export declare class Interpreter<TContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = EventObject, TTypestate extends Typestate<TContext> = any> implements Actor<State<TContext, TEvent>, TEvent> {
17
+ export declare class Interpreter<TContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = EventObject, TTypestate extends Typestate<TContext> = any> implements Actor<State<TContext, TEvent, TStateSchema, TTypestate>, TEvent> {
18
18
  machine: StateMachine<TContext, TStateSchema, TEvent, TTypestate>;
19
19
  /**
20
20
  * The default interpreter options:
@@ -63,8 +63,8 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
63
63
  * @param options Interpreter options
64
64
  */
65
65
  constructor(machine: StateMachine<TContext, TStateSchema, TEvent, TTypestate>, options?: Partial<InterpreterOptions>);
66
- get initialState(): State<TContext, TEvent>;
67
- get state(): State<TContext, TEvent, any, TTypestate>;
66
+ get initialState(): State<TContext, TEvent, TStateSchema, TTypestate>;
67
+ get state(): State<TContext, TEvent, TStateSchema, TTypestate>;
68
68
  static interpret: typeof interpret;
69
69
  /**
70
70
  * Executes the actions of the given state, with that state's `context` and `event`.
@@ -72,9 +72,9 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
72
72
  * @param state The state whose actions will be executed
73
73
  * @param actionsConfig The action implementations to use
74
74
  */
75
- execute(state: State<TContext, TEvent>, actionsConfig?: MachineOptions<TContext, TEvent>['actions']): void;
75
+ execute(state: State<TContext, TEvent, TStateSchema, TTypestate>, actionsConfig?: MachineOptions<TContext, TEvent>['actions']): void;
76
76
  private update;
77
- onTransition(listener: StateListener<TContext, TEvent, TTypestate>): this;
77
+ onTransition(listener: StateListener<TContext, TEvent, TStateSchema, TTypestate>): this;
78
78
  subscribe(observer: Observer<State<TContext, TEvent, any, TTypestate>>): Unsubscribable;
79
79
  subscribe(nextListener?: (state: State<TContext, TEvent, any, TTypestate>) => void, errorListener?: (error: any) => void, completeListener?: () => void): Unsubscribable;
80
80
  /**
@@ -110,12 +110,12 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
110
110
  /**
111
111
  * Alias for Interpreter.prototype.start
112
112
  */
113
- init: (initialState?: string | import("./types").StateValueMap | State<TContext, TEvent, any, any> | undefined) => Interpreter<TContext, TStateSchema, TEvent, TTypestate>;
113
+ init: (initialState?: string | import("./types").StateValueMap | State<TContext, TEvent, TStateSchema, TTypestate> | undefined) => Interpreter<TContext, TStateSchema, TEvent, TTypestate>;
114
114
  /**
115
115
  * Starts the interpreter from the given state, or the initial state.
116
116
  * @param initialState The state to start the statechart from
117
117
  */
118
- start(initialState?: State<TContext, TEvent> | StateValue): Interpreter<TContext, TStateSchema, TEvent, TTypestate>;
118
+ start(initialState?: State<TContext, TEvent, TStateSchema, TTypestate> | StateValue): Interpreter<TContext, TStateSchema, TEvent, TTypestate>;
119
119
  /**
120
120
  * Stops the interpreter and unsubscribe all listeners.
121
121
  *
@@ -131,14 +131,14 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
131
131
  *
132
132
  * @param event The event(s) to send
133
133
  */
134
- send: (event: TEvent | TEvent["type"] | Event<TEvent>[] | SCXML.Event<TEvent>, payload?: EventData | undefined) => State<TContext, TEvent, any, any>;
134
+ send: (event: TEvent | TEvent["type"] | Event<TEvent>[] | SCXML.Event<TEvent>, payload?: EventData | undefined) => State<TContext, TEvent, TStateSchema, TTypestate>;
135
135
  private batch;
136
136
  /**
137
137
  * Returns a send function bound to this interpreter instance.
138
138
  *
139
139
  * @param event The event to be sent by the sender.
140
140
  */
141
- sender(event: Event<TEvent>): () => State<TContext, TEvent>;
141
+ sender(event: Event<TEvent>): () => State<TContext, TEvent, TStateSchema, TTypestate>;
142
142
  private sendTo;
143
143
  /**
144
144
  * Returns the next state given the interpreter's current state and the event.
@@ -147,7 +147,7 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
147
147
  *
148
148
  * @param event The event to determine the next state
149
149
  */
150
- nextState(event: Event<TEvent> | SCXML.Event<TEvent>): State<TContext, TEvent>;
150
+ nextState(event: Event<TEvent> | SCXML.Event<TEvent>): State<TContext, TEvent, TStateSchema, TTypestate>;
151
151
  private forward;
152
152
  private defer;
153
153
  private cancel;