import { BaseActionObject, EventObject, IndexByType, IsNever, Prop, Values, IsAny, ServiceMap, Cast, Compute } from './types'; export interface TypegenDisabled { '@@xstate/typegen': false; } export interface TypegenEnabled { '@@xstate/typegen': true; } export interface TypegenMeta extends TypegenEnabled { /** * Allows you to specify all the results of state.matches */ matchesStates: string | {}; /** * Allows you to specify all tags used by the machine */ tags: string; /** * Allows you to specify all the missing implementations * of the machine */ missingImplementations: { actions: string; delays: string; guards: string; services: string; }; /** * A map for the internal events of the machine. * * key: 'done.invoke.myService' * value: { * type: 'done.invoke.myService'; * data: unknown; * __tip: 'Declare the type in event types!'; * } */ internalEvents: {}; /** * Maps the name of the service to the event type * of the done.invoke action * * key: 'invokeSrc' * value: 'done.invoke.invokeName' */ invokeSrcNameMap: Record; /** * Keeps track of which events lead to which * actions. * * Key: 'EVENT_NAME' * Value: 'actionName' | 'otherActionName' */ eventsCausingActions: Record; /** * Keeps track of which events lead to which * delays. * * Key: 'EVENT_NAME' * Value: 'delayName' | 'otherDelayName' */ eventsCausingDelays: Record; /** * Keeps track of which events lead to which * guards. * * Key: 'EVENT_NAME' * Value: 'guardName' | 'otherGuardName' */ eventsCausingGuards: Record; /** * Keeps track of which events lead to which * services. * * Key: 'EVENT_NAME' * Value: 'serviceName' | 'otherServiceName' */ eventsCausingServices: Record; } export interface ResolvedTypegenMeta extends TypegenMeta { resolved: TypegenMeta & { indexedActions: Record; indexedEvents: Record; }; } export declare type TypegenConstraint = TypegenEnabled | TypegenDisabled; export declare type AreAllImplementationsAssumedToBeProvided, 'missingImplementations'>> = IsAny extends true ? true : TResolvedTypesMeta extends TypegenEnabled ? IsNever> extends true ? true : false : true; export declare type MissingImplementationsError, 'missingImplementations'>> = Compute<[ 'Some implementations missing', Values<{ [K in keyof TMissingImplementations]: TMissingImplementations[K]; }> ]>; interface AllImplementationsProvided { missingImplementations: { actions: never; delays: never; guards: never; services: never; }; } export interface MarkAllImplementationsAsProvided { '@@xstate/typegen': Prop; resolved: Prop & AllImplementationsProvided; } declare type GenerateServiceEvent = TEventType extends any ? { type: TEventType; } & Prop : never; declare type GenerateServiceEvents = string extends keyof TServiceMap ? never : Cast<{ [K in keyof TInvokeSrcNameMap]: GenerateServiceEvent; }[keyof TInvokeSrcNameMap], EventObject>; declare type MergeWithInternalEvents = TIndexedEvents & Pick>; declare type AllowAllEvents = { eventsCausingActions: Record; eventsCausingDelays: Record; eventsCausingGuards: Record; eventsCausingServices: Record; }; export interface ResolveTypegenMeta { '@@xstate/typegen': TTypesMeta['@@xstate/typegen']; resolved: { enabled: TTypesMeta & { indexedActions: IndexByType; indexedEvents: MergeWithInternalEvents>>, Prop>; }; disabled: TypegenDisabled & AllImplementationsProvided & AllowAllEvents & { indexedActions: IndexByType; indexedEvents: Record & { __XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__: { data: any; }; }; invokeSrcNameMap: Record; }; }[IsNever extends true ? 'disabled' : TTypesMeta extends TypegenEnabled ? 'enabled' : 'disabled']; } export {}; //# sourceMappingURL=typegenTypes.d.ts.map