UNPKG

overmind

Version:
33 lines (32 loc) 979 B
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 {};