import { StoreEffect } from '@zedux/core'; import { MachineStore } from './MachineStore'; export type MachineHook | undefined> = (store: MachineStore, storeEffect: StoreEffect, MachineStore>) => void; export interface MachineStateShape | undefined = undefined> { value: StateNames; context: Context; } export type MachineStoreContextType = M extends MachineStore ? C : never; export type MachineStoreEventNamesType = M extends MachineStore ? E : never; export type MachineStoreStateType = M extends MachineStore ? MachineStateShape : never; export type MachineStoreStateNamesType = M extends MachineStore ? S : never;