import { EventBus, CoreEventMap } from './event-bus'; import { RegistryRefs, ShellServices } from './context'; import { UIPlugin, PluginStatus } from './types'; export interface PluginRuntimeConfig { registries: RegistryRefs; shell: ShellServices; } export declare class PluginRuntime { private plugins; readonly eventBus: EventBus; private config; private currentPath?; constructor(config: PluginRuntimeConfig); /** * Load a plugin into the runtime. Activation depends on its activation events. */ loadPlugin(plugin: UIPlugin): Promise; /** * Load multiple plugins in dependency order. */ loadPlugins(plugins: UIPlugin[]): Promise; /** * Record route changes so onRoute activation events can activate plugins. */ handleRouteChange(path: string): void; /** * Activate any pending plugins waiting on a command. */ handleCommandInvocation(commandId: string): Promise; /** * Deactivate and unload a plugin, cleaning up all its contributions. */ unloadPlugin(pluginId: string): Promise; /** * Unload all plugins. */ unloadAll(): Promise; /** * Get a loaded plugin's status. */ getPluginStatus(pluginId: string): PluginStatus | undefined; /** * Get all loaded plugin IDs. */ getLoadedPlugins(): string[]; /** * Check if a plugin is loaded and active. */ isActive(pluginId: string): boolean; /** * Register static contributions declared in the plugin manifest. */ private processStaticContributions; /** * Topological sort of plugins by their dependency graph. * Plugins with no dependencies come first. */ private topologicalSort; private registerPlugin; private activateIfNeeded; private activatePlugin; private registerDeferredActivation; private getActivationEvents; private matchesCurrentRoute; private routePatternMatches; private wrapStaticCommandContribution; } //# sourceMappingURL=runtime.d.ts.map