import { IBaseService } from './base'; import { IPart, RefImpl } from '../types'; /** * Part组件服务接口 * 负责管理应用中所有Part组件的生命周期、注册、获取和方法调用 */ export interface IPartService extends IBaseService { /** * 添加part组件 * @param config part组件配置,包含组件的基本属性和行为定义 * @returns void */ add(config: IPart): Promise; /** * 批量更新部件配置 * @param ids 部件id数组,包含需要更新的所有部件的id * @returns void */ update(ids: string[]): void; /** * 删除part组件 * @param id part组件id,唯一标识符 * @returns void */ delete(id: string): void; /** * 注册组件实例 * @param partId 组件id,用于后续获取和操作该组件 * @param instance 组件实例 * @returns void */ register(partId: string, instance: RefImpl): void; /** * 注销部件实例 * @param partId 要注销的组件id * @returns void */ unregister(partId: string): void; /** * 根据id获取组件实例(expose属性) * @param id 组件id * @returns 返回组件实例或undefined(当组件不存在时) */ getById(id: string): Record | undefined; /** * 根据id获取组件实例(内部接口,可能包含更多内部状态或未暴露的属性) * @param partId 组件id * @returns 返回组件实例或undefined */ getInternalById(partId: string): RefImpl | undefined; /** * 调用任意组件方法 * @param partId 组件id,用于定位特定组件 * @param methodName 要调用的方法名称,该方法必须在组件实例上存在 * @param args 传递给方法的参数列表,可变参数 * @returns 返回方法调用的结果,类型不确定 */ callMethod(partId: string, methodName: string, ...args: any[]): unknown; /** * 加载组件 * @param options 加载选项 * @param options.id 组件id * @param options.component 组件路径或名称 * @param options.routeName 路由名称 * @param options.compsMapping 组件映射 * @param options.markRaw 标记组件 */ loadComponent(options: { id: string; component: string; routeName: string; compsMapping: Record Promise>; markRaw: (component: any) => any; }): void; }