import type { CataloguedPlugin, LoadedPlugin, PluginsConfig } from '../types/plugin.types.js'; import { PluginDiscoveryService } from './plugin-discovery.service.js'; export type HostVersionProvider = () => string; export declare class PluginLoaderService { private readonly discovery; private readonly hostVersionProvider; private readonly logger; constructor(discovery?: PluginDiscoveryService, hostVersionProvider?: HostVersionProvider); catalogAll(config?: PluginsConfig): CataloguedPlugin[]; isInstalled(shortName: string): boolean; /** * Discover and load all enabled plugins. * Registers each plugin directory with ResourceResolver so that the existing * security checks in command-discovery continue to pass for plugin resources. */ loadAll(config?: PluginsConfig): LoadedPlugin[]; private buildInstalledDirByName; private checkEngineCompatibility; private collectPeerDeps; private collectUnenforcedPermissions; private createDepSymlink; private isEnabled; private loadHooksFile; private loadPlugin; private resolveCodeEntrypoint; private resolveContribDirs; private resolveDepPackageName; private resolveHookCommandPaths; private resolveHooks; private resolveMcpsFile; private resolveSubdir; private resolveValidatorModules; private sortByDependencies; private wireNodeModulesForRequires; } //# sourceMappingURL=plugin-loader.service.d.ts.map