import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import type { Tool, Resource, Prompt } from "@modelcontextprotocol/sdk/types.js"; import type { ClaudeCodeMcpServer } from "../claude-code-mcp-loader/types"; import type { SkillMcpClientInfo, SkillMcpServerContext } from "./types"; export declare class SkillMcpManager { private clients; private pendingConnections; private cleanupRegistered; private cleanupInterval; private readonly IDLE_TIMEOUT; private getClientKey; private registerProcessCleanup; getOrCreateClient(info: SkillMcpClientInfo, config: ClaudeCodeMcpServer): Promise; private createClient; /** * Create an HTTP-based MCP client using StreamableHTTPClientTransport. * Supports remote MCP servers with optional authentication headers. */ private createHttpClient; /** * Create a stdio-based MCP client using StdioClientTransport. * Spawns a local process and communicates via stdin/stdout. */ private createStdioClient; disconnectSession(sessionID: string): Promise; disconnectAll(): Promise; private startCleanupTimer; private stopCleanupTimer; private cleanupIdleClients; listTools(info: SkillMcpClientInfo, context: SkillMcpServerContext): Promise; listResources(info: SkillMcpClientInfo, context: SkillMcpServerContext): Promise; listPrompts(info: SkillMcpClientInfo, context: SkillMcpServerContext): Promise; callTool(info: SkillMcpClientInfo, context: SkillMcpServerContext, name: string, args: Record): Promise; readResource(info: SkillMcpClientInfo, context: SkillMcpServerContext, uri: string): Promise; getPrompt(info: SkillMcpClientInfo, context: SkillMcpServerContext, name: string, args: Record): Promise; private getOrCreateClientWithRetry; getConnectedServers(): string[]; isConnected(info: SkillMcpClientInfo): boolean; }