import type { PromiseDefs, RecordFunctions, StateFunction, UnionToIntersection } from './core'; import type { Config, ConfigTypes, ExtractDataKeysFromConfig, ExtractSOA, FinalState, GetActionKeysFromSimpleState, GetEntryActionKeysFromState, GetGuardKeysFromTransition, GetPromiseKeysFromConfig, GetTransitionsActions, PromiseState, SimpleState, SRC, State } from './json'; export type GuardDef = StateFunction; export type TransitionDefinition = { target?: string; source: string; actions: StateFunction[]; cond?: GuardDef; description?: string; }; export type BaseStateDefinition = { value: string; entry: StateFunction[]; }; export type SimpleStateDefinition = BaseStateDefinition & { transitions: TransitionDefinition[]; exit: StateFunction[]; }; export type SRCDefinition = { then: TransitionDefinition[]; catch: TransitionDefinition[]; finally: StateFunction[]; src?: StateFunction>; value: string; }; export type PromiseStateDefinition = BaseStateDefinition & { invoke: SRCDefinition[]; }; export type FinalStateDefinition = BaseStateDefinition & { data: StateFunction; }; export type StateDefinition = SimpleStateDefinition | PromiseStateDefinition | FinalStateDefinition; export type GetActionsBySRC = Record, StateFunction> & Record, StateFunction> & Record, StateFunction>; export type GetActionsFromPromiseState = Record, StateFunction> & (ExtractSOA extends infer U extends SRC ? GetActionsBySRC : unknown); export type GetActionsFromState = ST extends PromiseState ? GetActionsFromPromiseState : ST extends SimpleState ? Record, StateFunction> : ST extends FinalState ? Record, StateFunction> : never; export type GetGuardsFromSimpleState = GetGuardKeysFromTransition> extends infer Keys extends string ? Record> : never; export type GetGuardsFromSRC = (GetGuardKeysFromTransition extends infer ThenKeys ? ThenKeys extends never ? unknown : RecordFunctions : unknown) & (GetGuardKeysFromTransition extends infer CatchKeys ? CatchKeys extends never ? unknown : RecordFunctions : unknown); export type GetGuardsFromPromiseState = ST['invoke'] extends infer Invoke ? Invoke extends SRC ? GetGuardsFromSRC : Invoke extends ReadonlyArray ? GetGuardsFromSRC : never : never; export type GetGuardsFromState, TC extends object = object, TA = any> = ST extends SimpleState ? GetGuardsFromSimpleState : ST extends PromiseState ? GetGuardsFromPromiseState : never; export type Options, T1 extends T & { promises: {}; } = T & { promises: {}; }> = { overflow?: number; strict?: boolean; unFreezeArgs?: boolean; datas?: Partial, StateFunction>>>; actions?: Partial>>; guards?: Partial>>; promises?: Record, StateFunction>>; }; //# sourceMappingURL=types.d.ts.map