import type { Config, MCPServerConfig, Tool } from '../index.js'; export interface MCPRegistryHandle { start(cfg: MCPServerConfig): Promise; stop(name: string): Promise; restart(name: string): Promise; describe(): { name: string; state: string; toolCount: number; enabled: boolean; tools?: string[]; }[]; list(): { name: string; state: string; toolCount: number; tools?: string[]; }[]; /** * Register all cached tools for a server without restarting it. * No-op if the server is not connected or tools are already active. * Used in token-saving mode to temporarily expose MCP tools. */ activateServer?(name: string): void; /** * Unregister all tools for a server without disconnecting it. * Returns the number of tools that were deactivated. * Used in token-saving mode to hide MCP tools after use. */ deactivateServer?(name: string): number; /** * Check whether a server's tools are currently registered. */ isActivated?(name: string): boolean; } export interface CreateMcpControlToolOptions { /** * Read the current config object. The tool never mutates this directly — * writes go to the global config file via `configPath`. */ getConfig: () => Config; /** * Path to the active profile config for atomic config writes. */ configPath: string; /** * Live MCP registry for runtime start/stop/restart. The tool calls these * immediately so the LLM sees the result of its action in the same turn. */ registry: MCPRegistryHandle; } export declare function createMcpControlTool(opts: CreateMcpControlToolOptions): Tool; //# sourceMappingURL=mcp-control.d.ts.map