import { WebSocket } from 'ws'; import { ConnectionType } from '../mcp/client.dto.js'; export interface WebSocketMessage { command: string; data: any; } export interface WebSocketResponse { result?: any; timeCost?: number; error?: string; } export interface PostMessageble { postMessage(message: any): void; } export interface IConnectionArgs { connectionType: ConnectionType; commandString?: string; cwd?: string; url?: string; oauth?: string; env?: { [key: string]: string; }; [key: string]: any; } export type MessageHandler = (message: any) => void; export declare class VSCodeWebViewLike { private ws; private messageHandlers; constructor(ws: WebSocket); /** * 发送消息(模拟 vscode.webview.postMessage) * @param message - 包含 command 和 args 的消息 */ postMessage(message: WebSocketMessage): void; /** * 接收消息(模拟 vscode.webview.onDidReceiveMessage) * @param callback - 消息回调 * @returns {{ dispose: () => void }} - 可销毁的监听器 */ onDidReceiveMessage(callback: MessageHandler): { dispose: () => void; }; }