import { McpServer, type McpRequestContext } from "@modelcontextprotocol/server"; import type { Client } from "@modelcontextprotocol/client"; import type { WorkspaceBindingManager } from "../workspaces/bindings.js"; import type { DesktopClientProvider } from "./connection-manager.js"; export interface DesktopRemoteCatalog { tools: Awaited>["tools"]; prompts: Awaited>["prompts"]; resources: Awaited>["resources"]; resourceTemplates: Awaited>["resourceTemplates"]; } export interface DeferredDesktopProxyOptions { bindings: WorkspaceBindingManager; principalId: string; } type DesktopClientSource = Promise | DesktopClientProvider; /** * Builds the desktop-facing catalog from the same local registrations as the * gateway, then forwards only data-bearing operations once the gateway is * ready. This keeps MCP initialization and list operations independent from * loopback recovery without duplicating schemas in a generated JSON artifact. */ export declare function buildDeferredDesktopProxyServer(context: McpRequestContext, clientSource: DesktopClientSource, options: DeferredDesktopProxyOptions): McpServer; export declare function loadDesktopRemoteCatalog(client: Client): Promise; export declare function buildDesktopProxyServer(client: Client, catalog: DesktopRemoteCatalog): McpServer; export {}; //# sourceMappingURL=proxy-server.d.ts.map