mobx-keystone-mindreframer
Version:
A MobX powered state management solution based on data trees with first class support for Typescript, snapshots, patches and much more
21 lines (20 loc) • 657 B
TypeScript
/**
* A function with an object as target.
*/
export declare type FnModelFn<T extends object, FN extends (...args: any[]) => any> = (target: T, ...args: Parameters<FN>) => ReturnType<FN>;
/**
* Functional model action definition.
*/
export declare type FnModelActionDef = (...args: any[]) => any;
/**
* An object with functional model action definitions.
*/
export interface FnModelActionsDef {
[k: string]: FnModelActionDef;
}
/**
* Functional model actions.
*/
export declare type FnModelActions<Data extends object, ActionsDef extends FnModelActionsDef> = {
[k in keyof ActionsDef]: FnModelFn<Data, ActionsDef[k]>;
};