overmind
Version:
Frictionless state management
33 lines (32 loc) • 979 B
TypeScript
import { SubType } from '../internalTypes';
import { IAction } from '..';
interface LazyConfiguration {
[namespace: string]: () => Promise<{
state?: {};
effects?: {};
actions?: {};
reactions?: {};
}>;
}
export declare function lazy<T extends LazyConfiguration>(configurations: T): {
state: SubType<{
[P in keyof T]?: ReturnType<T[P]> extends Promise<infer U> ? U extends {
state: any;
} ? U['state'] : never : never;
}, object>;
effects: SubType<{
[P in keyof T]?: ReturnType<T[P]> extends Promise<infer U> ? U extends {
effects: any;
} ? U['effects'] : never : never;
}, object>;
actions: SubType<{
[P in keyof T]?: ReturnType<T[P]> extends Promise<infer U> ? U extends {
actions: any;
} ? U['actions'] : never : never;
}, object> & {
lazy: {
loadConfig: IAction<keyof T, any>;
};
};
};
export {};