import type { ToolSurface } from './tool-surface.js'; export interface CorePluginExpectation { /** Plugin directory basename, matching the `mcpServers` key. */ plugin: string; /** Minimum tool count below which the plugin is treated as unhealthy. */ minTools: number; } export declare const EXPECTED_CORE_PLUGINS: readonly CorePluginExpectation[]; export interface PluginEnumLine { plugin: string; /** The plugin declared an `mcp:` block and reached `mcpServers`. */ registered: boolean; /** Count of `all` canonical tool names that resolve to this plugin. */ tools: number; /** registered AND tools >= minTools. `false` is the failure signal. */ healthy: boolean; } /** One line per EXPECTED_CORE_PLUGINS entry, whether or not the plugin is * present. Tool count is the number of `surface.all` entries whose canonical * name resolves to the plugin's MCP namespace. */ export declare function enumerateCorePlugins(surface: ToolSurface): PluginEnumLine[]; export interface DuplicateVoiceTool { /** Tool basename (`voice-…`) declared by more than one plugin. */ tool: string; /** Sorted list of plugin namespaces that declare it. */ plugins: string[]; } /** Detect a `voice-*` tool basename declared under more than one plugin * namespace. The enumerator (`tool-surface.ts`) already hard-throws when two * plugins collide on the same *directory* name; this catches the distinct * case where two *different* plugins each declare a voice tool basename, * which produces two non-colliding canonical names. */ export declare function findDuplicateVoiceTools(surface: ToolSurface): DuplicateVoiceTool[]; //# sourceMappingURL=plugin-enum.d.ts.map