import { EventEmitter } from 'events'; import { WebSocket } from 'ws'; export interface ExtensionMcpTool { name: string; title?: string; description?: string; inputSchema: Record; outputSchema?: Record; annotations?: Record; _meta?: Record; } export interface ExtensionMcpServerState { server: string; displayName?: string; extensionId: string; extensionVersion?: string; connectedAt: number; lastSeenAt: number; tools: ExtensionMcpTool[]; } declare class ExtensionMcpRegistry extends EventEmitter { private servers; register(input: { server: string; displayName?: string; extensionId: string; extensionVersion?: string; tools: ExtensionMcpTool[]; ws: WebSocket; }): void; unregisterSocket(ws: WebSocket): void; has(server: string): boolean; listServers(): ExtensionMcpServerState[]; listTools(server: string): ExtensionMcpTool[]; touchSocket(ws: WebSocket): void; callTool(server: string, tool: string, args: Record): Promise; resolveResponse(ws: WebSocket, raw: { id?: unknown; result?: unknown; error?: { message?: unknown; }; }): boolean; private emitChangedIfNeeded; } export declare const extensionMcpRegistry: ExtensionMcpRegistry; export {};