import { ConfigurationService } from "../services/configurationService.js"; import { PluginManager } from "./pluginManager.js"; import { Logger } from "../types/index.js"; import { Scope } from "../types/configuration.js"; export interface PluginScopeManagerOptions { workdir: string; configurationService: ConfigurationService; pluginManager: PluginManager; logger?: Logger; } export declare class PluginScopeManager { private workdir; private configurationService; private pluginManager; private logger?; constructor(options: PluginScopeManagerOptions); /** * Enable a plugin in the specified scope */ enablePlugin(scope: Scope, pluginId: string): Promise; /** * Disable a plugin in the specified scope */ disablePlugin(scope: Scope, pluginId: string): Promise; /** * Get the merged enabled state of all plugins */ getMergedEnabledPlugins(): Record; /** * Find the scope where a plugin is currently enabled/disabled. * Priority: local > project > user */ findPluginScope(pluginId: string): Scope | null; /** * Remove a plugin from all scopes (user, project, local) * This is useful when uninstalling a plugin to clean up all configuration */ removePluginFromAllScopes(pluginId: string): Promise; /** * Refresh the plugin manager with the latest configuration * Note: This only updates the configuration, it doesn't reload plugins. * Reloading plugins might require a more complex logic (unloading/loading). */ private refreshPluginManager; }