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