import { IPlugin, IRegisterConfig, IPluginConfig, IPluginMetadata } from './types'; /** * 插件系统管理类 */ export default class Plugins { private static plugins; private constructor(); /** * 注册并初始化插件 * @param plugin 插件实例 * @param registerConfig 插件配置 */ static registerPlugin(plugin: IPlugin, registerConfig?: IRegisterConfig): Promise; /** * 获取插件依赖项 * @param type 插件名称 */ static getPluginDependencies(type: string): Record | undefined; /** * 更新插件依赖项 * @param type 插件名称 * @param dependencies 新的依赖项数据 */ static updatePluginDependencies(type: string, dependencies: Record): void; /** * 验证插件基本信息 * @param plugin 插件实例 */ private static validatePlugin; /** * 销毁所有插件 */ static destroyAll(): Promise; /** * 销毁单个插件 * @param type 插件名称 */ static destroyPlugin(type?: string): Promise; /** * 获取插件元数据 * @param type 插件名称 */ private static getPluginMetadata; /** * 获取插件实例 * @param type 插件名称 */ static getPlugin(type: string): T | undefined; /** * 获取所有已注册的插件 */ static getPlugins(): Map; /** * 更新插件配置 * @param type 插件名称 * @param config 新配置 */ static updatePluginConfig(type: string, config: Partial): void; }