xstate 4.25.0 → 4.27.0-pr2674-2021926101023

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 (50) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/dist/xstate.cjs.d.ts +11 -0
  3. package/dist/xstate.cjs.js +16 -0
  4. package/dist/xstate.interpreter.js +1 -1
  5. package/dist/xstate.js +1 -1
  6. package/dist/xstate.web.js +2 -2
  7. package/es/Actor.d.ts +1 -2
  8. package/es/Machine.d.ts +5 -4
  9. package/es/State.d.ts +11 -9
  10. package/es/StateNode.d.ts +21 -15
  11. package/es/StateNode.js +15 -13
  12. package/es/actions.d.ts +4 -5
  13. package/es/behaviors.d.ts +1 -1
  14. package/es/devTools.d.ts +1 -1
  15. package/es/each.d.ts +1 -1
  16. package/es/index.d.ts +1 -0
  17. package/es/interpreter.d.ts +35 -25
  18. package/es/interpreter.js +2 -1
  19. package/es/model.d.ts +2 -2
  20. package/es/model.types.d.ts +8 -9
  21. package/es/scxml.d.ts +2 -2
  22. package/es/stateUtils.d.ts +7 -5
  23. package/es/stateUtils.js +7 -2
  24. package/es/typegenTypes.d.ts +92 -0
  25. package/es/types.d.ts +111 -50
  26. package/es/utils.d.ts +1 -1
  27. package/es/utils.js +1 -1
  28. package/lib/Actor.d.ts +1 -2
  29. package/lib/Machine.d.ts +5 -4
  30. package/lib/State.d.ts +11 -9
  31. package/lib/StateNode.d.ts +21 -15
  32. package/lib/StateNode.js +14 -12
  33. package/lib/actions.d.ts +4 -5
  34. package/lib/behaviors.d.ts +1 -1
  35. package/lib/devTools.d.ts +1 -1
  36. package/lib/each.d.ts +1 -1
  37. package/lib/index.d.ts +1 -0
  38. package/lib/interpreter.d.ts +35 -25
  39. package/lib/interpreter.js +2 -1
  40. package/lib/model.d.ts +2 -2
  41. package/lib/model.types.d.ts +8 -9
  42. package/lib/scxml.d.ts +2 -2
  43. package/lib/stateUtils.d.ts +7 -5
  44. package/lib/stateUtils.js +6 -0
  45. package/lib/typegenTypes.d.ts +92 -0
  46. package/lib/typegenTypes.js +2 -0
  47. package/lib/types.d.ts +111 -50
  48. package/lib/utils.d.ts +1 -1
  49. package/lib/utils.js +1 -1
  50. package/package.json +1 -1
package/es/types.d.ts CHANGED
@@ -1,9 +1,25 @@
1
- import { StateNode } from './StateNode';
2
- import { State } from './State';
3
- import { Interpreter, Clock } from './interpreter';
1
+ import { Clock, Interpreter } from './interpreter';
4
2
  import { Model } from './model.types';
5
- declare type AnyFunction = (...args: any[]) => any;
3
+ import { State } from './State';
4
+ import { StateNode } from './StateNode';
5
+ import { MarkAllImplementationsAsProvided, TypegenDisabled, ResolveTypegenMeta, TypegenConstraint } from './typegenTypes';
6
+ export declare type AnyFunction = (...args: any[]) => any;
6
7
  declare type ReturnTypeOrValue<T> = T extends AnyFunction ? ReturnType<T> : T;
8
+ export declare type IsNever<T> = [T] extends [never] ? true : false;
9
+ export declare type Cast<T extends any, TCastType extends any> = T extends TCastType ? T : TCastType;
10
+ export declare type Compute<A extends any> = {
11
+ [K in keyof A]: A[K];
12
+ } & unknown;
13
+ export declare type Prop<T, K> = K extends keyof T ? T[K] : never;
14
+ export declare type Values<T> = T[keyof T];
15
+ export declare type Merge<M, N> = Omit<M, keyof N> & N;
16
+ export declare type IndexByType<T extends {
17
+ type: string;
18
+ }> = {
19
+ [K in T['type']]: Extract<T, {
20
+ type: K;
21
+ }>;
22
+ };
7
23
  export declare type EventType = string;
8
24
  export declare type ActionType = string;
9
25
  export declare type MetaObject = Record<string, any>;
