1 | import { Clock, Interpreter } from './interpreter';
|
2 | import { Model } from './model.types';
|
3 | import { State } from './State';
|
4 | import { StateNode } from './StateNode';
|
5 | import { MarkAllImplementationsAsProvided, TypegenDisabled, ResolveTypegenMeta, TypegenConstraint, AreAllImplementationsAssumedToBeProvided, TypegenEnabled } from './typegenTypes';
|
6 | export declare type AnyFunction = (...args: any[]) => any;
|
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 Compute<A extends any> = {
|
10 | [K in keyof A]: A[K];
|
11 | } & unknown;
|
12 | export declare type Prop<T, K> = K extends keyof T ? T[K] : never;
|
13 | export declare type Values<T> = T[keyof T];
|
14 | export declare type Merge<M, N> = Omit<M, keyof N> & N;
|
15 | export declare type IndexByType<T extends {
|
16 | type: string;
|
17 | }> = {
|
18 | [K in T['type']]: T extends any ? (K extends T['type'] ? T : never) : never;
|
19 | };
|
20 | export declare type Equals<A1 extends any, A2 extends any> = (<A>() => A extends A2 ? true : false) extends <A>() => A extends A1 ? true : false ? true : false;
|
21 | export declare type IsAny<T> = Equals<T, any>;
|
22 | export declare type Cast<A, B> = A extends B ? A : B;
|
23 | export declare type NoInfer<T> = [T][T extends any ? 0 : any];
|
24 | export declare type LowInfer<T> = T & {};
|
25 | export declare type EventType = string;
|
26 | export declare type ActionType = string;
|
27 | export declare type MetaObject = Record<string, any>;
|
28 |
|
29 |
|
30 |
|
31 | export interface EventObject {
|
32 | |
33 |
|
34 |
|
35 | type: string;
|
36 | }
|
37 | export interface AnyEventObject extends EventObject {
|
38 | [key: string]: any;
|
39 | }
|
40 | export interface BaseActionObject {
|
41 | |
42 |
|
43 |
|
44 | type: string;
|
45 | [other: string]: any;
|
46 | }
|
47 |
|
48 |
|
49 |
|
50 |
|
51 | export interface ActionObject<TContext, TEvent extends EventObject> extends BaseActionObject {
|
52 | |
53 |
|
54 |
|
55 | exec?: ActionFunction<TContext, TEvent> | undefined;
|
56 | }
|
57 | export declare type DefaultContext = Record<string, any> | undefined;
|
58 | export declare type EventData = Record<string, any> & {
|
59 | type?: never;
|
60 | };
|
61 |
|
62 |
|
63 |
|
64 | export declare type Event<TEvent extends EventObject> = TEvent['type'] | TEvent;
|
65 | export interface ActionMeta<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> extends StateMeta<TContext, TEvent> {
|
66 | action: TAction;
|
67 | _event: SCXML.Event<TEvent>;
|
68 | }
|
69 | export interface AssignMeta<TContext, TEvent extends EventObject> {
|
70 | state?: State<TContext, TEvent>;
|
71 | action: AssignAction<TContext, TEvent>;
|
72 | _event: SCXML.Event<TEvent>;
|
73 | }
|
74 | export declare type ActionFunction<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> = {
|
75 | bivarianceHack(context: TContext, event: TEvent, meta: ActionMeta<TContext, TEvent, TAction>): void;
|
76 | }['bivarianceHack'];
|
77 | export interface ChooseCondition<TContext, TEvent extends EventObject> {
|
78 | cond?: Condition<TContext, TEvent>;
|
79 | actions: Actions<TContext, TEvent>;
|
80 | }
|
81 | export declare type Action<TContext, TEvent extends EventObject> = ActionType | ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent>;
|
82 |
|
83 |
|
84 |
|
85 | declare type SimpleActionsOf<T extends BaseActionObject> = ActionObject<any, any> extends T ? T : ExtractWithSimpleSupport<T>;
|
86 |
|
87 |
|
88 |
|
89 | export declare type SimpleEventsOf<TEvent extends EventObject> = ExtractWithSimpleSupport<TEvent>;
|
90 | export declare type BaseAction<TContext, TEvent extends EventObject, TAction extends BaseActionObject> = SimpleActionsOf<TAction>['type'] | TAction | RaiseAction<any> | SendAction<TContext, TEvent, any> | AssignAction<TContext, TEvent> | LogAction<TContext, TEvent> | CancelAction | StopAction<TContext, TEvent> | ChooseAction<TContext, TEvent> | ActionFunction<TContext, TEvent>;
|
91 | export declare type BaseActions<TContext, TEvent extends EventObject, TAction extends BaseActionObject> = SingleOrArray<BaseAction<TContext, TEvent, TAction>>;
|
92 | export declare type Actions<TContext, TEvent extends EventObject> = SingleOrArray<Action<TContext, TEvent>>;
|
93 | export declare type StateKey = string | AnyState;
|
94 | export interface StateValueMap {
|
95 | [key: string]: StateValue;
|
96 | }
|
97 |
|
98 |
|
99 |
|
100 |
|
101 |
|
102 |
|
103 | export declare type StateValue = string | StateValueMap;
|
104 | export interface HistoryValue {
|
105 | states: Record<string, HistoryValue | undefined>;
|
106 | current: StateValue | undefined;
|
107 | }
|
108 | export declare type ConditionPredicate<TContext, TEvent extends EventObject> = (context: TContext, event: TEvent, meta: GuardMeta<TContext, TEvent>) => boolean;
|
109 | export declare type DefaultGuardType = 'xstate.guard';
|
110 | export interface GuardPredicate<TContext, TEvent extends EventObject> {
|
111 | type: DefaultGuardType;
|
112 | name: string | undefined;
|
113 | predicate: ConditionPredicate<TContext, TEvent>;
|
114 | }
|
115 | export declare type Guard<TContext, TEvent extends EventObject> = GuardPredicate<TContext, TEvent> | (Record<string, any> & {
|
116 | type: string;
|
117 | });
|
118 | export interface GuardMeta<TContext, TEvent extends EventObject> extends StateMeta<TContext, TEvent> {
|
119 | cond: Guard<TContext, TEvent>;
|
120 | }
|
121 | export declare type Condition<TContext, TEvent extends EventObject> = string | ConditionPredicate<TContext, TEvent> | Guard<TContext, TEvent>;
|
122 | export declare type TransitionTarget<TContext, TEvent extends EventObject> = SingleOrArray<string | StateNode<TContext, any, TEvent>>;
|
123 | export declare type TransitionTargets<TContext> = Array<string | StateNode<TContext, any>>;
|
124 | export interface TransitionConfig<TContext, TEvent extends EventObject> {
|
125 | cond?: Condition<TContext, TEvent>;
|
126 | actions?: Actions<TContext, TEvent>;
|
127 | in?: StateValue;
|
128 | internal?: boolean;
|
129 | target?: TransitionTarget<TContext, TEvent> | undefined;
|
130 | meta?: Record<string, any>;
|
131 | description?: string;
|
132 | }
|
133 | export interface TargetTransitionConfig<TContext, TEvent extends EventObject> extends TransitionConfig<TContext, TEvent> {
|
134 | target: TransitionTarget<TContext, TEvent>;
|
135 | }
|
136 | export declare type ConditionalTransitionConfig<TContext, TEvent extends EventObject = EventObject> = Array<TransitionConfig<TContext, TEvent>>;
|
137 | export declare type Transition<TContext, TEvent extends EventObject = EventObject> = string | TransitionConfig<TContext, TEvent> | ConditionalTransitionConfig<TContext, TEvent>;
|
138 | export declare type DisposeActivityFunction = () => void;
|
139 | export declare type ActivityConfig<TContext, TEvent extends EventObject> = (ctx: TContext, activity: ActivityDefinition<TContext, TEvent>) => DisposeActivityFunction | void;
|
140 | export declare type Activity<TContext, TEvent extends EventObject> = string | ActivityDefinition<TContext, TEvent>;
|
141 | export interface ActivityDefinition<TContext, TEvent extends EventObject> extends ActionObject<TContext, TEvent> {
|
142 | id: string;
|
143 | type: string;
|
144 | }
|
145 | export declare type Sender<TEvent extends EventObject> = (event: Event<TEvent>) => void;
|
146 | declare type ExcludeType<A> = {
|
147 | [K in Exclude<keyof A, 'type'>]: A[K];
|
148 | };
|
149 | declare type ExtractExtraParameters<A, T> = A extends {
|
150 | type: T;
|
151 | } ? ExcludeType<A> : never;
|
152 | declare type ExtractWithSimpleSupport<T extends {
|
153 | type: string;
|
154 | }> = T extends any ? {
|
155 | type: T['type'];
|
156 | } extends T ? T : never : never;
|
157 | declare type NeverIfEmpty<T> = {} extends T ? never : T;
|
158 | export interface PayloadSender<TEvent extends EventObject> {
|
159 | |
160 |
|
161 |
|
162 | (event: TEvent | ExtractWithSimpleSupport<TEvent>['type']): void;
|
163 | |
164 |
|
165 |
|
166 | <K extends TEvent['type']>(eventType: K, payload: NeverIfEmpty<ExtractExtraParameters<TEvent, K>>): void;
|
167 | }
|
168 | export declare type Receiver<TEvent extends EventObject> = (listener: {
|
169 | bivarianceHack(event: TEvent): void;
|
170 | }['bivarianceHack']) => void;
|
171 | export declare type InvokeCallback<TEvent extends EventObject = AnyEventObject, TSentEvent extends EventObject = AnyEventObject> = (callback: Sender<TSentEvent>, onReceive: Receiver<TEvent>) => (() => void) | Promise<any> | void;
|
172 | export interface InvokeMeta {
|
173 | data: any;
|
174 | src: InvokeSourceDefinition;
|
175 | meta?: MetaObject;
|
176 | }
|
177 |
|
178 |
|
179 |
|
180 |
|
181 |
|
182 |
|
183 |
|
184 |
|
185 |
|
186 |
|
187 |
|
188 |
|
189 |
|
190 | export declare type InvokeCreator<TContext, TSourceEvent extends EventObject, TFinalContext = any, TInputEvent extends EventObject = any,
|
191 | TOutputEvent extends EventObject = TSourceEvent> = (context: TContext, event: TSourceEvent, meta: InvokeMeta) => PromiseLike<TFinalContext> | StateMachine<TFinalContext, any, any, any, any, any, any> | Subscribable<EventObject> | InvokeCallback<TInputEvent, TOutputEvent> | Behavior<any>;
|
192 | export interface InvokeDefinition<TContext, TEvent extends EventObject> extends ActivityDefinition<TContext, TEvent> {
|
193 | |
194 |
|
195 |
|
196 | src: string | InvokeSourceDefinition;
|
197 | |
198 |
|
199 |
|
200 |
|
201 |
|
202 | autoForward?: boolean;
|
203 | |
204 |
|
205 |
|
206 |
|
207 |
|
208 | forward?: boolean;
|
209 | |
210 |
|
211 |
|
212 |
|
213 |
|
214 |
|
215 | data?: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>;
|
216 | meta?: MetaObject;
|
217 | }
|
218 | export interface Delay {
|
219 | id: string;
|
220 | |
221 |
|
222 |
|
223 | delay: number;
|
224 | }
|
225 | export declare type DelayedTransitions<TContext, TEvent extends EventObject> = Record<string | number, string | SingleOrArray<TransitionConfig<TContext, TEvent>>> | Array<TransitionConfig<TContext, TEvent> & {
|
226 | delay: number | string | Expr<TContext, TEvent, number>;
|
227 | }>;
|
228 | export declare type StateTypes = 'atomic' | 'compound' | 'parallel' | 'final' | 'history' | string;
|
229 | export declare type SingleOrArray<T> = T[] | T;
|
230 | export declare type StateNodesConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject> = {
|
231 | [K in keyof TStateSchema['states']]: StateNode<TContext, TStateSchema['states'][K], TEvent>;
|
232 | };
|
233 | export declare type StatesConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> = {
|
234 | [K in keyof TStateSchema['states']]: StateNodeConfig<TContext, TStateSchema['states'][K], TEvent, TAction>;
|
235 | };
|
236 | export declare type StatesDefinition<TContext, TStateSchema extends StateSchema, TEvent extends EventObject> = {
|
237 | [K in keyof TStateSchema['states']]: StateNodeDefinition<TContext, TStateSchema['states'][K], TEvent>;
|
238 | };
|
239 | export declare type TransitionConfigTarget<TContext, TEvent extends EventObject> = string | undefined | StateNode<TContext, any, TEvent>;
|
240 | export declare type TransitionConfigOrTarget<TContext, TEvent extends EventObject> = SingleOrArray<TransitionConfigTarget<TContext, TEvent> | TransitionConfig<TContext, TEvent>>;
|
241 | export declare type TransitionsConfigMap<TContext, TEvent extends EventObject> = {
|
242 | [K in TEvent['type'] | '' | '*']?: K extends '' | '*' ? TransitionConfigOrTarget<TContext, TEvent> : TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>>;
|
243 | };
|
244 | declare type TransitionsConfigArray<TContext, TEvent extends EventObject> = Array<(TEvent extends EventObject ? TransitionConfig<TContext, TEvent> & {
|
245 | event: TEvent['type'];
|
246 | } : never) | (TransitionConfig<TContext, TEvent> & {
|
247 | event: '';
|
248 | }) | (TransitionConfig<TContext, TEvent> & {
|
249 | event: '*';
|
250 | })>;
|
251 | export declare type TransitionsConfig<TContext, TEvent extends EventObject> = TransitionsConfigMap<TContext, TEvent> | TransitionsConfigArray<TContext, TEvent>;
|
252 | export interface InvokeSourceDefinition {
|
253 | [key: string]: any;
|
254 | type: string;
|
255 | }
|
256 | export interface InvokeConfig<TContext, TEvent extends EventObject> {
|
257 | |
258 |
|
259 |
|
260 |
|
261 | id?: string;
|
262 | |
263 |
|
264 |
|
265 | src: string | InvokeSourceDefinition | AnyStateMachine | InvokeCreator<TContext, TEvent, any>;
|
266 | |
267 |
|
268 |
|
269 |
|
270 |
|
271 | autoForward?: boolean;
|
272 | |
273 |
|
274 |
|
275 |
|
276 |
|
277 | forward?: boolean;
|
278 | |
279 |
|
280 |
|
281 |
|
282 |
|
283 |
|
284 | data?: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>;
|
285 | |
286 |
|
287 |
|
288 | onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneInvokeEvent<any>>>;
|
289 | |
290 |
|
291 |
|
292 | onError?: string | SingleOrArray<TransitionConfig<TContext, DoneInvokeEvent<any>>>;
|
293 | |
294 |
|
295 |
|
296 | meta?: MetaObject;
|
297 | }
|
298 | export interface StateNodeConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> {
|
299 | |
300 |
|
301 |
|
302 |
|
303 | key?: string;
|
304 | |
305 |
|
306 |
|
307 | initial?: keyof TStateSchema['states'] | undefined;
|
308 | |
309 |
|
310 |
|
311 | parallel?: boolean | undefined;
|
312 | |
313 |
|
314 |
|
315 |
|
316 |
|
317 |
|
318 |
|
319 |
|
320 |
|
321 | type?: 'atomic' | 'compound' | 'parallel' | 'final' | 'history';
|
322 | |
323 |
|
324 |
|
325 |
|
326 |
|
327 | history?: 'shallow' | 'deep' | boolean | undefined;
|
328 | |
329 |
|
330 |
|
331 | states?: StatesConfig<TContext, TStateSchema, TEvent, TAction> | undefined;
|
332 | |
333 |
|
334 |
|
335 | invoke?: SingleOrArray<InvokeConfig<TContext, TEvent> | AnyStateMachine>;
|
336 | |
337 |
|
338 |
|
339 | on?: TransitionsConfig<TContext, TEvent>;
|
340 | |
341 |
|
342 |
|
343 |
|
344 |
|
345 | onEntry?: Actions<TContext, TEvent>;
|
346 | |
347 |
|
348 |
|
349 | entry?: BaseActions<TContext, TEvent, TAction>;
|
350 | |
351 |
|
352 |
|
353 |
|
354 |
|
355 | onExit?: Actions<TContext, TEvent>;
|
356 | |
357 |
|
358 |
|
359 | exit?: BaseActions<TContext, TEvent, TAction>;
|
360 | |
361 |
|
362 |
|
363 |
|
364 |
|
365 | onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneEventObject>> | undefined;
|
366 | |
367 |
|
368 |
|
369 |
|
370 | after?: DelayedTransitions<TContext, TEvent>;
|
371 | |
372 |
|
373 |
|
374 |
|
375 | always?: TransitionConfigOrTarget<TContext, TEvent>;
|
376 | |
377 |
|
378 |
|
379 |
|
380 |
|
381 |
|
382 | activities?: SingleOrArray<Activity<TContext, TEvent>>;
|
383 | |
384 |
|
385 |
|
386 | parent?: StateNode<TContext, any, TEvent>;
|
387 | strict?: boolean | undefined;
|
388 | |
389 |
|
390 |
|
391 | meta?: TStateSchema extends {
|
392 | meta: infer D;
|
393 | } ? D : any;
|
394 | |
395 |
|
396 |
|
397 |
|
398 |
|
399 |
|
400 | data?: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>;
|
401 | |
402 |
|
403 |
|
404 |
|
405 | id?: string | undefined;
|
406 | |
407 |
|
408 |
|
409 | delimiter?: string;
|
410 | |
411 |
|
412 |
|
413 | order?: number;
|
414 | |
415 |
|
416 |
|
417 | tags?: SingleOrArray<string>;
|
418 | |
419 |
|
420 |
|
421 |
|
422 |
|
423 |
|
424 | preserveActionOrder?: boolean;
|
425 | |
426 |
|
427 |
|
428 | description?: string;
|
429 | }
|
430 | export interface StateNodeDefinition<TContext, TStateSchema extends StateSchema, TEvent extends EventObject> {
|
431 | id: string;
|
432 | version: string | undefined;
|
433 | key: string;
|
434 | context: TContext;
|
435 | type: 'atomic' | 'compound' | 'parallel' | 'final' | 'history';
|
436 | initial: StateNodeConfig<TContext, TStateSchema, TEvent>['initial'];
|
437 | history: boolean | 'shallow' | 'deep' | undefined;
|
438 | states: StatesDefinition<TContext, TStateSchema, TEvent>;
|
439 | on: TransitionDefinitionMap<TContext, TEvent>;
|
440 | transitions: Array<TransitionDefinition<TContext, TEvent>>;
|
441 | entry: Array<ActionObject<TContext, TEvent>>;
|
442 | exit: Array<ActionObject<TContext, TEvent>>;
|
443 | |
444 |
|
445 |
|
446 | activities: Array<ActivityDefinition<TContext, TEvent>>;
|
447 | meta: any;
|
448 | order: number;
|
449 | data?: FinalStateNodeConfig<TContext, TEvent>['data'];
|
450 | invoke: Array<InvokeDefinition<TContext, TEvent>>;
|
451 | description?: string;
|
452 | tags: string[];
|
453 | }
|
454 | export declare type AnyStateNodeDefinition = StateNodeDefinition<any, any, any>;
|
455 | export declare type AnyState = State<any, any, any, any, any>;
|
456 | export declare type AnyStateMachine = StateMachine<any, any, any, any, any, any, any>;
|
457 | export interface AtomicStateNodeConfig<TContext, TEvent extends EventObject> extends StateNodeConfig<TContext, StateSchema, TEvent> {
|
458 | initial?: undefined;
|
459 | parallel?: false | undefined;
|
460 | states?: undefined;
|
461 | onDone?: undefined;
|
462 | }
|
463 | export interface HistoryStateNodeConfig<TContext, TEvent extends EventObject> extends AtomicStateNodeConfig<TContext, TEvent> {
|
464 | history: 'shallow' | 'deep' | true;
|
465 | target: StateValue | undefined;
|
466 | }
|
467 | export interface FinalStateNodeConfig<TContext, TEvent extends EventObject> extends AtomicStateNodeConfig<TContext, TEvent> {
|
468 | type: 'final';
|
469 | |
470 |
|
471 |
|
472 |
|
473 | data?: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>;
|
474 | }
|
475 | export declare type SimpleOrStateNodeConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject> = AtomicStateNodeConfig<TContext, TEvent> | StateNodeConfig<TContext, TStateSchema, TEvent>;
|
476 | export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> = {
|
477 | [K in TAction['type']]?: ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent, TAction extends {
|
478 | type: K;
|
479 | } ? TAction : never>;
|
480 | };
|
481 | export declare type DelayFunctionMap<TContext, TEvent extends EventObject> = Record<string, DelayConfig<TContext, TEvent>>;
|
482 | export declare type ServiceConfig<TContext, TEvent extends EventObject = AnyEventObject> = string | AnyStateMachine | InvokeCreator<TContext, TEvent>;
|
483 | export declare type DelayConfig<TContext, TEvent extends EventObject> = number | DelayExpr<TContext, TEvent>;
|
484 | declare type MachineOptionsActions<TContext, TResolvedTypesMeta, TEventsCausingActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingActions'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, TIndexedActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActions'>> = {
|
485 | [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>>;
|
486 | };
|
487 | declare type MachineOptionsDelays<TContext, TResolvedTypesMeta, TEventsCausingDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingDelays'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>> = {
|
488 | [K in keyof TEventsCausingDelays]?: DelayConfig<TContext, Cast<Prop<TIndexedEvents, TEventsCausingDelays[K]>, EventObject>>;
|
489 | };
|
490 | declare type MachineOptionsGuards<TContext, TResolvedTypesMeta, TEventsCausingGuards = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingGuards'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>> = {
|
491 | [K in keyof TEventsCausingGuards]?: ConditionPredicate<TContext, Cast<Prop<TIndexedEvents, TEventsCausingGuards[K]>, EventObject>>;
|
492 | };
|
493 | declare type MachineOptionsServices<TContext, TResolvedTypesMeta, TEventsCausingServices = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingServices'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, TInvokeSrcNameMap = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'invokeSrcNameMap'>> = {
|
494 | [K in keyof TEventsCausingServices]?: AnyStateMachine | InvokeCreator<TContext, Cast<Prop<TIndexedEvents, TEventsCausingServices[K]>, EventObject>, Prop<Prop<TIndexedEvents, Prop<TInvokeSrcNameMap, K>>, 'data'>, EventObject, Cast<TIndexedEvents[keyof TIndexedEvents], EventObject>>;
|
495 | };
|
496 | declare type MakeKeysRequired<T extends string> = {
|
497 | [K in T]: unknown;
|
498 | };
|
499 | declare type MaybeMakeMissingImplementationsRequired<TImplementationType, TMissingImplementationsForType, TRequireMissingImplementations> = TRequireMissingImplementations extends true ? IsNever<TMissingImplementationsForType> extends true ? {} : {
|
500 | [K in Cast<TImplementationType, string>]: MakeKeysRequired<Cast<TMissingImplementationsForType, string>>;
|
501 | } : {};
|
502 | declare type GenerateActionsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'actions', Prop<TMissingImplementations, 'actions'>, TRequireMissingImplementations> & {
|
503 | actions?: MachineOptionsActions<TContext, TResolvedTypesMeta>;
|
504 | };
|
505 | declare type GenerateDelaysConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'delays', Prop<TMissingImplementations, 'delays'>, TRequireMissingImplementations> & {
|
506 | delays?: MachineOptionsDelays<TContext, TResolvedTypesMeta>;
|
507 | };
|
508 | declare type GenerateGuardsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'guards', Prop<TMissingImplementations, 'guards'>, TRequireMissingImplementations> & {
|
509 | guards?: MachineOptionsGuards<TContext, TResolvedTypesMeta>;
|
510 | };
|
511 | declare type GenerateServicesConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'services', Prop<TMissingImplementations, 'services'>, TRequireMissingImplementations> & {
|
512 | services?: MachineOptionsServices<TContext, TResolvedTypesMeta>;
|
513 | };
|
514 | export declare type InternalMachineOptions<TContext, TEvent extends EventObject, TResolvedTypesMeta, TRequireMissingImplementations extends boolean = false, TMissingImplementations = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'missingImplementations'>> = GenerateActionsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateDelaysConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateGuardsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateServicesConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & {
|
515 | |
516 |
|
517 |
|
518 | activities?: Record<string, ActivityConfig<TContext, TEvent>>;
|
519 | };
|
520 | export declare type MachineOptions<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TTypesMeta extends TypegenConstraint = TypegenDisabled> = InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TTypesMeta, TEvent, TAction, TServiceMap>>;
|
521 | export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TTypesMeta = TypegenDisabled> extends StateNodeConfig<NoInfer<TContext>, TStateSchema, NoInfer<TEvent>, TAction> {
|
522 | |
523 |
|
524 |
|
525 | context?: LowInfer<TContext | (() => TContext)>;
|
526 | /**
|
527 | * The machine's own version.
|
528 | */
|
529 | version?: string;
|
530 | schema?: MachineSchema<TContext, TEvent, TServiceMap>;
|
531 | tsTypes?: TTypesMeta;
|
532 | }
|
533 | export declare type ServiceMap = Record<string, {
|
534 | data: any;
|
535 | }>;
|
536 | export interface MachineSchema<TContext, TEvent extends EventObject, TServiceMap extends ServiceMap = ServiceMap> {
|
537 | context?: TContext;
|
538 | events?: TEvent;
|
539 | actions?: {
|
540 | type: string;
|
541 | [key: string]: any;
|
542 | };
|
543 | guards?: {
|
544 | type: string;
|
545 | [key: string]: any;
|
546 | };
|
547 | services?: TServiceMap;
|
548 | }
|
549 | export interface StandardMachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject> extends StateNodeConfig<TContext, TStateSchema, TEvent> {
|
550 | }
|
551 | export interface ParallelMachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject> extends StateNodeConfig<TContext, TStateSchema, TEvent> {
|
552 | initial?: undefined;
|
553 | type?: 'parallel';
|
554 | }
|
555 | export interface EntryExitEffectMap<TContext, TEvent extends EventObject> {
|
556 | entry: Array<ActionObject<TContext, TEvent>>;
|
557 | exit: Array<ActionObject<TContext, TEvent>>;
|
558 | }
|
559 | export interface HistoryStateNode<TContext> extends StateNode<TContext> {
|
560 | history: 'shallow' | 'deep';
|
561 | target: StateValue | undefined;
|
562 | }
|
563 | /** @ts-ignore TS complains about withConfig & withContext not being compatible here when extending StateNode */
|
564 | export interface StateMachine<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TTypestate extends Typestate<TContext> = {
|
565 | value: any;
|
566 | context: TContext;
|
567 | }, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TResolvedTypesMeta = ResolveTypegenMeta<TypegenDisabled, NoInfer<TEvent>, TAction, TServiceMap>> extends StateNode<TContext, TStateSchema, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta> {
|
568 | id: string;
|
569 | states: StateNode<TContext, TStateSchema, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta>['states'];
|
570 | withConfig(options: InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, true>, context?: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate, TAction, TServiceMap, AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta> extends false ? MarkAllImplementationsAsProvided<TResolvedTypesMeta> : TResolvedTypesMeta>;
|
571 | withContext(context: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate, TAction, TServiceMap, TResolvedTypesMeta>;
|
572 | /** @deprecated an internal property acting as a "phantom" type, not meant to be used at runtime */
|
573 | __TContext: TContext;
|
574 | /** @deprecated an internal property acting as a "phantom" type, not meant to be used at runtime */
|
575 | __TStateSchema: TStateSchema;
|
576 | /** @deprecated an internal property acting as a "phantom" type, not meant to be used at runtime */
|
577 | __TEvent: TEvent;
|
578 | /** @deprecated an internal property acting as a "phantom" type, not meant to be used at runtime */
|
579 | __TTypestate: TTypestate;
|
580 | /** @deprecated an internal property acting as a "phantom" type, not meant to be used at runtime */
|
581 | __TAction: TAction;
|
582 | /** @deprecated an internal property acting as a "phantom" type, not meant to be used at runtime */
|
583 | __TServiceMap: TServiceMap;
|
584 | /** @deprecated an internal property acting as a "phantom" type, not meant to be used at runtime */
|
585 | __TResolvedTypesMeta: TResolvedTypesMeta;
|
586 | }
|
587 | export declare type StateFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = T extends AnyStateMachine ? ReturnType<T['transition']> : T extends (...args: any[]) => AnyStateMachine ? ReturnType<ReturnType<T>['transition']> : never;
|
588 | export interface ActionMap<TContext, TEvent extends EventObject> {
|
589 | onEntry: Array<Action<TContext, TEvent>>;
|
590 | actions: Array<Action<TContext, TEvent>>;
|
591 | onExit: Array<Action<TContext, TEvent>>;
|
592 | }
|
593 | export interface EntryExitStates<TContext> {
|
594 | entry: Set<StateNode<TContext>>;
|
595 | exit: Set<StateNode<TContext>>;
|
596 | }
|
597 | export interface EntryExitStateArrays<TContext> {
|
598 | entry: Array<StateNode<TContext>>;
|
599 | exit: Array<StateNode<TContext>>;
|
600 | }
|
601 | export interface ActivityMap {
|
602 | [activityKey: string]: ActivityDefinition<any, any> | false;
|
603 | }
|
604 | export interface StateTransition<TContext, TEvent extends EventObject> {
|
605 | transitions: Array<TransitionDefinition<TContext, TEvent>>;
|
606 | configuration: Array<StateNode<TContext, any, TEvent, any, any, any>>;
|
607 | entrySet: Array<StateNode<TContext, any, TEvent, any, any, any>>;
|
608 | exitSet: Array<StateNode<TContext, any, TEvent, any, any, any>>;
|
609 | |
610 |
|
611 |
|
612 | source: State<TContext, any, any, any, any> | undefined;
|
613 | actions: Array<ActionObject<TContext, TEvent>>;
|
614 | }
|
615 | export interface TransitionData<TContext, TEvent extends EventObject> {
|
616 | value: StateValue | undefined;
|
617 | actions: ActionMap<TContext, TEvent>;
|
618 | activities?: ActivityMap;
|
619 | }
|
620 | export declare enum ActionTypes {
|
621 | Start = "xstate.start",
|
622 | Stop = "xstate.stop",
|
623 | Raise = "xstate.raise",
|
624 | Send = "xstate.send",
|
625 | Cancel = "xstate.cancel",
|
626 | NullEvent = "",
|
627 | Assign = "xstate.assign",
|
628 | After = "xstate.after",
|
629 | DoneState = "done.state",
|
630 | DoneInvoke = "done.invoke",
|
631 | Log = "xstate.log",
|
632 | Init = "xstate.init",
|
633 | Invoke = "xstate.invoke",
|
634 | ErrorExecution = "error.execution",
|
635 | ErrorCommunication = "error.communication",
|
636 | ErrorPlatform = "error.platform",
|
637 | ErrorCustom = "xstate.error",
|
638 | Update = "xstate.update",
|
639 | Pure = "xstate.pure",
|
640 | Choose = "xstate.choose"
|
641 | }
|
642 | export interface RaiseAction<TEvent extends EventObject> {
|
643 | type: ActionTypes.Raise;
|
644 | event: TEvent['type'];
|
645 | }
|
646 | export interface RaiseActionObject<TEvent extends EventObject> {
|
647 | type: ActionTypes.Raise;
|
648 | _event: SCXML.Event<TEvent>;
|
649 | }
|
650 | export interface DoneInvokeEvent<TData> extends EventObject {
|
651 | data: TData;
|
652 | }
|
653 | export interface ErrorExecutionEvent extends EventObject {
|
654 | src: string;
|
655 | type: ActionTypes.ErrorExecution;
|
656 | data: any;
|
657 | }
|
658 | export interface ErrorPlatformEvent extends EventObject {
|
659 | data: any;
|
660 | }
|
661 | export interface DoneEventObject extends EventObject {
|
662 | data?: any;
|
663 | toString(): string;
|
664 | }
|
665 | export interface UpdateObject extends EventObject {
|
666 | id: string | number;
|
667 | state: AnyState;
|
668 | }
|
669 | export declare type DoneEvent = DoneEventObject & string;
|
670 | export interface NullEvent {
|
671 | type: ActionTypes.NullEvent;
|
672 | }
|
673 | export interface ActivityActionObject<TContext, TEvent extends EventObject> extends ActionObject<TContext, TEvent> {
|
674 | type: ActionTypes.Start | ActionTypes.Stop;
|
675 | activity: ActivityDefinition<TContext, TEvent> | undefined;
|
676 | exec: ActionFunction<TContext, TEvent> | undefined;
|
677 | }
|
678 | export interface InvokeActionObject<TContext, TEvent extends EventObject> extends ActivityActionObject<TContext, TEvent> {
|
679 | activity: InvokeDefinition<TContext, TEvent>;
|
680 | }
|
681 | export declare type DelayExpr<TContext, TEvent extends EventObject> = ExprWithMeta<TContext, TEvent, number>;
|
682 | export declare type LogExpr<TContext, TEvent extends EventObject> = ExprWithMeta<TContext, TEvent, any>;
|
683 | export interface LogAction<TContext, TEvent extends EventObject> extends ActionObject<TContext, TEvent> {
|
684 | label: string | undefined;
|
685 | expr: string | LogExpr<TContext, TEvent>;
|
686 | }
|
687 | export interface LogActionObject<TContext, TEvent extends EventObject> extends LogAction<TContext, TEvent> {
|
688 | value: any;
|
689 | }
|
690 | export interface SendAction<TContext, TEvent extends EventObject, TSentEvent extends EventObject> extends ActionObject<TContext, TEvent> {
|
691 | to: string | number | ActorRef<any> | ExprWithMeta<TContext, TEvent, string | number | ActorRef<any>> | undefined;
|
692 | event: TSentEvent | SendExpr<TContext, TEvent, TSentEvent>;
|
693 | delay?: number | string | DelayExpr<TContext, TEvent>;
|
694 | id: string | number;
|
695 | }
|
696 | export interface SendActionObject<TContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject> extends SendAction<TContext, TEvent, TSentEvent> {
|
697 | to: string | number | ActorRef<any> | undefined;
|
698 | _event: SCXML.Event<TSentEvent>;
|
699 | event: TSentEvent;
|
700 | delay?: number;
|
701 | id: string | number;
|
702 | }
|
703 | export interface StopAction<TContext, TEvent extends EventObject> extends ActionObject<TContext, TEvent> {
|
704 | type: ActionTypes.Stop;
|
705 | activity: string | {
|
706 | id: string;
|
707 | } | Expr<TContext, TEvent, string | {
|
708 | id: string;
|
709 | }>;
|
710 | }
|
711 | export interface StopActionObject {
|
712 | type: ActionTypes.Stop;
|
713 | activity: {
|
714 | id: string;
|
715 | };
|
716 | }
|
717 | export declare type Expr<TContext, TEvent extends EventObject, T> = (context: TContext, event: TEvent) => T;
|
718 | export declare type ExprWithMeta<TContext, TEvent extends EventObject, T> = (context: TContext, event: TEvent, meta: SCXMLEventMeta<TEvent>) => T;
|
719 | export declare type SendExpr<TContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject> = ExprWithMeta<TContext, TEvent, TSentEvent>;
|
720 | export declare enum SpecialTargets {
|
721 | Parent = "#_parent",
|
722 | Internal = "#_internal"
|
723 | }
|
724 | export interface SendActionOptions<TContext, TEvent extends EventObject> {
|
725 | id?: string | number;
|
726 | delay?: number | string | DelayExpr<TContext, TEvent>;
|
727 | to?: string | ExprWithMeta<TContext, TEvent, string | number | ActorRef<any>>;
|
728 | }
|
729 | export interface CancelAction extends ActionObject<any, any> {
|
730 | sendId: string | number;
|
731 | }
|
732 | export declare type Assigner<TContext, TEvent extends EventObject> = (context: TContext, event: TEvent, meta: AssignMeta<TContext, TEvent>) => Partial<TContext>;
|
733 | export declare type PartialAssigner<TContext, TEvent extends EventObject, TKey extends keyof TContext> = (context: TContext, event: TEvent, meta: AssignMeta<TContext, TEvent>) => TContext[TKey];
|
734 | export declare type PropertyAssigner<TContext, TEvent extends EventObject> = {
|
735 | [K in keyof TContext]?: PartialAssigner<TContext, TEvent, K> | TContext[K];
|
736 | };
|
737 | export declare type Mapper<TContext, TEvent extends EventObject, TParams extends {}> = (context: TContext, event: TEvent) => TParams;
|
738 | export declare type PropertyMapper<TContext, TEvent extends EventObject, TParams extends {}> = {
|
739 | [K in keyof TParams]?: ((context: TContext, event: TEvent) => TParams[K]) | TParams[K];
|
740 | };
|
741 | export interface AnyAssignAction<TContext, TEvent extends EventObject> extends ActionObject<TContext, TEvent> {
|
742 | type: ActionTypes.Assign;
|
743 | assignment: any;
|
744 | }
|
745 | export interface AssignAction<TContext, TEvent extends EventObject> extends ActionObject<TContext, TEvent> {
|
746 | type: ActionTypes.Assign;
|
747 | assignment: Assigner<TContext, TEvent> | PropertyAssigner<TContext, TEvent>;
|
748 | }
|
749 | export interface PureAction<TContext, TEvent extends EventObject> extends ActionObject<TContext, TEvent> {
|
750 | type: ActionTypes.Pure;
|
751 | get: (context: TContext, event: TEvent) => SingleOrArray<ActionObject<TContext, TEvent>> | undefined;
|
752 | }
|
753 | export interface ChooseAction<TContext, TEvent extends EventObject> extends ActionObject<TContext, TEvent> {
|
754 | type: ActionTypes.Choose;
|
755 | conds: Array<ChooseCondition<TContext, TEvent>>;
|
756 | }
|
757 | export interface TransitionDefinition<TContext, TEvent extends EventObject> extends TransitionConfig<TContext, TEvent> {
|
758 | target: Array<StateNode<TContext, any, TEvent>> | undefined;
|
759 | source: StateNode<TContext, any, TEvent>;
|
760 | actions: Array<ActionObject<TContext, TEvent>>;
|
761 | cond?: Guard<TContext, TEvent>;
|
762 | eventType: TEvent['type'] | NullEvent['type'] | '*';
|
763 | toJSON: () => {
|
764 | target: string[] | undefined;
|
765 | source: string;
|
766 | actions: Array<ActionObject<TContext, TEvent>>;
|
767 | cond?: Guard<TContext, TEvent>;
|
768 | eventType: TEvent['type'] | NullEvent['type'] | '*';
|
769 | meta?: Record<string, any>;
|
770 | };
|
771 | }
|
772 | export declare type TransitionDefinitionMap<TContext, TEvent extends EventObject> = {
|
773 | [K in TEvent['type'] | NullEvent['type'] | '*']: Array<TransitionDefinition<TContext, K extends TEvent['type'] ? Extract<TEvent, {
|
774 | type: K;
|
775 | }> : EventObject>>;
|
776 | };
|
777 | export interface DelayedTransitionDefinition<TContext, TEvent extends EventObject> extends TransitionDefinition<TContext, TEvent> {
|
778 | delay: number | string | DelayExpr<TContext, TEvent>;
|
779 | }
|
780 | export interface Edge<TContext, TEvent extends EventObject, TEventType extends TEvent['type'] = string> {
|
781 | event: TEventType;
|
782 | source: StateNode<TContext, any, TEvent>;
|
783 | target: StateNode<TContext, any, TEvent>;
|
784 | cond?: Condition<TContext, TEvent & {
|
785 | type: TEventType;
|
786 | }>;
|
787 | actions: Array<Action<TContext, TEvent>>;
|
788 | meta?: MetaObject;
|
789 | transition: TransitionDefinition<TContext, TEvent>;
|
790 | }
|
791 | export interface NodesAndEdges<TContext, TEvent extends EventObject> {
|
792 | nodes: StateNode[];
|
793 | edges: Array<Edge<TContext, TEvent, TEvent['type']>>;
|
794 | }
|
795 | export interface Segment<TContext, TEvent extends EventObject> {
|
796 | |
797 |
|
798 |
|
799 | state: State<TContext, TEvent>;
|
800 | |
801 |
|
802 |
|
803 | event: TEvent;
|
804 | }
|
805 | export interface PathItem<TContext, TEvent extends EventObject> {
|
806 | state: State<TContext, TEvent>;
|
807 | path: Array<Segment<TContext, TEvent>>;
|
808 | weight?: number;
|
809 | }
|
810 | export interface PathMap<TContext, TEvent extends EventObject> {
|
811 | [key: string]: PathItem<TContext, TEvent>;
|
812 | }
|
813 | export interface PathsItem<TContext, TEvent extends EventObject> {
|
814 | state: State<TContext, TEvent>;
|
815 | paths: Array<Array<Segment<TContext, TEvent>>>;
|
816 | }
|
817 | export interface PathsMap<TContext, TEvent extends EventObject> {
|
818 | [key: string]: PathsItem<TContext, TEvent>;
|
819 | }
|
820 | export interface TransitionMap {
|
821 | state: StateValue | undefined;
|
822 | }
|
823 | export interface AdjacencyMap {
|
824 | [stateId: string]: Record<string, TransitionMap>;
|
825 | }
|
826 | export interface ValueAdjacencyMap<TContext, TEvent extends EventObject> {
|
827 | [stateId: string]: Record<string, State<TContext, TEvent>>;
|
828 | }
|
829 | export interface SCXMLEventMeta<TEvent extends EventObject> {
|
830 | _event: SCXML.Event<TEvent>;
|
831 | }
|
832 | export interface StateMeta<TContext, TEvent extends EventObject> {
|
833 | state: State<TContext, TEvent, any, any, any>;
|
834 | _event: SCXML.Event<TEvent>;
|
835 | }
|
836 | export interface Typestate<TContext> {
|
837 | value: StateValue;
|
838 | context: TContext;
|
839 | }
|
840 | export interface StateLike<TContext> {
|
841 | value: StateValue;
|
842 | context: TContext;
|
843 | event: EventObject;
|
844 | _event: SCXML.Event<EventObject>;
|
845 | }
|
846 | export interface StateConfig<TContext, TEvent extends EventObject> {
|
847 | value: StateValue;
|
848 | context: TContext;
|
849 | _event: SCXML.Event<TEvent>;
|
850 | _sessionid: string | null;
|
851 | historyValue?: HistoryValue | undefined;
|
852 | history?: State<TContext, TEvent, any, any, any>;
|
853 | actions?: Array<ActionObject<TContext, TEvent>>;
|
854 | |
855 |
|
856 |
|
857 | activities?: ActivityMap;
|
858 | meta?: any;
|
859 | events?: TEvent[];
|
860 | configuration: Array<StateNode<TContext, any, TEvent>>;
|
861 | transitions: Array<TransitionDefinition<TContext, TEvent>>;
|
862 | children: Record<string, ActorRef<any>>;
|
863 | done?: boolean;
|
864 | tags?: Set<string>;
|
865 | machine?: StateMachine<TContext, any, TEvent, any, any, any, any>;
|
866 | }
|
867 | export declare type AnyStateConfig = StateConfig<any, AnyEventObject>;
|
868 | export interface StateSchema<TC = any> {
|
869 | meta?: any;
|
870 | context?: Partial<TC>;
|
871 | states?: {
|
872 | [key: string]: StateSchema<TC>;
|
873 | };
|
874 | }
|
875 | export interface InterpreterOptions {
|
876 | |
877 |
|
878 |
|
879 | execute?: boolean;
|
880 | clock?: Clock;
|
881 | logger?: (...args: any[]) => void;
|
882 | parent?: AnyInterpreter;
|
883 | |
884 |
|
885 |
|
886 |
|
887 |
|
888 |
|
889 |
|
890 | deferEvents?: boolean;
|
891 | |
892 |
|
893 |
|
894 | id?: string;
|
895 | |
896 |
|
897 |
|
898 |
|
899 |
|
900 | devTools?: boolean | object;
|
901 | }
|
902 | export declare namespace SCXML {
|
903 | interface Event<TEvent extends EventObject> {
|
904 | |
905 |
|
906 |
|
907 |
|
908 |
|
909 |
|
910 |
|
911 | name: string;
|
912 | |
913 |
|
914 |
|
915 |
|
916 |
|
917 |
|
918 | type: 'platform' | 'internal' | 'external';
|
919 | |
920 |
|
921 |
|
922 |
|
923 |
|
924 |
|
925 |
|
926 | sendid?: string;
|
927 | |
928 |
|
929 |
|
930 |
|
931 |
|
932 |
|
933 |
|
934 | origin?: string;
|
935 | |
936 |
|
937 |
|
938 |
|
939 |
|
940 |
|
941 |
|
942 | origintype?: string;
|
943 | |
944 |
|
945 |
|
946 |
|
947 |
|
948 | invokeid?: string;
|
949 | |
950 |
|
951 |
|
952 |
|
953 |
|
954 |
|
955 |
|
956 |
|
957 | data: TEvent;
|
958 | |
959 |
|
960 |
|
961 | $$type: 'scxml';
|
962 | }
|
963 | }
|
964 | export interface Observer<T> {
|
965 | next: (value: T) => void;
|
966 | error: (err: any) => void;
|
967 | complete: () => void;
|
968 | }
|
969 | export interface Subscription {
|
970 | unsubscribe(): void;
|
971 | }
|
972 | export interface InteropObservable<T> {
|
973 | [Symbol.observable]: () => InteropSubscribable<T>;
|
974 | }
|
975 | export interface InteropSubscribable<T> {
|
976 | subscribe(observer: Observer<T>): Subscription;
|
977 | }
|
978 | export interface Subscribable<T> extends InteropSubscribable<T> {
|
979 | subscribe(observer: Observer<T>): Subscription;
|
980 | subscribe(next: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
|
981 | }
|
982 | export declare type Spawnable = AnyStateMachine | PromiseLike<any> | InvokeCallback | InteropObservable<any> | Subscribable<any> | Behavior<any>;
|
983 | export declare type ExtractEvent<TEvent extends EventObject, TEventType extends TEvent['type']> = TEvent extends any ? TEventType extends TEvent['type'] ? TEvent : never : never;
|
984 | export interface BaseActorRef<TEvent extends EventObject> {
|
985 | send: (event: TEvent) => void;
|
986 | }
|
987 | export interface ActorRef<TEvent extends EventObject, TEmitted = any> extends Subscribable<TEmitted>, InteropObservable<TEmitted> {
|
988 | send: Sender<TEvent>;
|
989 | id: string;
|
990 | getSnapshot: () => TEmitted | undefined;
|
991 | stop?: () => void;
|
992 | toJSON?: () => any;
|
993 | }
|
994 | export declare type AnyActorRef = ActorRef<any, any>;
|
995 |
|
996 |
|
997 |
|
998 | export declare type SpawnedActorRef<TEvent extends EventObject, TEmitted = any> = ActorRef<TEvent, TEmitted>;
|
999 | export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventObject, TTypestate extends Typestate<TContext>, TResolvedTypesMeta = TypegenDisabled> = ActorRef<TEvent, State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>> & {
|
1000 | |
1001 |
|
1002 |
|
1003 | state: State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>;
|
1004 | };
|
1005 | export declare type ActorRefFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, any, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate, AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta> extends false ? MarkAllImplementationsAsProvided<TResolvedTypesMeta> : TResolvedTypesMeta> : R extends Promise<infer U> ? ActorRef<never, U> : R extends Behavior<infer TEvent, infer TEmitted> ? ActorRef<TEvent, TEmitted> : never : never;
|
1006 | export declare type AnyInterpreter = Interpreter<any, any, any, any, any>;
|
1007 | export declare type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta> extends false ? MarkAllImplementationsAsProvided<TResolvedTypesMeta> : TResolvedTypesMeta> : never;
|
1008 | export declare type MachineOptionsFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, any, infer TEvent, any, any, any, infer TResolvedTypesMeta> ? InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, TRequireMissingImplementations> : never;
|
1009 | export declare type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, any, any, any, any, any, infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
|
1010 | export interface ActorContext<TEvent extends EventObject, TEmitted> {
|
1011 | parent?: ActorRef<any, any>;
|
1012 | self: ActorRef<TEvent, TEmitted>;
|
1013 | id: string;
|
1014 | observers: Set<Observer<TEmitted>>;
|
1015 | }
|
1016 | export interface Behavior<TEvent extends EventObject, TEmitted = any> {
|
1017 | transition: (state: TEmitted, event: TEvent, actorCtx: ActorContext<TEvent, TEmitted>) => TEmitted;
|
1018 | initialState: TEmitted;
|
1019 | start?: (actorCtx: ActorContext<TEvent, TEmitted>) => TEmitted;
|
1020 | }
|
1021 | export declare type EmittedFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends Interpreter<infer _, infer __, infer ___, infer ____, infer _____> ? R['initialState'] : R extends ActorRef<infer _, infer TEmitted> ? TEmitted : R extends Behavior<infer _, infer TEmitted> ? TEmitted : R extends ActorContext<infer _, infer TEmitted> ? TEmitted : never : never;
|
1022 | declare type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer __, infer TEvent, infer ___, infer ____, infer _____, infer ______> ? TEvent : R extends Model<infer _, infer TEvent, infer __, infer ___> ? TEvent : R extends State<infer _, infer TEvent, infer __, infer ___, infer ____> ? TEvent : R extends Interpreter<infer _, infer __, infer TEvent, infer ___, infer ____> ? TEvent : R extends ActorRef<infer TEvent, infer _> ? TEvent : never : never;
|
1023 | export declare type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent extends EventObject = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : ExtractEvent<TEvent, K>;
|
1024 | export declare type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _, infer __, infer ___, infer ____, infer _____, infer ______> ? TContext : R extends Model<infer TContext, infer _, infer __, infer ___> ? TContext : R extends State<infer TContext, infer _, infer __, infer ___, infer ____> ? TContext : R extends Interpreter<infer TContext, infer _, infer __, infer ___, infer ____> ? TContext : never : never;
|
1025 | declare type Matches<TypegenEnabledArg, TypegenDisabledArg> = {
|
1026 | (stateValue: TypegenEnabledArg): any;
|
1027 | (stateValue: TypegenDisabledArg): any;
|
1028 | };
|
1029 | export declare type StateValueFrom<TMachine extends AnyStateMachine> = StateFrom<TMachine>['matches'] extends Matches<infer TypegenEnabledArg, infer TypegenDisabledArg> ? TMachine['__TResolvedTypesMeta'] extends TypegenEnabled ? TypegenEnabledArg : TypegenDisabledArg : never;
|
1030 | export {};
|
1031 |
|
\ | No newline at end of file |