import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js'; import { JSONRPCMessage, ServerCapabilities } from '@modelcontextprotocol/sdk/types.js'; import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { Client } from '@modelcontextprotocol/sdk/client/index.js'; import * as http from 'http'; type TransportEvent = { type: "close"; } | { type: "onclose"; } | { type: "onerror"; error: Error; } | { type: "onmessage"; message: JSONRPCMessage; } | { type: "send"; message: JSONRPCMessage; } | { type: "start"; }; declare const tapTransport: (transport: Transport, eventHandler: (event: TransportEvent) => void) => Transport; declare const proxyServer: ({ server, client, serverCapabilities, }: { server: Server; client: Client; serverCapabilities: ServerCapabilities; }) => Promise; type SSEServer = { close: () => Promise; }; type ServerLike = { connect: Server["connect"]; close: Server["close"]; }; type AuthResult = { userId: string; permissions?: string[]; env?: Record; } | null; type AuthHandler = (apiKey: string) => Promise; declare const startSSEServer: ({ port, createServer, endpoint, onConnect, onClose, onUnhandledRequest, apiKey, apiKeyHeaderName, authHandler, }: { port: number; endpoint: string; createServer: (request: http.IncomingMessage, userId?: string, env?: Record) => Promise; onConnect?: (server: T, userId?: string) => void; onClose?: (server: T) => void; onUnhandledRequest?: (req: http.IncomingMessage, res: http.ServerResponse) => Promise; apiKey?: string; apiKeyHeaderName?: string; authHandler?: AuthHandler; }) => Promise; export { proxyServer, startSSEServer, tapTransport };