import EventEmitter from 'eventemitter3'; export type IFlowModuleName = 'flow-basic' | 'flow-process' | 'flow-chart' | 'flow-control' | 'flow-layout'; /** * 流程各个组件的请求控制中心 * @description * - 管理五个流程组件中公用的后端流程数据,只进行一次请求,将请求结果发送到流程中五个组件内部 */ export declare class FlowCommonRequestInstance { /** 请求状态 */ requestState: 'init' | 'loading' | 'loaded' | 'reload'; /** 数据接收状态 */ receivedState: Record; /** 模块卸载状态 */ moduleMountState: Record; /** 消息通知实体 */ messageHub: EventEmitter; /** 公用数据缓存 */ cacheData: unknown | null; /** 流程请求单例 */ static flow: FlowCommonRequestInstance | null; static getFlow(): FlowCommonRequestInstance; /** 初始化模块信息,为模块卸载状态注册初始化标记 */ initModule(moduleName: IFlowModuleName): void; /** * 模块销毁 * @description 模块对应的UI组件卸载之后,需要标记到`moduleMountState`中,当所有模块对应组件都被卸载,则将此实例属性重置 */ destroyModule(moduleName: IFlowModuleName): void; /** * 流程请求控制 * @description * - 当请求状态是loading,执行return 避免重复请求 * - 当请求状态是loaded,发送已请求的缓存数据 */ request(moduleName: IFlowModuleName, callback: () => Promise, loadingCallback?: () => void): void; /** * 重新请求数据 */ reload(moduleName: IFlowModuleName, callback: () => Promise, loadingCallback?: () => void): void; /** * 数据请求成功后的回调 */ requestSuccess(data: unknown): void; /** * 向各个模块发送数据 */ send(data: unknown): void; /** * 模块接收数据 */ listen(moduleName: IFlowModuleName, callback: (data: unknown) => void): void; }