import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js'; import { type MessageExtraInfo, JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js'; /** * Transport implementation that uses the browser's MessageChannel API for communication * between different browser contexts (iframes, workers, tabs, windows, etc.). */ export declare class BrowserContextTransport implements Transport { sessionId?: string; onmessage?: (message: T, extra?: MessageExtraInfo) => void; onerror?: (error: Error) => void; onclose?: () => void; private _port; private _started; private _closed; /** * Creates a new BrowserContextTransport using an existing MessagePort. * * @param { MessagePort } port The MessagePort to use for communication. */ constructor(port: MessagePort); /** * Starts processing messages on the transport. * This starts the underlying MessagePort if it hasn't been started yet. * * @throws Error if the transport is already started or has been closed. */ start(): Promise; /** * Sends a JSON-RPC message over the MessagePort. * * @param { JSONRPCMessage } message The JSON-RPC message to send. * @throws Error if the transport is closed or the message cannot be sent. */ send(message: JSONRPCMessage): Promise; /** * Closes the MessagePort and marks the transport as closed. * This method will call onclose if it's defined. */ close(): Promise; }