@zedux/atoms
Version:
A Molecular State Engine for React
60 lines (59 loc) • 3.23 kB
TypeScript
import { ActionFactoryActionType, ActionFactoryPayloadType, Store } from '@zedux/core';
import { Ecosystem } from './Ecosystem';
import { MaybeCleanup } from '../types/index';
import { pluginActions } from '../utils/plugin-actions';
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 {};