import { EventObject, State, StateMachine, Typestate } from 'xstate'; import { Nucleon } from '@foxy.io/sdk/core'; export declare type NucleonMachine = StateMachine, any, Nucleon.Event, Nucleon.State>; export declare type NucleonState = Pick, Nucleon.Event, any, Nucleon.State>, 'context' | 'matches'>; export declare type HALJSONResource = { readonly _links: { readonly self: { readonly href: string; }; }; }; export declare type NucleonV8N = ((form: Partial, host: THost) => true | string)[]; declare type ComputedNucleonState, TSV extends TTypestate['value'], TEvent extends EventObject, TStateSchema> = State<(TTypestate extends any ? { value: TSV; context: any; } extends TTypestate ? TTypestate : never : never)['context'], TEvent, TStateSchema, TTypestate> & { value: TSV; }; declare type ComputedContext, TSV extends Nucleon.State['value']> = ComputedNucleonState, Nucleon.State, TSV, Nucleon.Event, any>['context']; export declare type ComputedElementProperties, TSV extends Nucleon.State['value'], TContext extends Nucleon.Context = ComputedContext> = TContext & { form: TContext['data'] & TContext['edits']; data: TContext['data']; }; export {};