@systemfsoftware/xstate 0.0.0-stage → 6.0.0-beta.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/fsm.d.ts ADDED
@@ -0,0 +1,139 @@
1
+ import { c as SetupStateSchema, f as StandardSchemaV1, h as types, i as InferEvents, n as EventObject, o as MachineContext, s as SetupSchemas } from "./base.types-DF8ZPiXj.js";
2
+ /** @public */
3
+ type FSMArgs<TContext extends MachineContext, TEvent extends EventObject> = {
4
+ context: TContext;
5
+ event: TEvent;
6
+ };
7
+ /** @public */
8
+ type FSMContextPatch<TContext extends MachineContext> = Partial<TContext>;
9
+ /** @public */
10
+ type FSMTransitionConfig<TContext extends MachineContext, TState extends string> = {
11
+ target?: TState;
12
+ context?: FSMContextPatch<TContext>;
13
+ };
14
+ /** @public */
15
+ type FSMTransitionFunction<TContext extends MachineContext, TEvent extends EventObject, TState extends string, TTransitionContext extends MachineContext = TContext> = (args: FSMArgs<TContext, TEvent>) => FSMTransitionConfig<TTransitionContext, TState> | undefined;
16
+ type EventForType<TEvent extends EventObject, TType extends string> = [Extract<TEvent, {
17
+ type: TType;
18
+ }>] extends [never] ? TEvent : Extract<TEvent, {
19
+ type: TType;
20
+ }>;
21
+ /** @public */
22
+ type FSMTransition<TContext extends MachineContext, TEvent extends EventObject, TState extends string, TTransitionContext extends MachineContext = TContext> = TState | FSMTransitionConfig<TTransitionContext, TState> | FSMTransitionFunction<TContext, TEvent, TState, TTransitionContext>;
23
+ type FSMOn<TContext extends MachineContext, TEvent extends EventObject, TState extends string, TTransitionContext extends MachineContext = TContext> = { [TType in TEvent['type'] & string]?: FSMTransition<TContext, EventForType<TEvent, TType>, TState, TTransitionContext>; };
24
+ /** @public */
25
+ type FSMStateConfig<TContext extends MachineContext, TEvent extends EventObject, TState extends string, TTransitionContext extends MachineContext = TContext> = {
26
+ on?: FSMOn<TContext, TEvent, TState, TTransitionContext>;
27
+ };
28
+ type FSMContextConfig<TContext extends MachineContext> = string extends keyof TContext ? {
29
+ context?: TContext;
30
+ } : keyof TContext extends never ? {
31
+ context?: TContext;
32
+ } : {
33
+ context: TContext;
34
+ };
35
+ /** @public */
36
+ type FSMConfig<TContext extends MachineContext = {}, TEvent extends EventObject = EventObject, TState extends string = string> = {
37
+ id?: string;
38
+ initial: TState;
39
+ states: { [K in TState]: FSMStateConfig<TContext, TEvent, TState>; };
40
+ } & FSMContextConfig<TContext>;
41
+ type FSMConfigForStates<TContext extends MachineContext, TEvent extends EventObject, TState extends string> = Omit<FSMConfig<TContext, TEvent, TState>, 'initial' | 'states'> & {
42
+ initial: NoInfer<TState>;
43
+ states: { [K in TState]: FSMStateConfig<TContext, TEvent, TState>; };
44
+ };
45
+ /**
46
+ * A snapshot of a compact FSM. `status`, `output`, and `error` match the
47
+ * snapshot shape shared by all actor logic, so an FSM can run in
48
+ * `createActor`. An FSM snapshot is always `'active'`.
49
+ *
50
+ * @public
51
+ */
52
+ type FSMSnapshot<TContext extends MachineContext, TState extends string> = {
53
+ status: 'active';
54
+ value: TState;
55
+ context: TContext;
56
+ output: undefined;
57
+ error: undefined;
58
+ };
59
+ /**
60
+ * The result of an FSM transition: `[nextSnapshot, effects]`. FSMs have no
61
+ * effects, so `effects` is always empty. The tuple matches the
62
+ * `(snapshot, event) => [snapshot, effects]` protocol shared with full XState
63
+ * actor logic.
64
+ *
65
+ * @public
66
+ */
67
+ type FSMTransitionResult<TSnapshot> = [nextSnapshot: TSnapshot, effects: never[]];
68
+ /**
69
+ * Pure logic returned by `createFSM`. It structurally satisfies `ActorLogic`,
70
+ * so it works with `createActor`, `transition`, and `initialTransition` from
71
+ * `xstate`.
72
+ *
73
+ * @public
74
+ */
75
+ type FSM<TContext extends MachineContext, TEvent extends EventObject, TState extends string, TSnapshot extends FSMSnapshot<MachineContext, TState> = FSMSnapshot<TContext, TState>, TConfig = FSMConfig<TContext, TEvent, TState>> = {
76
+ readonly id: string | undefined;
77
+ readonly config: TConfig;
78
+ readonly initialState: TSnapshot;
79
+ transition(snapshot: TSnapshot, event: TEvent): FSMTransitionResult<TSnapshot>;
80
+ initialTransition(): FSMTransitionResult<TSnapshot>;
81
+ getInitialSnapshot(): TSnapshot;
82
+ getPersistedSnapshot(snapshot: TSnapshot): TSnapshot;
83
+ };
84
+ type FSMSetupSchemas = Pick<SetupSchemas, 'context' | 'events'>;
85
+ type FSMSetupStates = Record<string, SetupStateSchema>;
86
+ type FSMSchemaContext<TSchema extends StandardSchemaV1> = StandardSchemaV1.InferOutput<TSchema> extends MachineContext ? StandardSchemaV1.InferOutput<TSchema> : MachineContext;
87
+ type FSMSetupContext<TSchemas extends FSMSetupSchemas> = TSchemas extends {
88
+ context: infer TSchema extends StandardSchemaV1;
89
+ } ? FSMSchemaContext<TSchema> : MachineContext;
90
+ type FSMSetupEvents<TSchemas extends FSMSetupSchemas> = TSchemas extends {
91
+ events: infer TEventSchemas extends Record<string, StandardSchemaV1>;
92
+ } ? InferEvents<TEventSchemas> : EventObject;
93
+ type FSMStateContext<TStateSchema, TGlobalContext extends MachineContext> = TStateSchema extends {
94
+ schemas?: infer TSchemas;
95
+ } ? TSchemas extends {
96
+ context?: infer TSchema extends StandardSchemaV1;
97
+ } ? FSMSchemaContext<TSchema> & ([MachineContext] extends [TGlobalContext] ? {} : TGlobalContext) : TGlobalContext : TGlobalContext;
98
+ type FSMContextFromDeclaredStates<TStates extends FSMSetupStates, TGlobalContext extends MachineContext> = { [K in keyof TStates & string]: FSMStateContext<TStates[K], TGlobalContext>; }[keyof TStates & string];
99
+ type FSMContextFromStates<TStates extends FSMSetupStates, TGlobalContext extends MachineContext> = [keyof TStates] extends [never] ? TGlobalContext : [MachineContext] extends [TGlobalContext] ? FSMContextFromDeclaredStates<TStates, TGlobalContext> : TGlobalContext | FSMContextFromDeclaredStates<TStates, TGlobalContext>;
100
+ type FSMSetupStateContext<TState extends string, TStates extends FSMSetupStates, TGlobalContext extends MachineContext> = TState extends keyof TStates ? FSMStateContext<TStates[TState], TGlobalContext> : TGlobalContext;
101
+ type FSMSetupSnapshot<TStates extends FSMSetupStates, TGlobalContext extends MachineContext, TMachineState extends string> = [keyof TStates] extends [never] ? FSMSnapshot<TGlobalContext, TMachineState> : { [K in TMachineState]: FSMSnapshot<FSMSetupStateContext<K, TStates, TGlobalContext>, K>; }[TMachineState];
102
+ type FSMSetupTargetTransitionConfig<TSourceContext extends MachineContext, TTarget extends string, TTargetContext extends MachineContext> = [FSMRequiredTargetContextKeys<TSourceContext, TTargetContext>] extends [never] ? {
103
+ target: TTarget;
104
+ context?: FSMTargetContextPatch<TSourceContext, TTargetContext>;
105
+ } : {
106
+ target: TTarget;
107
+ context: FSMTargetContextPatch<TSourceContext, TTargetContext>;
108
+ };
109
+ type FSMRequiredTargetContextKeys<TSourceContext, TTargetContext> = { [K in keyof TTargetContext]-?: K extends keyof TSourceContext ? [TSourceContext[K]] extends [TTargetContext[K]] ? never : K : K; }[keyof TTargetContext];
110
+ type FSMTargetContextPatch<TSourceContext, TTargetContext> = Partial<TTargetContext> & Pick<TTargetContext, Extract<FSMRequiredTargetContextKeys<TSourceContext, TTargetContext>, string>>;
111
+ type FSMSetupTransitionConfig<TSourceContext extends MachineContext, TStates extends FSMSetupStates, TGlobalContext extends MachineContext> = {
112
+ target?: undefined;
113
+ context?: FSMContextPatch<TSourceContext>;
114
+ } | { [TTarget in keyof TStates & string]: FSMSetupTargetTransitionConfig<TSourceContext, TTarget, FSMSetupStateContext<TTarget, TStates, TGlobalContext>>; }[keyof TStates & string];
115
+ type FSMSetupStringTransition<TSourceContext extends MachineContext, TStates extends FSMSetupStates, TGlobalContext extends MachineContext> = { [TTarget in keyof TStates & string]: [TSourceContext] extends [FSMSetupStateContext<TTarget, TStates, TGlobalContext>] ? TTarget : never; }[keyof TStates & string];
116
+ type FSMSetupTransitionFunction<TSourceContext extends MachineContext, TEvent extends EventObject, TStates extends FSMSetupStates, TGlobalContext extends MachineContext> = (args: FSMArgs<TSourceContext, TEvent>) => FSMSetupTransitionConfig<TSourceContext, TStates, TGlobalContext> | undefined;
117
+ type FSMSetupTransition<TSourceContext extends MachineContext, TEvent extends EventObject, TStates extends FSMSetupStates, TGlobalContext extends MachineContext, TMachineState extends string> = [keyof TStates] extends [never] ? FSMTransition<TSourceContext, TEvent, TMachineState> : FSMSetupStringTransition<TSourceContext, TStates, TGlobalContext> | FSMSetupTransitionConfig<TSourceContext, TStates, TGlobalContext> | FSMSetupTransitionFunction<TSourceContext, TEvent, TStates, TGlobalContext>;
118
+ type FSMSetupStateConfig<TSourceContext extends MachineContext, TEvent extends EventObject, TStates extends FSMSetupStates, TGlobalContext extends MachineContext, TMachineState extends string> = {
119
+ on?: { [TType in TEvent['type'] & string]?: FSMSetupTransition<TSourceContext, EventForType<TEvent, TType>, TStates, TGlobalContext, TMachineState>; };
120
+ };
121
+ type FSMSetupMachineConfig<TSchemas extends FSMSetupSchemas, TStates extends FSMSetupStates, TMachineState extends string> = {
122
+ id?: string;
123
+ initial: NoInfer<TMachineState>;
124
+ states: { [K in TMachineState]: FSMSetupStateConfig<FSMStateContext<K extends keyof TStates ? TStates[K] : {}, FSMSetupContext<TSchemas>>, FSMSetupEvents<TSchemas>, TStates, FSMSetupContext<TSchemas>, TMachineState>; };
125
+ } & FSMContextConfig<FSMContextFromStates<TStates, FSMSetupContext<TSchemas>>>;
126
+ /** @public */
127
+ type FSMSetupConfig<TSchemas extends FSMSetupSchemas = {}, TStates extends FSMSetupStates = {}> = {
128
+ schemas?: TSchemas;
129
+ states?: TStates;
130
+ };
131
+ /** @public */
132
+ type FSMSetupReturn<TSchemas extends FSMSetupSchemas, TStates extends FSMSetupStates> = {
133
+ createFSM<TMachineState extends string>(config: FSMSetupMachineConfig<TSchemas, TStates, TMachineState>): FSM<FSMContextFromStates<TStates, FSMSetupContext<TSchemas>>, FSMSetupEvents<TSchemas>, TMachineState, FSMSetupSnapshot<TStates, FSMSetupContext<TSchemas>, TMachineState>, FSMSetupMachineConfig<TSchemas, TStates, TMachineState>>;
134
+ };
135
+ /** @public */
136
+ export declare function setup<const TSchemas extends FSMSetupSchemas = {}, const TStates extends FSMSetupStates = {}>(_config?: FSMSetupConfig<TSchemas, TStates>): FSMSetupReturn<TSchemas, TStates>;
137
+ /** @public */
138
+ export declare function createFSM<TContext extends MachineContext = {}, TEvent extends EventObject = EventObject, TState extends string = string>(config: FSMConfigForStates<TContext, TEvent, TState>): FSM<TContext, TEvent, TState, FSMSnapshot<TContext, TState>, FSMConfigForStates<TContext, TEvent, TState>>;
139
+ export { type FSM, type FSMArgs, type FSMConfig, type FSMContextPatch, type FSMSetupConfig, type FSMSetupReturn, type FSMSnapshot, type FSMStateConfig, type FSMTransition, type FSMTransitionConfig, type FSMTransitionFunction, type FSMTransitionResult, types };
package/dist/fsm.mjs ADDED
@@ -0,0 +1,60 @@
1
+ import { n as types } from "./schema.types-tsIbgQd-.mjs";
2
+ // src/fsm.ts
3
+ const noTransition = {};
4
+ const resolutionOfConfig = (config) => {
5
+ const resolved = config ?? noTransition;
6
+ return {
7
+ target: resolved.target,
8
+ patch: resolved.context
9
+ };
10
+ };
11
+ const configTransitionOf = (transition) => typeof transition === "string" ? { target: transition } : transition;
12
+ const resolvedTransitionOf = (transition, context, event) => {
13
+ const config = configTransitionOf(transition);
14
+ return resolutionOfConfig(typeof config === "function" ? config({
15
+ context,
16
+ event
17
+ }) : config);
18
+ };
19
+ const ownTransitionOf = (on, type) => Object.hasOwn(on, type) ? on[type] : void 0;
20
+ const noOn = {};
21
+ const onTableOr = (on) => on ?? noOn;
22
+ const onTableFor = (config, value) => onTableOr(config.states[value]?.on);
23
+ const patchChangesContext = (patch, context) => Object.entries(patch ?? {}).some(([key, value]) => value !== context[key]);
24
+ const contextWithPatch = (patch, context) => patchChangesContext(patch, context) ? {
25
+ ...context,
26
+ ...patch
27
+ } : context;
28
+ const snapshotOf = (value, context) => ({
29
+ status: "active",
30
+ value,
31
+ context,
32
+ output: void 0,
33
+ error: void 0
34
+ });
35
+ const unchangedSnapshot = (snapshot, value, context) => value === snapshot.value && context === snapshot.context;
36
+ const targetedValue = (target, value) => target ?? value;
37
+ const nextSnapshot = (snapshot, value, context) => unchangedSnapshot(snapshot, value, context) ? snapshot : snapshotOf(value, context);
38
+ const fsmOf = (config) => {
39
+ const initialState = snapshotOf(config.initial, config.context ?? {});
40
+ return {
41
+ id: config.id,
42
+ config,
43
+ initialState,
44
+ initialTransition: () => [initialState, []],
45
+ getInitialSnapshot: () => initialState,
46
+ getPersistedSnapshot: (snapshot) => snapshot,
47
+ transition(snapshot, event) {
48
+ const resolution = resolvedTransitionOf(ownTransitionOf(onTableFor(config, snapshot.value), event.type), snapshot.context, event);
49
+ const context = contextWithPatch(resolution.patch, snapshot.context);
50
+ return [nextSnapshot(snapshot, targetedValue(resolution.target, snapshot.value), context), []];
51
+ }
52
+ };
53
+ };
54
+ function setup() {
55
+ return { createFSM: fsmOf };
56
+ }
57
+ function createFSM(config) {
58
+ return fsmOf(config);
59
+ }
60
+ export { createFSM, setup, types };
@@ -0,0 +1,160 @@
1
+ import { n as EventObject, o as MachineContext } from "./base.types-DF8ZPiXj.js";
2
+ import { Fn as StateValue, Ot as InputFrom, P as AnyStateMachine, _n as SnapshotFrom, gt as EventFromLogic, hn as Snapshot, jr as AnyActorSystem, mr as StateNode, s as ActorLogic, w as AnyActorLogic, z as AnyTransitionDefinition } from "./types-B2EAwOk-.js";
3
+ import "./index-CKUyiMZC.js";
4
+ /**
5
+ * @public
6
+ */
7
+ export type AnySnapshot<TOutput = unknown> = Snapshot<TOutput>;
8
+ /** @public */
9
+ export type AnyStateNode = StateNode;
10
+ type JSONSerializable<T extends object, U> = T & {
11
+ toJSON: () => U;
12
+ };
13
+ type DirectedGraphLabel = JSONSerializable<{
14
+ text: string;
15
+ }, {
16
+ text: string;
17
+ }>;
18
+ /** @public */
19
+ export type DirectedGraphEdge = JSONSerializable<{
20
+ id: string;
21
+ source: AnyStateNode;
22
+ target: AnyStateNode;
23
+ label: DirectedGraphLabel;
24
+ transition: AnyTransitionDefinition;
25
+ }, {
26
+ source: string;
27
+ target: string;
28
+ label: ReturnType<DirectedGraphLabel['toJSON']>;
29
+ }>;
30
+ /** @public */
31
+ export type DirectedGraphNode = JSONSerializable<{
32
+ id: string;
33
+ stateNode: StateNode;
34
+ children: DirectedGraphNode[];
35
+ /** The edges representing all transitions from this `stateNode`. */
36
+ edges: DirectedGraphEdge[];
37
+ }, {
38
+ id: string;
39
+ children: DirectedGraphNode[];
40
+ }>;
41
+ interface StatePlan<TSnapshot extends AnySnapshot, TEvent extends EventObject> {
42
+ /** The target state. */
43
+ state: TSnapshot;
44
+ /** The paths that reach the target state. */
45
+ paths: Array<StatePath<TSnapshot, TEvent>>;
46
+ }
47
+ /** @public */
48
+ export interface StatePath<TSnapshot extends AnySnapshot, TEvent extends EventObject> {
49
+ /** The ending state of the path. */
50
+ state: TSnapshot;
51
+ /**
52
+ * The ordered array of state-event pairs (steps) which reach the ending
53
+ * `state`.
54
+ */
55
+ steps: Steps<TSnapshot, TEvent>;
56
+ /** The combined weight of all steps in the path. */
57
+ weight: number;
58
+ }
59
+ /** @public */
60
+ export interface StatePlanMap<TSnapshot extends AnySnapshot, TEvent extends EventObject> {
61
+ [key: string]: StatePlan<TSnapshot, TEvent>;
62
+ }
63
+ /** @public */
64
+ export interface Step<TSnapshot extends AnySnapshot, TEvent extends EventObject> {
65
+ /** The event that resulted in the current state */
66
+ event: TEvent;
67
+ /** The current state after taking the event. */
68
+ state: TSnapshot;
69
+ }
70
+ /** @public */
71
+ export type Steps<TSnapshot extends AnySnapshot, TEvent extends EventObject> = Array<Step<TSnapshot, TEvent>>;
72
+ /** @public */
73
+ export interface VisitedContext<TState, TEvent> {
74
+ vertices: Set<SerializedSnapshot>;
75
+ edges: Set<SerializedEvent>;
76
+ a?: TState | TEvent;
77
+ }
78
+ /** @public */
79
+ export interface SerializationConfig<TSnapshot extends AnySnapshot, TEvent extends EventObject> {
80
+ serializeState: (state: TSnapshot, event: TEvent | undefined, prevState?: TSnapshot) => string;
81
+ serializeEvent: (event: TEvent) => string;
82
+ }
83
+ type SerializationOptions<TSnapshot extends AnySnapshot, TEvent extends EventObject> = Partial<Pick<SerializationConfig<TSnapshot, TEvent>, 'serializeState' | 'serializeEvent'>>;
84
+ /** @public */
85
+ export type TraversalOptions<TSnapshot extends AnySnapshot, TEvent extends EventObject, TInput> = {
86
+ input?: TInput;
87
+ } & SerializationOptions<TSnapshot, TEvent> & Partial<Pick<TraversalConfig<TSnapshot, TEvent>, 'events' | 'filterEvents' | 'limit' | 'fromState' | 'stopWhen' | 'toState'>>;
88
+ /** @public */
89
+ export interface TraversalConfig<TSnapshot extends AnySnapshot, TEvent extends EventObject> extends SerializationConfig<TSnapshot, TEvent> {
90
+ events: readonly TEvent[] | ((state: TSnapshot) => readonly TEvent[]);
91
+ filterEvents: ((snapshot: TSnapshot, event: TEvent) => boolean) | undefined;
92
+ /**
93
+ * The maximum number of traversals to perform when calculating the state
94
+ * transition adjacency map.
95
+ *
96
+ * @default `Infinity`
97
+ */
98
+ limit: number;
99
+ fromState: TSnapshot | undefined;
100
+ /** When true, traversal of the adjacency map will stop for that current state. */
101
+ stopWhen: ((state: TSnapshot) => boolean) | undefined;
102
+ toState: ((state: TSnapshot) => boolean) | undefined;
103
+ }
104
+ type Brand<T, Tag extends string> = T & {
105
+ __tag: Tag;
106
+ };
107
+ /** @public */
108
+ export type SerializedSnapshot = Brand<string, 'state'>;
109
+ /** @public */
110
+ export type SerializedEvent = Brand<string, 'event'>;
111
+ /** @public */
112
+ export type PathGenerator<TSnapshot extends AnySnapshot, TEvent extends EventObject, TInput> = (behavior: ActorLogic<TSnapshot, TEvent, TInput>, options: TraversalOptions<TSnapshot, TEvent, TInput>) => Array<StatePath<TSnapshot, TEvent>>;
113
+ /** @public */
114
+ export interface AdjacencyValue<TState, TEvent> {
115
+ state: TState;
116
+ transitions: {
117
+ [key: SerializedEvent]: {
118
+ event: TEvent;
119
+ state: TState;
120
+ };
121
+ };
122
+ }
123
+ /** @public */
124
+ export interface AdjacencyMap<TState, TEvent> {
125
+ [key: SerializedSnapshot]: AdjacencyValue<TState, TEvent>;
126
+ }
127
+ export declare function getAdjacencyMap<TSnapshot extends AnySnapshot, TEvent extends EventObject, TInput, TSystem extends AnyActorSystem = AnyActorSystem>(options: TraversalOptions<TSnapshot, TEvent, TInput>): (logic: ActorLogic<TSnapshot, TEvent, TInput, TSystem>) => AdjacencyMap<TSnapshot, TEvent>;
128
+ export declare function getAdjacencyMap<TSnapshot extends AnySnapshot, TEvent extends EventObject, TInput, TSystem extends AnyActorSystem = AnyActorSystem>(logic: ActorLogic<TSnapshot, TEvent, TInput, TSystem>, options: TraversalOptions<TSnapshot, TEvent, TInput>): AdjacencyMap<TSnapshot, TEvent>;
129
+ /** @public */
130
+ export declare function adjacencyMapToArray<TSnapshot, TEvent>(adjMap: AdjacencyMap<TSnapshot, TEvent>): Array<{
131
+ state: TSnapshot;
132
+ event: TEvent;
133
+ nextState: TSnapshot;
134
+ }>;
135
+ /**
136
+ * Returns all state nodes of the given `node`.
137
+ *
138
+ * @public
139
+ * @param stateNode State node to recursively get child state nodes from
140
+ * @public
141
+ */
142
+ export declare function getDescendantStateNodes(stateNode: {
143
+ states: Record<string, AnyStateNode | StateNode<never, EventObject>>;
144
+ }): AnyStateNode[];
145
+ /** @public */
146
+ export declare function serializeSnapshot(snapshot: AnySnapshot & {
147
+ value?: StateValue;
148
+ context?: MachineContext;
149
+ }): SerializedSnapshot;
150
+ /** @public */
151
+ export declare function toDirectedGraph(stateMachine: AnyStateNode | AnyStateMachine): DirectedGraphNode;
152
+ export declare function joinPaths<TSnapshot extends AnySnapshot, TEvent extends EventObject>(tailPath: StatePath<TSnapshot, TEvent>): (headPath: StatePath<TSnapshot, TEvent>) => StatePath<TSnapshot, TEvent>;
153
+ export declare function joinPaths<TSnapshot extends AnySnapshot, TEvent extends EventObject>(headPath: StatePath<TSnapshot, TEvent>, tailPath: StatePath<TSnapshot, TEvent>): StatePath<TSnapshot, TEvent>;
154
+ export declare function getPathsFromEvents<TSnapshot extends AnySnapshot, TEvent extends EventObject, TInput, TSystem extends AnyActorSystem = AnyActorSystem>(logic: ActorLogic<TSnapshot, TEvent, TInput, TSystem>, events: TEvent[], options?: TraversalOptions<TSnapshot, TEvent, TInput>): Array<StatePath<TSnapshot, TEvent>>;
155
+ export declare function getPathsFromEvents<TSnapshot extends AnySnapshot, TEvent extends EventObject, TInput, TSystem extends AnyActorSystem = AnyActorSystem>(events: TEvent[], options?: TraversalOptions<TSnapshot, TEvent, TInput>): (logic: ActorLogic<TSnapshot, TEvent, TInput, TSystem>) => Array<StatePath<TSnapshot, TEvent>>;
156
+ export declare function getShortestPaths<TLogic extends AnyActorLogic>(logic: TLogic, options?: TraversalOptions<SnapshotFrom<TLogic>, EventFromLogic<TLogic>, InputFrom<TLogic>>): Array<StatePath<SnapshotFrom<TLogic>, EventFromLogic<TLogic>>>;
157
+ export declare function getShortestPaths<TLogic extends AnyActorLogic>(options?: TraversalOptions<SnapshotFrom<TLogic>, EventFromLogic<TLogic>, InputFrom<TLogic>>): (logic: TLogic) => Array<StatePath<SnapshotFrom<TLogic>, EventFromLogic<TLogic>>>;
158
+ export declare function getSimplePaths<TLogic extends AnyActorLogic>(logic: TLogic, options?: TraversalOptions<SnapshotFrom<TLogic>, EventFromLogic<TLogic>, InputFrom<TLogic>>): Array<StatePath<SnapshotFrom<TLogic>, EventFromLogic<TLogic>>>;
159
+ export declare function getSimplePaths<TLogic extends AnyActorLogic>(options?: TraversalOptions<SnapshotFrom<TLogic>, EventFromLogic<TLogic>, InputFrom<TLogic>>): (logic: TLogic) => Array<StatePath<SnapshotFrom<TLogic>, EventFromLogic<TLogic>>>;
160
+ export {};