@@ -44,7 +60,7 @@ export declare type EventData = Record<string, any> & {
44
60
  * The specified string event types or the specified event objects.
45
61
  */
46
62
  export declare type Event<TEvent extends EventObject> = TEvent['type'] | TEvent;
47
- export interface ActionMeta<TContext, TEvent extends EventObject, TAction extends ActionObject<TContext, TEvent> = ActionObject<TContext, TEvent>> extends StateMeta<TContext, TEvent> {
63
+ export interface ActionMeta<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> extends StateMeta<TContext, TEvent> {
48
64
  action: TAction;
49
65
  _event: SCXML.Event<TEvent>;
50
66
  }
@@ -53,8 +69,10 @@ export interface AssignMeta<TContext, TEvent extends EventObject> {
53
69
  action: AssignAction<TContext, TEvent>;
54
70
  _event: SCXML.Event<TEvent>;
55
71
  }
56
- export declare type ActionFunction<TContext, TEvent extends EventObject, TAction extends ActionObject<TContext, TEvent> = ActionObject<TContext, TEvent>> = (context: TContext, event: TEvent, meta: ActionMeta<TContext, TEvent, TAction>) => void;
57
- export interface ChooseConditon<TContext, TEvent extends EventObject> {
72
+ export declare type ActionFunction<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> = {
73
+ bivarianceHack(context: TContext, event: TEvent, meta: ActionMeta<TContext, TEvent, TAction>): void;
74
+ }['bivarianceHack'];
75
+ export interface ChooseCondition<TContext, TEvent extends EventObject> {
58
76
  cond?: Condition<TContext, TEvent>;
59
77
  actions: Actions<TContext, TEvent>;
60
78
  }
@@ -116,6 +134,7 @@ export interface TransitionConfig<TContext, TEvent extends EventObject> {
116
134
  internal?: boolean;
117
135
  target?: TransitionTarget<TContext, TEvent>;
118
136
  meta?: Record<string, any>;
137
+ description?: string;
119
138
  }
120
139
  export interface TargetTransitionConfig<TContext, TEvent extends EventObject> extends TransitionConfig<TContext, TEvent> {
121
140
  target: TransitionTarget<TContext, TEvent>;
@@ -157,6 +176,7 @@ export declare type InvokeCallback<TEvent extends EventObject = AnyEventObject,
157
176
  export interface InvokeMeta {
158
177
  data: any;
159
178
  src: InvokeSourceDefinition;
179
+ meta?: MetaObject;
160
180
  }
161
181
  /**
162
182
  * Returns either a Promises or a callback handler (for streams of events) given the
@@ -196,6 +216,7 @@ export interface InvokeDefinition<TContext, TEvent extends EventObject> extends
196
216
  * Data should be mapped to match the child machine's context shape.
197
217
  */
198
218
  data?: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>;
219
+ meta?: MetaObject;
199
220
  }
200
221
  export interface Delay {
201
222
  id: string;
@@ -278,6 +299,10 @@ export interface InvokeConfig<TContext, TEvent extends EventObject> {
278
299
  * The transition to take upon the invoked child machine sending an error event.
279
300
  */
280
301
  onError?: string | SingleOrArray<TransitionConfig<TContext, DoneInvokeEvent<any>>>;
302
+ /**
303
+ * Meta data related to this invocation
304
+ */
305
+ meta?: MetaObject;
281
306
  }
282
307
  export interface StateNodeConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> {
283
308
  /**
@@ -406,6 +431,10 @@ export interface StateNodeConfig<TContext, TStateSchema extends StateSchema, TEv
406
431
  * @default false
407
432
  */
408
433
  preserveActionOrder?: boolean;
434
+ /**
435
+ * A text description of the state node
436
+ */
437
+ description?: string;
409
438
  }
410
439
  export interface StateNodeDefinition<TContext, TStateSchema extends StateSchema, TEvent extends EventObject> {
411
440
  id: string;
@@ -428,6 +457,8 @@ export interface StateNodeDefinition<TContext, TStateSchema extends StateSchema,
428
457
  order: number;
429
458
  data?: FinalStateNodeConfig<TContext, TEvent>['data'];
430
459
  invoke: Array<InvokeDefinition<TContext, TEvent>>;
460
+ description?: string;
461
+ tags: string[];
431
462
  }
432
463
  export declare type AnyStateNodeDefinition = StateNodeDefinition<any, any, any>;
433
464
  export interface AtomicStateNodeConfig<TContext, TEvent extends EventObject> extends StateNodeConfig<TContext, StateSchema, TEvent> {
@@ -449,7 +480,7 @@ export interface FinalStateNodeConfig<TContext, TEvent extends EventObject> exte
449
480
  data?: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>;
450
481
  }
451
482
  export declare type SimpleOrStateNodeConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject> = AtomicStateNodeConfig<TContext, TEvent> | StateNodeConfig<TContext, TStateSchema, TEvent>;
452
- export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAction extends ActionObject<TContext, TEvent> = ActionObject<TContext, TEvent>> = {
483
+ export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> = {
453
484
  [K in TAction['type']]?: ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent, TAction extends {
454
485
  type: K;
455
486
  } ? TAction : never>;
@@ -457,25 +488,44 @@ export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAct
457
488
  export declare type DelayFunctionMap<TContext, TEvent extends EventObject> = Record<string, DelayConfig<TContext, TEvent>>;
458
489
  export declare type ServiceConfig<TContext, TEvent extends EventObject = AnyEventObject> = string | StateMachine<any, any, any> | InvokeCreator<TContext, TEvent>;
459
490
  export declare type DelayConfig<TContext, TEvent extends EventObject> = number | DelayExpr<TContext, TEvent>;
460
- export interface MachineOptions<TContext, TEvent extends EventObject, TAction extends ActionObject<TContext, TEvent> = ActionObject<TContext, TEvent>> {
461
- guards: Record<string, ConditionPredicate<TContext, TEvent>>;
462
- actions: ActionFunctionMap<TContext, TEvent, TAction>;
491
+ declare type MachineOptionsActions<TContext, TResolvedTypesMeta, TEventsCausingActions = Prop<TResolvedTypesMeta, 'eventsCausingActions'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TIndexedActions = Prop<TResolvedTypesMeta, 'indexedActions'>> = {
492
+ [K in keyof TEventsCausingActions]?: ActionObject<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>> | ActionFunction<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>, Cast<Prop<TIndexedActions, K>, BaseActionObject>>;
493
+ };
494
+ declare type MachineOptionsDelays<TContext, TResolvedTypesMeta, TEventsCausingDelays = Prop<TResolvedTypesMeta, 'eventsCausingDelays'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>> = {
495
+ [K in keyof TEventsCausingDelays]?: DelayConfig<TContext, Cast<Prop<TIndexedEvents, TEventsCausingDelays[K]>, EventObject>>;
496
+ };
497
+ declare type MachineOptionsGuards<TContext, TResolvedTypesMeta, TEventsCausingGuards = Prop<TResolvedTypesMeta, 'eventsCausingGuards'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>> = {
498
+ [K in keyof TEventsCausingGuards]?: ConditionPredicate<TContext, Cast<Prop<TIndexedEvents, TEventsCausingGuards[K]>, EventObject>>;
499
+ };
500
+ declare type MachineOptionsServices<TContext, TResolvedTypesMeta, TEventsCausingServices = Prop<TResolvedTypesMeta, 'eventsCausingServices'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TInvokeSrcNameMap = Prop<TResolvedTypesMeta, 'invokeSrcNameMap'>> = {
501
+ [K in keyof TEventsCausingServices]?: StateMachine<any, any, any> | InvokeCreator<TContext, Cast<Prop<TIndexedEvents, TEventsCausingServices[K]>, EventObject>, Prop<Prop<TIndexedEvents, Prop<TInvokeSrcNameMap, K>>, 'data'>>;
502
+ };
503
+ declare type MakeKeysRequired<T extends string> = {
504
+ [K in T]: unknown;
505
+ };
506
+ declare type MaybeMakeMissingImplementationsRequired<TImplementationType, TMissingImplementationsForType, TRequireMissingImplementations> = TRequireMissingImplementations extends true ? IsNever<TMissingImplementationsForType> extends true ? {} : {
507
+ [K in Cast<TImplementationType, string>]: MakeKeysRequired<Cast<TMissingImplementationsForType, string>>;
508
+ } : {};
509
+ declare type GenerateActionsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'actions', Prop<TMissingImplementations, 'actions'>, TRequireMissingImplementations> & {
510
+ actions?: MachineOptionsActions<TContext, TResolvedTypesMeta>;
511
+ };
512
+ declare type GenerateDelaysConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'delays', Prop<TMissingImplementations, 'delays'>, TRequireMissingImplementations> & {
513
+ delays?: MachineOptionsDelays<TContext, TResolvedTypesMeta>;
514
+ };
515
+ declare type GenerateGuardsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'guards', Prop<TMissingImplementations, 'guards'>, TRequireMissingImplementations> & {
516
+ guards?: MachineOptionsGuards<TContext, TResolvedTypesMeta>;
517
+ };
518
+ declare type GenerateServicesConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'services', Prop<TMissingImplementations, 'services'>, TRequireMissingImplementations> & {
519
+ services?: MachineOptionsServices<TContext, TResolvedTypesMeta>;
520
+ };
521
+ export declare type InternalMachineOptions<TContext, TEvent extends EventObject, TResolvedTypesMeta, TRequireMissingImplementations extends boolean = false, TMissingImplementations = Prop<TResolvedTypesMeta, 'missingImplementations'>> = GenerateActionsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateDelaysConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateGuardsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateServicesConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & {
463
522
  /**
464
523
  * @deprecated Use `services` instead.
465
524
  */
466
- activities: Record<string, ActivityConfig<TContext, TEvent>>;
467
- services: Record<string, ServiceConfig<TContext, TEvent>>;
468
- delays: DelayFunctionMap<TContext, TEvent>;
469
- /**
470
- * @private
471
- */
472
- _parent?: StateNode<TContext, any, TEvent, any>;
473
- /**
474
- * @private
475
- */
476
- _key?: string;
477
- }
478
- export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = ActionObject<TContext, TEvent>> extends StateNodeConfig<TContext, TStateSchema, TEvent, TAction> {
525
+ activities?: Record<string, ActivityConfig<TContext, TEvent>>;
526
+ };
527
+ export declare type MachineOptions<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TTypesMeta extends TypegenConstraint = TypegenDisabled> = InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TTypesMeta, TEvent, TAction>>;
528
+ export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TTypesMeta = TypegenDisabled> extends StateNodeConfig<TContext, TStateSchema, TEvent, TAction> {
479
529
  /**
480
530
  * The initial context (extended state)
481
531
  */
@@ -485,6 +535,7 @@ export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEven
485
535
  */
486
536
  version?: string;
487
537
  schema?: MachineSchema<TContext, TEvent>;
538
+ tsTypes?: TTypesMeta | true;
488
539
  }
489
540
  export interface MachineSchema<TContext, TEvent extends EventObject> {
490
541
  context?: TContext;
@@ -519,13 +570,19 @@ export interface HistoryStateNode<TContext> extends StateNode<TContext> {
519
570
  export interface StateMachine<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TTypestate extends Typestate<TContext> = {
520
571
  value: any;
521
572
  context: TContext;
522
- }, _TAction extends ActionObject<TContext, TEvent> = ActionObject<TContext, TEvent>> extends StateNode<TContext, TStateSchema, TEvent, TTypestate> {
573
+ }, TAction extends BaseActionObject = BaseActionObject, TResolvedTypesMeta = TypegenDisabled> extends StateNode<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> {
523
574
  id: string;
524
- states: StateNode<TContext, TStateSchema, TEvent>['states'];
525
- withConfig(options: Partial<MachineOptions<TContext, TEvent>>, context?: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate>;
526
- withContext(context: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate>;
527
- }
528
- export declare type StateFrom<T extends StateMachine<any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any>)> = T extends StateMachine<any, any, any> ? ReturnType<T['transition']> : T extends (...args: any[]) => StateMachine<any, any, any> ? ReturnType<ReturnType<T>['transition']> : never;
575
+ states: StateNode<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta>['states'];
576
+ withConfig(options: InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, true>, context?: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate, TAction, MarkAllImplementationsAsProvided<TResolvedTypesMeta>>;
577
+ withContext(context: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate, any, TResolvedTypesMeta>;
578
+ __TContext: TContext;
579
+ __TStateSchema: TStateSchema;
580
+ __TEvent: TEvent;
581
+ __TTypestate: TTypestate;
582
+ __TAction: TAction;
583
+ __TResolvedTypesMeta: TResolvedTypesMeta;
584
+ }
585
+ export declare type StateFrom<T extends StateMachine<any, any, any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any, any, any>)> = T extends StateMachine<any, any, any, any, any, any> ? ReturnType<T['transition']> : T extends (...args: any[]) => StateMachine<any, any, any, any, any, any> ? ReturnType<ReturnType<T>['transition']> : never;
529
586
  export interface ActionMap<TContext, TEvent extends EventObject> {
530
587
  onEntry: Array<Action<TContext, TEvent>>;
531
588
  actions: Array<Action<TContext, TEvent>>;
@@ -544,13 +601,13 @@ export interface ActivityMap {
544
601
  }
545
602
  export interface StateTransition<TContext, TEvent extends EventObject> {
546
603
  transitions: Array<TransitionDefinition<TContext, TEvent>>;
547
- configuration: Array<StateNode<TContext, any, TEvent, any>>;
548
- entrySet: Array<StateNode<TContext, any, TEvent, any>>;
549
- exitSet: Array<StateNode<TContext, any, TEvent, any>>;
604
+ configuration: Array<StateNode<TContext, any, TEvent, any, any>>;
605
+ entrySet: Array<StateNode<TContext, any, TEvent, any, any>>;
606
+ exitSet: Array<StateNode<TContext, any, TEvent, any, any>>;
550
607
  /**
551
608
  * The source state that preceded the transition.
552
609
  */
553
- source: State<TContext, any, any, any> | undefined;
610
+ source: State<TContext, any, any, any, any> | undefined;
554
611
  actions: Array<ActionObject<TContext, TEvent>>;
555
612
  }
556
613
  export interface TransitionData<TContext, TEvent extends EventObject> {
@@ -693,7 +750,7 @@ export interface PureAction<TContext, TEvent extends EventObject> extends Action
693
750
  }
694
751
  export interface ChooseAction<TContext, TEvent extends EventObject> extends ActionObject<TContext, TEvent> {
695
752
  type: ActionTypes.Choose;
696
- conds: Array<ChooseConditon<TContext, TEvent>>;
753
+ conds: Array<ChooseCondition<TContext, TEvent>>;
697
754
  }
698
755
  export interface TransitionDefinition<TContext, TEvent extends EventObject> extends TransitionConfig<TContext, TEvent> {
699
756
  target: Array<StateNode<TContext, any, TEvent>> | undefined;
@@ -771,7 +828,7 @@ export interface SCXMLEventMeta<TEvent extends EventObject> {
771
828
  _event: SCXML.Event<TEvent>;
772
829
  }
773
830
  export interface StateMeta<TContext, TEvent extends EventObject> {
774
- state: State<TContext, TEvent, any, any>;
831
+ state: State<TContext, TEvent, any, any, any>;
775
832
  _event: SCXML.Event<TEvent>;
776
833
  }
777
834
  export interface Typestate<TContext> {
@@ -790,7 +847,7 @@ export interface StateConfig<TContext, TEvent extends EventObject> {
790
847
  _event: SCXML.Event<TEvent>;
791
848
  _sessionid: string | null;
792
849
  historyValue?: HistoryValue | undefined;
793
- history?: State<TContext, TEvent>;
850
+ history?: State<TContext, TEvent, any, any, any>;
794
851
  actions?: Array<ActionObject<TContext, TEvent>>;
795
852
  /**
796
853
  * @deprecated
@@ -803,7 +860,7 @@ export interface StateConfig<TContext, TEvent extends EventObject> {
803
860
  children: Record<string, ActorRef<any>>;
804
861
  done?: boolean;
805
862
  tags?: Set<string>;
806
- machine?: StateMachine<TContext, any, TEvent, any>;
863
+ machine?: StateMachine<TContext, any, TEvent, any, any, any>;
807
864
  }
808
865
  export interface StateSchema<TC = any> {
809
866
  meta?: any;
@@ -816,9 +873,9 @@ export interface InterpreterOptions {
816
873
  /**
817
874
  * Whether state actions should be executed immediately upon transition. Defaults to `true`.
818
875
  */
819
- execute: boolean;
820
- clock: Clock;
821
- logger: (...args: any[]) => void;
876
+ execute?: boolean;
877
+ clock?: Clock;
878
+ logger?: (...args: any[]) => void;
822
879
  parent?: AnyInterpreter;
823
880
  /**
824
881
  * If `true`, defers processing of sent events until the service
@@ -827,7 +884,7 @@ export interface InterpreterOptions {
827
884
  *
828
885
  * Default: `true`
829
886
  */
830
- deferEvents: boolean;
887
+ deferEvents?: boolean;
831
888
  /**
832
889
  * The custom `id` for referencing this service.
833
890
  */
@@ -837,8 +894,7 @@ export interface InterpreterOptions {
837
894
  *
838
895
  * Default: `false`
839
896
  */
840
- devTools: boolean | object;
841
- [option: string]: any;
897
+ devTools?: boolean | object;
842
898
  }
843
899
  export declare namespace SCXML {
844
900
  interface Event<TEvent extends EventObject> {
@@ -932,15 +988,17 @@ export interface ActorRef<TEvent extends EventObject, TEmitted = any> extends Su
932
988
  * @deprecated Use `ActorRef` instead.
933
989
  */
934
990
  export declare type SpawnedActorRef<TEvent extends EventObject, TEmitted = any> = ActorRef<TEvent, TEmitted>;
935
- export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventObject, TTypestate extends Typestate<TContext>> = ActorRef<TEvent, State<TContext, TEvent, any, TTypestate>> & {
991
+ export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventObject, TTypestate extends Typestate<TContext>, TResolvedTypesMeta = TypegenDisabled> = ActorRef<TEvent, State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>> & {
936
992
  /**
937
993
  * @deprecated Use `.getSnapshot()` instead.
938
994
  */
939
- state: State<TContext, TEvent, any, TTypestate>;
995
+ state: State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>;
940
996
  };
941
- export declare type ActorRefFrom<T> = T extends StateMachine<infer TContext, any, infer TEvent, infer TTypestate> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate> : T extends (...args: any[]) => StateMachine<infer TContext, any, infer TEvent, infer TTypestate> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate> : T extends Promise<infer U> ? ActorRef<never, U> : T extends Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : T extends (...args: any[]) => Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : never;
942
- export declare type AnyInterpreter = Interpreter<any, any, any, any>;
943
- export declare type InterpreterFrom<T extends StateMachine<any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any>)> = T extends StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate> : T extends (...args: any[]) => StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate> : never;
997
+ export declare type ActorRefFrom<T> = T extends StateMachine<infer TContext, any, infer TEvent, infer TTypestate> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate> : T extends (...args: any[]) => StateMachine<infer TContext, any, infer TEvent, infer TTypestate, any, infer TResolvedTypesMeta> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate, TResolvedTypesMeta> : T extends Promise<infer U> ? ActorRef<never, U> : T extends Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : T extends (...args: any[]) => Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : never;
998
+ export declare type AnyInterpreter = Interpreter<any, any, any, any, any>;
999
+ export declare type InterpreterFrom<T extends StateMachine<any, any, any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any, any, any>)> = T extends StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : T extends (...args: any[]) => StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : never;
1000
+ export declare type MachineOptionsFrom<T extends StateMachine<any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any>), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, any, infer TEvent, any, any, infer TResolvedTypesMeta> ? InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, TRequireMissingImplementations> : never;
1001
+ export declare type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, any, any, any, any, infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
944
1002
  export interface ActorContext<TEvent extends EventObject, TEmitted> {
945
1003
  parent?: ActorRef<any, any>;
946
1004
  self: ActorRef<TEvent, TEmitted>;
@@ -953,7 +1011,10 @@ export interface Behavior<TEvent extends EventObject, TEmitted = any> {
953
1011
  start?: (actorCtx: ActorContext<TEvent, TEmitted>) => TEmitted;
954
1012
  }
955
1013
  export declare type EmittedFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends ActorRef<infer _, infer TEmitted> ? TEmitted : R extends Behavior<infer _, infer TEmitted> ? TEmitted : R extends ActorContext<infer _, infer TEmitted> ? TEmitted : never : never;
956
- export declare type EventFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer __, infer TEvent, infer ____> ? TEvent : R extends Model<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends State<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends Interpreter<infer _, infer __, infer TEvent, infer ____> ? TEvent : never : never;
1014
+ declare type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer __, infer TEvent, infer ____> ? TEvent : R extends Model<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends State<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends Interpreter<infer _, infer __, infer TEvent, infer ____> ? TEvent : never : never;
1015
+ export declare type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : Extract<TEvent, {
1016
+ type: K;
1017
+ }>;
957
1018
  export declare type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _, infer __, infer ___> ? TContext : R extends Model<infer TContext, infer _, infer __, infer ___> ? TContext : R extends State<infer TContext, infer _, infer __, infer ___> ? TContext : R extends Interpreter<infer TContext, infer _, infer __, infer ___> ? TContext : never : never;
958
1019
  export {};
959
1020
  //# sourceMappingURL=types.d.ts.map
package/es/utils.d.ts CHANGED
@@ -63,7 +63,7 @@ export declare function toTransitionConfigArray<TContext, TEvent extends EventOb
63
63
  }>;
64
64
  export declare function normalizeTarget<TContext, TEvent extends EventObject>(target: SingleOrArray<string | StateNode<TContext, any, TEvent>> | undefined): Array<string | StateNode<TContext, any, TEvent>> | undefined;
65
65
  export declare function reportUnhandledExceptionOnInvocation(originalError: any, currentError: any, id: string): void;
66
- export declare function evaluateGuard<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent, any>, guard: Guard<TContext, TEvent>, context: TContext, _event: SCXML.Event<TEvent>, state: State<TContext, TEvent>): boolean;
66
+ export declare function evaluateGuard<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent, any, any>, guard: Guard<TContext, TEvent>, context: TContext, _event: SCXML.Event<TEvent>, state: State<TContext, TEvent>): boolean;
67
67
  export declare function toInvokeSource(src: string | InvokeSourceDefinition): InvokeSourceDefinition;
68
68
  export declare function toObserver<T>(nextHandler: Observer<T> | ((value: T) => void), errorHandler?: (error: any) => void, completionHandler?: () => void): Observer<T>;
69
69
  //# sourceMappingURL=utils.d.ts.map
package/es/utils.js CHANGED
@@ -548,7 +548,7 @@ function evaluateGuard(machine, guard, context, _event, state) {
548
548
  return ((guards === null || guards === void 0 ? void 0 : guards[guard.name]) || guard.predicate)(context, _event.data, guardMeta);
549
549
  }
550
550
 
551
- var condFn = guards[guard.type];
551
+ var condFn = guards === null || guards === void 0 ? void 0 : guards[guard.type];
552
552
 
553
553
  if (!condFn) {
554
554
  throw new Error("Guard '" + guard.type + "' is not implemented on machine '" + machine.id + "'.");
package/lib/Actor.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { EventObject, Subscribable, InvokeDefinition, AnyEventObject, StateMachine, Spawnable, SCXML } from './types';
2
- import { ActorRef, BaseActorRef } from '.';
1
+ import { EventObject, Subscribable, InvokeDefinition, AnyEventObject, StateMachine, Spawnable, SCXML, ActorRef, BaseActorRef } from './types';
3
2
  export interface Actor<TContext = any, TEvent extends EventObject = AnyEventObject> extends Subscribable<TContext> {
4
3
  id: string;
5
4
  send: (event: TEvent) => any;
package/lib/Machine.d.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  import { Model } from './model.types';
2
- import { AnyEventObject, DefaultContext, EventObject, MachineConfig, MachineOptions, StateMachine, StateSchema, Typestate } from './types';
2
+ import { AnyEventObject, BaseActionObject, DefaultContext, EventObject, MachineConfig, MachineOptions, InternalMachineOptions, StateMachine, StateSchema, Typestate } from './types';
3
+ import { TypegenConstraint, TypegenDisabled, ResolveTypegenMeta } from './typegenTypes';
3
4
  /**
4
5
  * @deprecated Use `createMachine(...)` instead.
5
6
  */
6
- 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>;
7
- 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>;
7
+ export declare function Machine<TContext = any, TEvent extends EventObject = AnyEventObject>(config: MachineConfig<TContext, any, TEvent>, options?: MachineOptions<TContext, TEvent>, initialContext?: TContext): StateMachine<TContext, any, TEvent>;
8
+ export declare function Machine<TContext = DefaultContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = AnyEventObject>(config: MachineConfig<TContext, TStateSchema, TEvent>, options?: MachineOptions<TContext, TEvent>, initialContext?: TContext): StateMachine<TContext, TStateSchema, TEvent>;
8
9
  export declare function createMachine<TContext, TEvent extends EventObject = AnyEventObject, TTypestate extends Typestate<TContext> = {
9
10
  value: any;
10
11
  context: TContext;
11
- }>(config: TContext extends Model<any, any, any, any> ? 'Model type no longer supported as generic type. Please use `model.createMachine(...)` instead.' : MachineConfig<TContext, any, TEvent>, options?: Partial<MachineOptions<TContext, TEvent>>): StateMachine<TContext, any, TEvent, TTypestate>;
12
+ }, TTypesMeta extends TypegenConstraint = TypegenDisabled>(config: TContext extends Model<any, any, any, any> ? 'Model type no longer supported as generic type. Please use `model.createMachine(...)` instead.' : MachineConfig<TContext, any, TEvent, BaseActionObject, TTypesMeta>, options?: InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TTypesMeta, TEvent, BaseActionObject>>): StateMachine<TContext, any, TEvent, any, BaseActionObject, ResolveTypegenMeta<TTypesMeta, TEvent, BaseActionObject>>;
12
13
  //# sourceMappingURL=Machine.d.ts.map
package/lib/State.d.ts CHANGED
@@ -1,19 +1,21 @@
1
1
  import { StateValue, ActivityMap, EventObject, HistoryValue, ActionObject, EventType, StateConfig, SCXML, StateSchema, TransitionDefinition, Typestate, ActorRef, StateMachine, SimpleEventsOf } from './types';
2
2
  import { StateNode } from './StateNode';
3
+ import { TypegenDisabled, TypegenEnabled } from './typegenTypes';
4
+ import { BaseActionObject, Prop } from './types';
3
5
  export declare function stateValuesEqual(a: StateValue | undefined, b: StateValue | undefined): boolean;
4
6
  export declare function isState<TContext, TEvent extends EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = {
5
7
  value: any;
6
8
  context: TContext;
7
- }>(state: object | string): state is State<TContext, TEvent, TStateSchema, TTypestate>;
8
- export declare function bindActionToState<TC, TE extends EventObject>(action: ActionObject<TC, TE>, state: State<TC, TE, any, any>): ActionObject<TC, TE>;
9
+ }, TResolvedTypesMeta = TypegenDisabled>(state: object | string): state is State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
10
+ export declare function bindActionToState<TC, TE extends EventObject>(action: ActionObject<TC, TE>, state: State<TC, TE, any, any, any>): ActionObject<TC, TE>;
9
11
  export declare class State<TContext, TEvent extends EventObject = EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = {
10
12
  value: any;
11
13
  context: TContext;
12
- }> {
14
+ }, TResolvedTypesMeta = TypegenDisabled> {
13
15
  value: StateValue;
14
16
  context: TContext;
15
17
  historyValue?: HistoryValue | undefined;
16
- history?: State<TContext, TEvent, TStateSchema, TTypestate>;
18
+ history?: State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
17
19
  actions: Array<ActionObject<TContext, TEvent>>;
18
20
  activities: ActivityMap;
19
21
  meta: any;
@@ -51,13 +53,13 @@ export declare class State<TContext, TEvent extends EventObject = EventObject, T
51
53
  */
52
54
  children: Record<string, ActorRef<any>>;
53
55
  tags: Set<string>;
54
- machine: StateMachine<TContext, any, TEvent, TTypestate> | undefined;
56
+ machine: StateMachine<TContext, any, TEvent, TTypestate, BaseActionObject, TResolvedTypesMeta> | undefined;
55
57
  /**
56
58
  * Creates a new State instance for the given `stateValue` and `context`.
57
59
  * @param stateValue
58
60
  * @param context
59
61
  */
60
- static from<TC, TE extends EventObject = EventObject>(stateValue: State<TC, TE, any, any> | StateValue, context?: TC | undefined): State<TC, TE, any, any>;
62
+ static from<TC, TE extends EventObject = EventObject>(stateValue: State<TC, TE, any, any, any> | StateValue, context?: TC | undefined): State<TC, TE, any, any, any>;
61
63
  /**
62
64
  * Creates a new State instance for the given `config`.
63
65
  * @param config The state config
@@ -95,17 +97,17 @@ export declare class State<TContext, TEvent extends EventObject = EventObject, T
95
97
  * Whether the current state value is a subset of the given parent state value.
96
98
  * @param parentStateValue
97
99
  */
98
- matches<TSV extends TTypestate['value']>(parentStateValue: TSV): this is State<(TTypestate extends any ? {
100
+ matches<TSV extends TTypestate['value']>(parentStateValue: TResolvedTypesMeta extends TypegenEnabled ? Prop<TResolvedTypesMeta, 'matchesStates'> : TSV): this is State<(TTypestate extends any ? {
99
101
  value: TSV;
100
102
  context: any;
101
- } extends TTypestate ? TTypestate : never : never)['context'], TEvent, TStateSchema, TTypestate> & {
103
+ } extends TTypestate ? TTypestate : never : never)['context'], TEvent, TStateSchema, TTypestate, TResolvedTypesMeta> & {
102
104
  value: TSV;
103
105
  };
104
106
  /**
105
107
  * Whether the current state configuration has a state node with the specified `tag`.
106
108
  * @param tag
107
109
  */
108
- hasTag(tag: string): boolean;
110
+ hasTag(tag: TResolvedTypesMeta extends TypegenEnabled ? Prop<TResolvedTypesMeta, 'tags'> : string): boolean;
109
111
  /**
110
112
  * Determines whether sending the `event` will cause a transition.
111
113
  * @param event The event to test
@@ -1,9 +1,10 @@
1
- import { Event, StateValue, MachineOptions, EventObject, HistoryValue, StateNodeDefinition, TransitionDefinition, DelayedTransitionDefinition, ActivityDefinition, StateNodeConfig, StateSchema, StateNodesConfig, InvokeDefinition, ActionObject, Mapper, PropertyMapper, SCXML, Typestate, TransitionDefinitionMap, MachineSchema } from './types';
1
+ import { Event, StateValue, MachineOptions, EventObject, HistoryValue, StateNodeDefinition, TransitionDefinition, DelayedTransitionDefinition, ActivityDefinition, StateNodeConfig, StateSchema, StateNodesConfig, InvokeDefinition, ActionObject, Mapper, PropertyMapper, SCXML, Typestate, TransitionDefinitionMap, MachineSchema, InternalMachineOptions } from './types';
2
2
  import { State } from './State';
3
+ import { TypegenDisabled } from './typegenTypes';
3
4
  declare class StateNode<TContext = any, TStateSchema extends StateSchema = any, TEvent extends EventObject = EventObject, TTypestate extends Typestate<TContext> = {
4
5
  value: any;
5
6
  context: TContext;
6
- }> {
7
+ }, TResolvedTypesMeta = TypegenDisabled> {
7
8
  /**
8
9
  * The raw config used to create the machine.
9
10
  */
@@ -111,6 +112,7 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
111
112
  options: MachineOptions<TContext, TEvent>;
112
113
  schema: MachineSchema<TContext, TEvent>;
113
114
  __xstatenode: true;
115
+ description?: string;
114
116
  private __cache;
115
117
  private idMap;
116
118
  tags: string[];
@@ -118,11 +120,15 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
118
120
  /**
119
121
  * The raw config used to create the machine.
120
122
  */
121
- config: StateNodeConfig<TContext, TStateSchema, TEvent>, options?: Partial<MachineOptions<TContext, TEvent>>,
123
+ config: StateNodeConfig<TContext, TStateSchema, TEvent>, options?: MachineOptions<TContext, TEvent>,
122
124
  /**
123
125
  * The initial extended state
124
126
  */
125
- _context?: Readonly<TContext> | (() => Readonly<TContext>));
127
+ _context?: Readonly<TContext> | (() => Readonly<TContext>), // TODO: this is unsafe, but we're removing it in v5 anyway
128
+ _stateInfo?: {
129
+ parent: StateNode<any, any, any, any, any>;
130
+ key: string;
131
+ });
126
132
  private _init;
127
133
  /**
128
134
  * Clones this state machine with custom options and context.
@@ -130,7 +136,7 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
130
136
  * @param options Options (actions, guards, activities, services) to recursively merge with the existing options.
131
137
  * @param context Custom context (will override predefined context)
132
138
  */
133
- withConfig(options: Partial<MachineOptions<TContext, TEvent>>, context?: TContext | (() => TContext)): StateNode<TContext, TStateSchema, TEvent, TTypestate>;
139
+ withConfig(options: InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, true>, context?: TContext | (() => TContext)): StateNode<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta>;
134
140
  /**
135
141
  * Clones this state machine with custom context.
136
142
  *
@@ -162,7 +168,7 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
162
168
  *
163
169
  * @param state The state value or State instance
164
170
  */
165
- getStateNodes(state: StateValue | State<TContext, TEvent, any, TTypestate>): Array<StateNode<TContext, any, TEvent, TTypestate>>;
171
+ getStateNodes(state: StateValue | State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>): Array<StateNode<TContext, any, TEvent, TTypestate, TResolvedTypesMeta>>;
166
172
  /**
167
173
  * Returns `true` if this state node explicitly handles the given event.
168
174
  *
@@ -176,7 +182,7 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
176
182
  *
177
183
  * @param state The state to resolve
178
184
  */
179
- resolveState(state: State<TContext, TEvent, any, any>): State<TContext, TEvent, TStateSchema, TTypestate>;
185
+ resolveState(state: State<TContext, TEvent, any, any, TResolvedTypesMeta>): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
180
186
  private transitionLeafNode;
181
187
  private transitionCompoundNode;
182
188
  private transitionParallelNode;
@@ -196,25 +202,25 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
196
202
  * @param event The event that was sent at the current state
197
203
  * @param context The current context (extended state) of the current state
198
204
  */
199
- transition(state: StateValue | State<TContext, TEvent, any, TTypestate> | undefined, event: Event<TEvent> | SCXML.Event<TEvent>, context?: TContext): State<TContext, TEvent, TStateSchema, TTypestate>;
205
+ transition(state: StateValue | State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta> | undefined, event: Event<TEvent> | SCXML.Event<TEvent>, context?: TContext): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
200
206
  private resolveRaisedTransition;
201
207
  private resolveTransition;
202
208
  /**
203
209
  * Returns the child state node from its relative `stateKey`, or throws.
204
210
  */
205
- getStateNode(stateKey: string): StateNode<TContext, any, TEvent, TTypestate>;
211
+ getStateNode(stateKey: string): StateNode<TContext, any, TEvent, TTypestate, TResolvedTypesMeta>;
206
212
  /**
207
213
  * Returns the state node with the given `stateId`, or throws.
208
214
  *
209
215
  * @param stateId The state ID. The prefix "#" is removed.
210
216
  */
211
- getStateNodeById(stateId: string): StateNode<TContext, any, TEvent, any>;
217
+ getStateNodeById(stateId: string): StateNode<TContext, any, TEvent, any, TResolvedTypesMeta>;
212
218
  /**
213
219
  * Returns the relative state node from the given `statePath`, or throws.
214
220
  *
215
221
  * @param statePath The string or string array relative path to the state node.
216
222
  */
217
- getStateNodeByPath(statePath: string | string[]): StateNode<TContext, any, TEvent, any>;
223
+ getStateNodeByPath(statePath: string | string[]): StateNode<TContext, any, TEvent, any, any>;
218
224
  /**
219
225
  * Resolves a partial state value with its full representation in this machine.
220
226
  *
@@ -223,12 +229,12 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
223
229
  resolve(stateValue: StateValue): StateValue;
224
230
  private getResolvedPath;
225
231
  private get initialStateValue();
226
- getInitialState(stateValue: StateValue, context?: TContext): State<TContext, TEvent, TStateSchema, TTypestate>;
232
+ getInitialState(stateValue: StateValue, context?: TContext): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
227
233
  /**
228
234
  * The initial State instance, which includes all actions to be executed from
229
235
  * entering the initial state.
230
236
  */
231
- get initialState(): State<TContext, TEvent, TStateSchema, TTypestate>;
237
+ get initialState(): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
232
238
  /**
233
239
  * The target state value of the history state node, if it exists. This represents the
234
240
  * default state value to transition to if no history value exists yet.
@@ -242,14 +248,14 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
242
248
  * @param resolve Whether state nodes should resolve to initial child state nodes
243
249
  */
244
250
  getRelativeStateNodes(relativeStateId: StateNode<TContext, any, TEvent>, historyValue?: HistoryValue, resolve?: boolean): Array<StateNode<TContext, any, TEvent>>;
245
- get initialStateNodes(): Array<StateNode<TContext, any, TEvent, any>>;
251
+ get initialStateNodes(): Array<StateNode<TContext, any, TEvent, any, any>>;
246
252
  /**
247
253
  * Retrieves state nodes from a relative path to this state node.
248
254
  *
249
255
  * @param relativePath The relative path from this state node
250
256
  * @param historyValue
251
257
  */
252
- getFromRelativePath(relativePath: string[]): Array<StateNode<TContext, any, TEvent, any>>;
258
+ getFromRelativePath(relativePath: string[]): Array<StateNode<TContext, any, TEvent, any, any>>;
253
259
  private historyValue;
254
260
  /**
255
261
  * Resolves to the historical value(s) of the parent state node,