UNPKG

@zedux/atoms

Version:

A Molecular State Engine for React

60 lines (59 loc) 3.24 kB
import { ActionFactoryActionType, ActionFactoryPayloadType, Store } from '@zedux/core'; import { Ecosystem } from './Ecosystem.js'; import { MaybeCleanup } from '../types/index.js'; import { pluginActions } from '../utils/plugin-actions.js'; declare type ValuesOf<Rec extends Record<any, any>> = Rec extends Record<any, infer T> ? T : never; export declare type Mod = keyof typeof pluginActions; export declare type ModAction = ActionFactoryActionType<ValuesOf<typeof pluginActions>>; export declare type ModPayloadMap = { [K in Mod]: ActionFactoryPayloadType<(typeof pluginActions)[K]>; }; export declare class ZeduxPlugin { /** * These actions should only be dispatched to an ecosystem's modBus * store, so they don't need prefixes */ static actions: { ecosystemWiped: import("@zedux/core").ActionFactory<{ ecosystem: Ecosystem<any>; }, "ecosystemWiped">; edgeCreated: import("@zedux/core").ActionFactory<{ dependency: import("../types/atoms").AnyAtomInstance<"any"> | import("./Selectors").SelectorCache<any, any[]>; dependent: string | import("../types/atoms").AnyAtomInstance<"any"> | import("./Selectors").SelectorCache<any, any[]>; edge: import("../types/index").DependentEdge; }, "edgeCreated">; edgeRemoved: import("@zedux/core").ActionFactory<{ dependency: import("../types/atoms").AnyAtomInstance<"any"> | import("./Selectors").SelectorCache<any, any[]>; dependent: string | import("../types/atoms").AnyAtomInstance<"any"> | import("./Selectors").SelectorCache<any, any[]>; edge: import("../types/index").DependentEdge; }, "edgeRemoved">; evaluationFinished: import("@zedux/core").ActionFactory<{ node: import("../types/atoms").AnyAtomInstance<"any"> | import("./Selectors").SelectorCache<any, any[]>; time: number; }, "evaluationFinished">; instanceReused: import("@zedux/core").ActionFactory<{ instance: import("../types/atoms").AnyAtomInstance<"any">; template: import("../types/atoms").AnyAtomTemplate<"any">; }, string>; stateChanged: import("@zedux/core").ActionFactory<{ action?: import("@zedux/core").ActionChain<any, string> | undefined; cache?: import("./Selectors").SelectorCache<any, any[]> | undefined; instance?: import("../types/atoms").AnyAtomInstance<"any"> | undefined; newState: any; oldState: any; reasons: import("../types/index").EvaluationReason<any>[]; }, "stateChanged">; statusChanged: import("@zedux/core").ActionFactory<{ newStatus: import("../types/index").LifecycleStatus; node: import("../types/atoms").AnyAtomInstance<"any"> | import("./Selectors").SelectorCache<any, any[]>; oldStatus: import("../types/index").LifecycleStatus; }, "statusChanged">; }; modStore: Store<Mod[]>; registerEcosystem: (ecosystem: Ecosystem) => MaybeCleanup; constructor({ initialMods, registerEcosystem, }?: { initialMods?: Mod[]; registerEcosystem?: (ecosystem: Ecosystem) => MaybeCleanup; }); } export {};