declare interface WebSocketOpenInfo { readable: ReadableStream writable: WritableStream extensions: string protocol: string } declare interface WebSocketCloseInfo { closeCode: number reason: string } declare interface WebSocketStreamOptions { protocols?: string[] signal?: AbortSignal } declare class WebSocketStream { constructor(url: string, options?: WebSocketStreamOptions) readonly url: string readonly opened: Promise readonly closed: Promise close(closeInfo?: WebSocketCloseInfo): any }