import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js'; import { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js'; /** * 基于浏览器 MessageChannel API 的 Transport 实现, * 用于不同浏览器上下文(iframe、worker、tab、window 等)之间通信。 */ export declare class BrowserTransport implements Transport { private port; private isStarted; private isClosed; sessionId: string; onclose?: () => void; onerror?: (error: Error) => void; onmessage?: (message: JSONRPCMessage) => void; /** * 使用已有的 MessagePort 创建一个新的 BrowserTransport。 * * @param port 用于通信的 MessagePort。 * @param sessionId 可选的会话 ID。如果未提供,则自动生成。 */ constructor(port: MessagePort, sessionId?: string); /** * 启动 transport 的消息处理。 * 如果尚未启动,则启动底层的 MessagePort。 * * @throws 如果 transport 已启动或已关闭,则抛出错误。 */ start(): Promise; /** * 通过 MessagePort 发送 JSON-RPC 消息。 * * @param message 要发送的 JSON-RPC 消息。 * @throws 如果 transport 已关闭或消息无法发送,则抛出错误。 */ send(message: JSONRPCMessage): Promise; /** * 关闭 MessagePort,并将 transport 标记为已关闭。 * 如果定义了 onclose,会自动调用。 */ close(): Promise; }