1 | /// <reference types="node" />
|
---|
2 |
|
---|
3 | import type { Blob } from 'buffer'
|
---|
4 | import type { MessagePort } from 'worker_threads'
|
---|
5 | import {
|
---|
6 | EventInit,
|
---|
7 | EventListenerOptions,
|
---|
8 | AddEventListenerOptions,
|
---|
9 | EventListenerOrEventListenerObject
|
---|
10 | } from './patch'
|
---|
11 | import Dispatcher from './dispatcher'
|
---|
12 | import { HeadersInit } from './fetch'
|
---|
13 |
|
---|
14 | export type BinaryType = 'blob' | 'arraybuffer'
|
---|
15 |
|
---|
16 | interface WebSocketEventMap {
|
---|
17 | close: CloseEvent
|
---|
18 | error: ErrorEvent
|
---|
19 | message: MessageEvent
|
---|
20 | open: Event
|
---|
21 | }
|
---|
22 |
|
---|
23 | interface WebSocket extends EventTarget {
|
---|
24 | binaryType: BinaryType
|
---|
25 |
|
---|
26 | readonly bufferedAmount: number
|
---|
27 | readonly extensions: string
|
---|
28 |
|
---|
29 | onclose: ((this: WebSocket, ev: WebSocketEventMap['close']) => any) | null
|
---|
30 | onerror: ((this: WebSocket, ev: WebSocketEventMap['error']) => any) | null
|
---|
31 | onmessage: ((this: WebSocket, ev: WebSocketEventMap['message']) => any) | null
|
---|
32 | onopen: ((this: WebSocket, ev: WebSocketEventMap['open']) => any) | null
|
---|
33 |
|
---|
34 | readonly protocol: string
|
---|
35 | readonly readyState: number
|
---|
36 | readonly url: string
|
---|
37 |
|
---|
38 | close(code?: number, reason?: string): void
|
---|
39 | send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void
|
---|
40 |
|
---|
41 | readonly CLOSED: number
|
---|
42 | readonly CLOSING: number
|
---|
43 | readonly CONNECTING: number
|
---|
44 | readonly OPEN: number
|
---|
45 |
|
---|
46 | addEventListener<K extends keyof WebSocketEventMap>(
|
---|
47 | type: K,
|
---|
48 | listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any,
|
---|
49 | options?: boolean | AddEventListenerOptions
|
---|
50 | ): void
|
---|
51 | addEventListener(
|
---|
52 | type: string,
|
---|
53 | listener: EventListenerOrEventListenerObject,
|
---|
54 | options?: boolean | AddEventListenerOptions
|
---|
55 | ): void
|
---|
56 | removeEventListener<K extends keyof WebSocketEventMap>(
|
---|
57 | type: K,
|
---|
58 | listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any,
|
---|
59 | options?: boolean | EventListenerOptions
|
---|
60 | ): void
|
---|
61 | removeEventListener(
|
---|
62 | type: string,
|
---|
63 | listener: EventListenerOrEventListenerObject,
|
---|
64 | options?: boolean | EventListenerOptions
|
---|
65 | ): void
|
---|
66 | }
|
---|
67 |
|
---|
68 | export declare const WebSocket: {
|
---|
69 | prototype: WebSocket
|
---|
70 | new (url: string | URL, protocols?: string | string[] | WebSocketInit): WebSocket
|
---|
71 | readonly CLOSED: number
|
---|
72 | readonly CLOSING: number
|
---|
73 | readonly CONNECTING: number
|
---|
74 | readonly OPEN: number
|
---|
75 | }
|
---|
76 |
|
---|
77 | interface CloseEventInit extends EventInit {
|
---|
78 | code?: number
|
---|
79 | reason?: string
|
---|
80 | wasClean?: boolean
|
---|
81 | }
|
---|
82 |
|
---|
83 | interface CloseEvent extends Event {
|
---|
84 | readonly code: number
|
---|
85 | readonly reason: string
|
---|
86 | readonly wasClean: boolean
|
---|
87 | }
|
---|
88 |
|
---|
89 | export declare const CloseEvent: {
|
---|
90 | prototype: CloseEvent
|
---|
91 | new (type: string, eventInitDict?: CloseEventInit): CloseEvent
|
---|
92 | }
|
---|
93 |
|
---|
94 | interface MessageEventInit<T = any> extends EventInit {
|
---|
95 | data?: T
|
---|
96 | lastEventId?: string
|
---|
97 | origin?: string
|
---|
98 | ports?: (typeof MessagePort)[]
|
---|
99 | source?: typeof MessagePort | null
|
---|
100 | }
|
---|
101 |
|
---|
102 | interface MessageEvent<T = any> extends Event {
|
---|
103 | readonly data: T
|
---|
104 | readonly lastEventId: string
|
---|
105 | readonly origin: string
|
---|
106 | readonly ports: ReadonlyArray<typeof MessagePort>
|
---|
107 | readonly source: typeof MessagePort | null
|
---|
108 | initMessageEvent(
|
---|
109 | type: string,
|
---|
110 | bubbles?: boolean,
|
---|
111 | cancelable?: boolean,
|
---|
112 | data?: any,
|
---|
113 | origin?: string,
|
---|
114 | lastEventId?: string,
|
---|
115 | source?: typeof MessagePort | null,
|
---|
116 | ports?: (typeof MessagePort)[]
|
---|
117 | ): void;
|
---|
118 | }
|
---|
119 |
|
---|
120 | export declare const MessageEvent: {
|
---|
121 | prototype: MessageEvent
|
---|
122 | new<T>(type: string, eventInitDict?: MessageEventInit<T>): MessageEvent<T>
|
---|
123 | }
|
---|
124 |
|
---|
125 | interface ErrorEventInit extends EventInit {
|
---|
126 | message?: string
|
---|
127 | filename?: string
|
---|
128 | lineno?: number
|
---|
129 | colno?: number
|
---|
130 | error?: any
|
---|
131 | }
|
---|
132 |
|
---|
133 | interface ErrorEvent extends Event {
|
---|
134 | readonly message: string
|
---|
135 | readonly filename: string
|
---|
136 | readonly lineno: number
|
---|
137 | readonly colno: number
|
---|
138 | readonly error: any
|
---|
139 | }
|
---|
140 |
|
---|
141 | export declare const ErrorEvent: {
|
---|
142 | prototype: ErrorEvent
|
---|
143 | new (type: string, eventInitDict?: ErrorEventInit): ErrorEvent
|
---|
144 | }
|
---|
145 |
|
---|
146 | interface WebSocketInit {
|
---|
147 | protocols?: string | string[],
|
---|
148 | dispatcher?: Dispatcher,
|
---|
149 | headers?: HeadersInit
|
---|
150 | }
|
---|