import type { Initializer, VarNameCandidateTuple, VarNameTuple } from "./types"; import type { EventHandler as NFAEventHandler, EventHandlers as NFAEventHandlers, Selector as NFAHelperHandler, Selectors as NFAHelperHandlers } from "./nfa-types"; export type BaseNfaMachineConfig, D extends any, H extends NFAHelperHandlers> = { /** * @description must be a valid variable name */ readonly states?: VarNameTuple; readonly data?: D; /** * Only called by adaptors such as `@statekit/react`. * * createMachine() alone, will **NOT** initalize! */ readonly initializer?: Initializer; readonly events?: { readonly [K in keyof E]: E[K] extends NFAEventHandlers[K] ? E[K] : NFAEventHandler; }; readonly selectors?: { readonly [K in keyof H]: H[K] extends NFAHelperHandlers[K] ? H[K] : NFAHelperHandler; }; readonly transitionRules?: { readonly only?: { readonly [K in S[number]]?: readonly Exclude[]; }; readonly deny?: { readonly [K in S[number]]?: readonly Exclude[]; }; }; readonly description?: symbol["description"]; };