import { VSBuffer } from "@codingame/monaco-vscode-api/vscode/vs/base/common/buffer"; import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event"; import { ISocket, SocketDiagnosticsEventType } from "@codingame/monaco-vscode-api/vscode/vs/base/parts/ipc/common/ipc.net"; import { ISocketFactory } from "../common/remoteSocketFactoryService.js"; import { RemoteConnectionType, WebSocketRemoteConnection } from "@codingame/monaco-vscode-api/vscode/vs/platform/remote/common/remoteAuthorityResolver"; export interface IWebSocketFactory { create(url: string, debugLabel: string): IWebSocket; } export interface IWebSocketCloseEvent { /** * Returns the WebSocket connection close code provided by the server. */ readonly code: number; /** * Returns the WebSocket connection close reason provided by the server. */ readonly reason: string; /** * Returns true if the connection closed cleanly; false otherwise. */ readonly wasClean: boolean; /** * Underlying event. */ readonly event: unknown | undefined; } export interface IWebSocket { readonly onData: Event; readonly onOpen: Event; readonly onClose: Event; readonly onError: Event; traceSocketEvent?(type: SocketDiagnosticsEventType, data?: VSBuffer | Uint8Array | ArrayBuffer | ArrayBufferView | unknown): void; send(data: ArrayBuffer | ArrayBufferView): void; close(): void; } export declare class BrowserSocketFactory implements ISocketFactory { private readonly _webSocketFactory; constructor(webSocketFactory: IWebSocketFactory | null | undefined); supports(connectTo: WebSocketRemoteConnection): boolean; connect({ host, port }: WebSocketRemoteConnection, path: string, query: string, debugLabel: string): Promise; }