UNPKG

50.6 kBTypeScriptView Raw
1declare module "http2" {
2 import * as events from "events";
3 import * as fs from "fs";
4 import * as net from "net";
5 import * as stream from "stream";
6 import * as tls from "tls";
7 import * as url from "url";
8
9 import { IncomingHttpHeaders as Http1IncomingHttpHeaders, OutgoingHttpHeaders } from "http";
10 export { OutgoingHttpHeaders } from "http";
11
12 export interface IncomingHttpStatusHeader {
13 ":status"?: number;
14 }
15
16 export interface IncomingHttpHeaders extends Http1IncomingHttpHeaders {
17 ":path"?: string;
18 ":method"?: string;
19 ":authority"?: string;
20 ":scheme"?: string;
21 }
22
23 // Http2Stream
24
25 export interface StreamPriorityOptions {
26 exclusive?: boolean;
27 parent?: number;
28 weight?: number;
29 silent?: boolean;
30 }
31
32 export interface StreamState {
33 localWindowSize?: number;
34 state?: number;
35 streamLocalClose?: number;
36 streamRemoteClose?: number;
37 sumDependencyWeight?: number;
38 weight?: number;
39 }
40
41 export interface ServerStreamResponseOptions {
42 endStream?: boolean;
43 waitForTrailers?: boolean;
44 }
45
46 export interface StatOptions {
47 offset: number;
48 length: number;
49 }
50
51 export interface ServerStreamFileResponseOptions {
52 statCheck?: (stats: fs.Stats, headers: OutgoingHttpHeaders, statOptions: StatOptions) => void | boolean;
53 getTrailers?: (trailers: OutgoingHttpHeaders) => void;
54 offset?: number;
55 length?: number;
56 }
57
58 export interface ServerStreamFileResponseOptionsWithError extends ServerStreamFileResponseOptions {
59 onError?: (err: NodeJS.ErrnoException) => void;
60 }
61
62 export interface Http2Stream extends stream.Duplex {
63 readonly aborted: boolean;
64 readonly closed: boolean;
65 readonly destroyed: boolean;
66 readonly pending: boolean;
67 readonly rstCode: number;
68 readonly sentHeaders: OutgoingHttpHeaders;
69 readonly sentInfoHeaders?: OutgoingHttpHeaders[];
70 readonly sentTrailers?: OutgoingHttpHeaders;
71 readonly session: Http2Session;
72 readonly state: StreamState;
73 /**
74 * Set the true if the END_STREAM flag was set in the request or response HEADERS frame received,
75 * indicating that no additional data should be received and the readable side of the Http2Stream will be closed.
76 */
77 readonly endAfterHeaders: boolean;
78 close(code?: number, callback?: () => void): void;
79 priority(options: StreamPriorityOptions): void;
80 setTimeout(msecs: number, callback?: () => void): void;
81
82 addListener(event: string, listener: (...args: any[]) => void): this;
83 addListener(event: "aborted", listener: () => void): this;
84 addListener(event: "close", listener: () => void): this;
85 addListener(event: "data", listener: (chunk: Buffer | string) => void): this;
86 addListener(event: "drain", listener: () => void): this;
87 addListener(event: "end", listener: () => void): this;
88 addListener(event: "error", listener: (err: Error) => void): this;
89 addListener(event: "finish", listener: () => void): this;
90 addListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this;
91 addListener(event: "pipe", listener: (src: stream.Readable) => void): this;
92 addListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
93 addListener(event: "streamClosed", listener: (code: number) => void): this;
94 addListener(event: "timeout", listener: () => void): this;
95 addListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;
96 addListener(event: "wantTrailers", listener: () => void): this;
97
98 emit(event: string | symbol, ...args: any[]): boolean;
99 emit(event: "aborted"): boolean;
100 emit(event: "close"): boolean;
101 emit(event: "data", chunk: Buffer | string): boolean;
102 emit(event: "drain"): boolean;
103 emit(event: "end"): boolean;
104 emit(event: "error", err: Error): boolean;
105 emit(event: "finish"): boolean;
106 emit(event: "frameError", frameType: number, errorCode: number): boolean;
107 emit(event: "pipe", src: stream.Readable): boolean;
108 emit(event: "unpipe", src: stream.Readable): boolean;
109 emit(event: "streamClosed", code: number): boolean;
110 emit(event: "timeout"): boolean;
111 emit(event: "trailers", trailers: IncomingHttpHeaders, flags: number): boolean;
112 emit(event: "wantTrailers"): boolean;
113
114 on(event: string, listener: (...args: any[]) => void): this;
115 on(event: "aborted", listener: () => void): this;
116 on(event: "close", listener: () => void): this;
117 on(event: "data", listener: (chunk: Buffer | string) => void): this;
118 on(event: "drain", listener: () => void): this;
119 on(event: "end", listener: () => void): this;
120 on(event: "error", listener: (err: Error) => void): this;
121 on(event: "finish", listener: () => void): this;
122 on(event: "frameError", listener: (frameType: number, errorCode: number) => void): this;
123 on(event: "pipe", listener: (src: stream.Readable) => void): this;
124 on(event: "unpipe", listener: (src: stream.Readable) => void): this;
125 on(event: "streamClosed", listener: (code: number) => void): this;
126 on(event: "timeout", listener: () => void): this;
127 on(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;
128 on(event: "wantTrailers", listener: () => void): this;
129
130 once(event: string, listener: (...args: any[]) => void): this;
131 once(event: "aborted", listener: () => void): this;
132 once(event: "close", listener: () => void): this;
133 once(event: "data", listener: (chunk: Buffer | string) => void): this;
134 once(event: "drain", listener: () => void): this;
135 once(event: "end", listener: () => void): this;
136 once(event: "error", listener: (err: Error) => void): this;
137 once(event: "finish", listener: () => void): this;
138 once(event: "frameError", listener: (frameType: number, errorCode: number) => void): this;
139 once(event: "pipe", listener: (src: stream.Readable) => void): this;
140 once(event: "unpipe", listener: (src: stream.Readable) => void): this;
141 once(event: "streamClosed", listener: (code: number) => void): this;
142 once(event: "timeout", listener: () => void): this;
143 once(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;
144 once(event: "wantTrailers", listener: () => void): this;
145
146 prependListener(event: string, listener: (...args: any[]) => void): this;
147 prependListener(event: "aborted", listener: () => void): this;
148 prependListener(event: "close", listener: () => void): this;
149 prependListener(event: "data", listener: (chunk: Buffer | string) => void): this;
150 prependListener(event: "drain", listener: () => void): this;
151 prependListener(event: "end", listener: () => void): this;
152 prependListener(event: "error", listener: (err: Error) => void): this;
153 prependListener(event: "finish", listener: () => void): this;
154 prependListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this;
155 prependListener(event: "pipe", listener: (src: stream.Readable) => void): this;
156 prependListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
157 prependListener(event: "streamClosed", listener: (code: number) => void): this;
158 prependListener(event: "timeout", listener: () => void): this;
159 prependListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;
160 prependListener(event: "wantTrailers", listener: () => void): this;
161
162 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
163 prependOnceListener(event: "aborted", listener: () => void): this;
164 prependOnceListener(event: "close", listener: () => void): this;
165 prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this;
166 prependOnceListener(event: "drain", listener: () => void): this;
167 prependOnceListener(event: "end", listener: () => void): this;
168 prependOnceListener(event: "error", listener: (err: Error) => void): this;
169 prependOnceListener(event: "finish", listener: () => void): this;
170 prependOnceListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this;
171 prependOnceListener(event: "pipe", listener: (src: stream.Readable) => void): this;
172 prependOnceListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
173 prependOnceListener(event: "streamClosed", listener: (code: number) => void): this;
174 prependOnceListener(event: "timeout", listener: () => void): this;
175 prependOnceListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;
176 prependOnceListener(event: "wantTrailers", listener: () => void): this;
177
178 sendTrailers(headers: OutgoingHttpHeaders): this;
179 }
180
181 export interface ClientHttp2Stream extends Http2Stream {
182 addListener(event: string, listener: (...args: any[]) => void): this;
183 addListener(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
184 addListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
185 addListener(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
186
187 emit(event: string | symbol, ...args: any[]): boolean;
188 emit(event: "headers", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean;
189 emit(event: "push", headers: IncomingHttpHeaders, flags: number): boolean;
190 emit(event: "response", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean;
191
192 on(event: string, listener: (...args: any[]) => void): this;
193 on(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
194 on(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
195 on(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
196
197 once(event: string, listener: (...args: any[]) => void): this;
198 once(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
199 once(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
200 once(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
201
202 prependListener(event: string, listener: (...args: any[]) => void): this;
203 prependListener(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
204 prependListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
205 prependListener(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
206
207 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
208 prependOnceListener(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
209 prependOnceListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
210 prependOnceListener(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
211 }
212
213 export interface ServerHttp2Stream extends Http2Stream {
214 additionalHeaders(headers: OutgoingHttpHeaders): void;
215 readonly headersSent: boolean;
216 readonly pushAllowed: boolean;
217 pushStream(headers: OutgoingHttpHeaders, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void;
218 pushStream(headers: OutgoingHttpHeaders, options?: StreamPriorityOptions, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void;
219 respond(headers?: OutgoingHttpHeaders, options?: ServerStreamResponseOptions): void;
220 respondWithFD(fd: number, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptions): void;
221 respondWithFile(path: string, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptionsWithError): void;
222 }
223
224 // Http2Session
225
226 export interface Settings {
227 headerTableSize?: number;
228 enablePush?: boolean;
229 initialWindowSize?: number;
230 maxFrameSize?: number;
231 maxConcurrentStreams?: number;
232 maxHeaderListSize?: number;
233 }
234
235 export interface ClientSessionRequestOptions {
236 endStream?: boolean;
237 exclusive?: boolean;
238 parent?: number;
239 weight?: number;
240 getTrailers?: (trailers: OutgoingHttpHeaders, flags: number) => void;
241 }
242
243 export interface SessionState {
244 effectiveLocalWindowSize?: number;
245 effectiveRecvDataLength?: number;
246 nextStreamID?: number;
247 localWindowSize?: number;
248 lastProcStreamID?: number;
249 remoteWindowSize?: number;
250 outboundQueueSize?: number;
251 deflateDynamicTableSize?: number;
252 inflateDynamicTableSize?: number;
253 }
254
255 export interface Http2Session extends events.EventEmitter {
256 readonly alpnProtocol?: string;
257 close(callback?: () => void): void;
258 readonly closed: boolean;
259 readonly connecting: boolean;
260 destroy(error?: Error, code?: number): void;
261 readonly destroyed: boolean;
262 readonly encrypted?: boolean;
263 goaway(code?: number, lastStreamID?: number, opaqueData?: Buffer | DataView | NodeJS.TypedArray): void;
264 readonly localSettings: Settings;
265 readonly originSet?: string[];
266 readonly pendingSettingsAck: boolean;
267 ping(callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean;
268 ping(payload: Buffer | DataView | NodeJS.TypedArray , callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean;
269 ref(): void;
270 readonly remoteSettings: Settings;
271 rstStream(stream: Http2Stream, code?: number): void;
272 setTimeout(msecs: number, callback?: () => void): void;
273 readonly socket: net.Socket | tls.TLSSocket;
274 readonly state: SessionState;
275 priority(stream: Http2Stream, options: StreamPriorityOptions): void;
276 settings(settings: Settings): void;
277 readonly type: number;
278 unref(): void;
279
280 addListener(event: string, listener: (...args: any[]) => void): this;
281 addListener(event: "close", listener: () => void): this;
282 addListener(event: "error", listener: (err: Error) => void): this;
283 addListener(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this;
284 addListener(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this;
285 addListener(event: "localSettings", listener: (settings: Settings) => void): this;
286 addListener(event: "remoteSettings", listener: (settings: Settings) => void): this;
287 addListener(event: "timeout", listener: () => void): this;
288 addListener(event: "ping", listener: () => void): this;
289
290 emit(event: string | symbol, ...args: any[]): boolean;
291 emit(event: "close"): boolean;
292 emit(event: "error", err: Error): boolean;
293 emit(event: "frameError", frameType: number, errorCode: number, streamID: number): boolean;
294 emit(event: "goaway", errorCode: number, lastStreamID: number, opaqueData: Buffer): boolean;
295 emit(event: "localSettings", settings: Settings): boolean;
296 emit(event: "remoteSettings", settings: Settings): boolean;
297 emit(event: "timeout"): boolean;
298 emit(event: "ping"): boolean;
299
300 on(event: string, listener: (...args: any[]) => void): this;
301 on(event: "close", listener: () => void): this;
302 on(event: "error", listener: (err: Error) => void): this;
303 on(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this;
304 on(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this;
305 on(event: "localSettings", listener: (settings: Settings) => void): this;
306 on(event: "remoteSettings", listener: (settings: Settings) => void): this;
307 on(event: "timeout", listener: () => void): this;
308 on(event: "ping", listener: () => void): this;
309
310 once(event: string, listener: (...args: any[]) => void): this;
311 once(event: "close", listener: () => void): this;
312 once(event: "error", listener: (err: Error) => void): this;
313 once(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this;
314 once(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this;
315 once(event: "localSettings", listener: (settings: Settings) => void): this;
316 once(event: "remoteSettings", listener: (settings: Settings) => void): this;
317 once(event: "timeout", listener: () => void): this;
318 once(event: "ping", listener: () => void): this;
319
320 prependListener(event: string, listener: (...args: any[]) => void): this;
321 prependListener(event: "close", listener: () => void): this;
322 prependListener(event: "error", listener: (err: Error) => void): this;
323 prependListener(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this;
324 prependListener(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this;
325 prependListener(event: "localSettings", listener: (settings: Settings) => void): this;
326 prependListener(event: "remoteSettings", listener: (settings: Settings) => void): this;
327 prependListener(event: "timeout", listener: () => void): this;
328 prependListener(event: "ping", listener: () => void): this;
329
330 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
331 prependOnceListener(event: "close", listener: () => void): this;
332 prependOnceListener(event: "error", listener: (err: Error) => void): this;
333 prependOnceListener(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this;
334 prependOnceListener(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this;
335 prependOnceListener(event: "localSettings", listener: (settings: Settings) => void): this;
336 prependOnceListener(event: "remoteSettings", listener: (settings: Settings) => void): this;
337 prependOnceListener(event: "timeout", listener: () => void): this;
338 prependOnceListener(event: "ping", listener: () => void): this;
339 }
340
341 export interface ClientHttp2Session extends Http2Session {
342 request(headers?: OutgoingHttpHeaders, options?: ClientSessionRequestOptions): ClientHttp2Stream;
343
344 addListener(event: string, listener: (...args: any[]) => void): this;
345 addListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
346 addListener(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
347 addListener(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
348
349 emit(event: string | symbol, ...args: any[]): boolean;
350 emit(event: "altsvc", alt: string, origin: string, stream: number): boolean;
351 emit(event: "connect", session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket): boolean;
352 emit(event: "stream", stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean;
353
354 on(event: string, listener: (...args: any[]) => void): this;
355 on(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
356 on(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
357 on(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
358
359 once(event: string, listener: (...args: any[]) => void): this;
360 once(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
361 once(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
362 once(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
363
364 prependListener(event: string, listener: (...args: any[]) => void): this;
365 prependListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
366 prependListener(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
367 prependListener(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
368
369 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
370 prependOnceListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
371 prependOnceListener(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
372 prependOnceListener(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
373 }
374
375 export interface AlternativeServiceOptions {
376 origin: number | string | url.URL;
377 }
378
379 export interface ServerHttp2Session extends Http2Session {
380 altsvc(alt: string, originOrStream: number | string | url.URL | AlternativeServiceOptions): void;
381 readonly server: Http2Server | Http2SecureServer;
382
383 addListener(event: string, listener: (...args: any[]) => void): this;
384 addListener(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
385 addListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
386
387 emit(event: string | symbol, ...args: any[]): boolean;
388 emit(event: "connect", session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket): boolean;
389 emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;
390
391 on(event: string, listener: (...args: any[]) => void): this;
392 on(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
393 on(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
394
395 once(event: string, listener: (...args: any[]) => void): this;
396 once(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
397 once(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
398
399 prependListener(event: string, listener: (...args: any[]) => void): this;
400 prependListener(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
401 prependListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
402
403 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
404 prependOnceListener(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
405 prependOnceListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
406 }
407
408 // Http2Server
409
410 export interface SessionOptions {
411 maxDeflateDynamicTableSize?: number;
412 maxReservedRemoteStreams?: number;
413 maxSendHeaderBlockLength?: number;
414 paddingStrategy?: number;
415 peerMaxConcurrentStreams?: number;
416 selectPadding?: (frameLen: number, maxFrameLen: number) => number;
417 settings?: Settings;
418 createConnection?: (authority: url.URL, option: SessionOptions) => stream.Duplex;
419 }
420
421 export type ClientSessionOptions = SessionOptions;
422 export type ServerSessionOptions = SessionOptions;
423
424 export interface SecureClientSessionOptions extends ClientSessionOptions, tls.ConnectionOptions { }
425 export interface SecureServerSessionOptions extends ServerSessionOptions, tls.TlsOptions { }
426
427 export interface ServerOptions extends ServerSessionOptions { }
428
429 export interface SecureServerOptions extends SecureServerSessionOptions {
430 allowHTTP1?: boolean;
431 }
432
433 export interface Http2Server extends net.Server {
434 addListener(event: string, listener: (...args: any[]) => void): this;
435 addListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
436 addListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
437 addListener(event: "sessionError", listener: (err: Error) => void): this;
438 addListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
439 addListener(event: "timeout", listener: () => void): this;
440
441 emit(event: string | symbol, ...args: any[]): boolean;
442 emit(event: "checkContinue", request: Http2ServerRequest, response: Http2ServerResponse): boolean;
443 emit(event: "request", request: Http2ServerRequest, response: Http2ServerResponse): boolean;
444 emit(event: "sessionError", err: Error): boolean;
445 emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;
446 emit(event: "timeout"): boolean;
447
448 on(event: string, listener: (...args: any[]) => void): this;
449 on(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
450 on(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
451 on(event: "sessionError", listener: (err: Error) => void): this;
452 on(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
453 on(event: "timeout", listener: () => void): this;
454
455 once(event: string, listener: (...args: any[]) => void): this;
456 once(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
457 once(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
458 once(event: "sessionError", listener: (err: Error) => void): this;
459 once(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
460 once(event: "timeout", listener: () => void): this;
461
462 prependListener(event: string, listener: (...args: any[]) => void): this;
463 prependListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
464 prependListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
465 prependListener(event: "sessionError", listener: (err: Error) => void): this;
466 prependListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
467 prependListener(event: "timeout", listener: () => void): this;
468
469 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
470 prependOnceListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
471 prependOnceListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
472 prependOnceListener(event: "sessionError", listener: (err: Error) => void): this;
473 prependOnceListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
474 prependOnceListener(event: "timeout", listener: () => void): this;
475 }
476
477 export interface Http2SecureServer extends tls.Server {
478 addListener(event: string, listener: (...args: any[]) => void): this;
479 addListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
480 addListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
481 addListener(event: "sessionError", listener: (err: Error) => void): this;
482 addListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
483 addListener(event: "timeout", listener: () => void): this;
484 addListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this;
485
486 emit(event: string | symbol, ...args: any[]): boolean;
487 emit(event: "checkContinue", request: Http2ServerRequest, response: Http2ServerResponse): boolean;
488 emit(event: "request", request: Http2ServerRequest, response: Http2ServerResponse): boolean;
489 emit(event: "sessionError", err: Error): boolean;
490 emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;
491 emit(event: "timeout"): boolean;
492 emit(event: "unknownProtocol", socket: tls.TLSSocket): boolean;
493
494 on(event: string, listener: (...args: any[]) => void): this;
495 on(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
496 on(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
497 on(event: "sessionError", listener: (err: Error) => void): this;
498 on(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
499 on(event: "timeout", listener: () => void): this;
500 on(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this;
501
502 once(event: string, listener: (...args: any[]) => void): this;
503 once(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
504 once(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
505 once(event: "sessionError", listener: (err: Error) => void): this;
506 once(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
507 once(event: "timeout", listener: () => void): this;
508 once(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this;
509
510 prependListener(event: string, listener: (...args: any[]) => void): this;
511 prependListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
512 prependListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
513 prependListener(event: "sessionError", listener: (err: Error) => void): this;
514 prependListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
515 prependListener(event: "timeout", listener: () => void): this;
516 prependListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this;
517
518 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
519 prependOnceListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
520 prependOnceListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
521 prependOnceListener(event: "sessionError", listener: (err: Error) => void): this;
522 prependOnceListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
523 prependOnceListener(event: "timeout", listener: () => void): this;
524 prependOnceListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this;
525 }
526
527 export class Http2ServerRequest extends stream.Readable {
528 private constructor();
529 headers: IncomingHttpHeaders;
530 httpVersion: string;
531 method: string;
532 rawHeaders: string[];
533 rawTrailers: string[];
534 setTimeout(msecs: number, callback?: () => void): void;
535 socket: net.Socket | tls.TLSSocket;
536 stream: ServerHttp2Stream;
537 trailers: IncomingHttpHeaders;
538 url: string;
539
540 addListener(event: string, listener: (...args: any[]) => void): this;
541 addListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
542
543 emit(event: string | symbol, ...args: any[]): boolean;
544 emit(event: "aborted", hadError: boolean, code: number): boolean;
545
546 on(event: string, listener: (...args: any[]) => void): this;
547 on(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
548
549 once(event: string, listener: (...args: any[]) => void): this;
550 once(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
551
552 prependListener(event: string, listener: (...args: any[]) => void): this;
553 prependListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
554
555 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
556 prependOnceListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
557 }
558
559 export class Http2ServerResponse extends stream.Stream {
560 private constructor();
561 addTrailers(trailers: OutgoingHttpHeaders): void;
562 connection: net.Socket | tls.TLSSocket;
563 end(callback?: () => void): void;
564 end(data?: string | Buffer, callback?: () => void): void;
565 end(data?: string | Buffer, encoding?: string, callback?: () => void): void;
566 readonly finished: boolean;
567 getHeader(name: string): string;
568 getHeaderNames(): string[];
569 getHeaders(): OutgoingHttpHeaders;
570 hasHeader(name: string): boolean;
571 readonly headersSent: boolean;
572 removeHeader(name: string): void;
573 sendDate: boolean;
574 setHeader(name: string, value: number | string | string[]): void;
575 setTimeout(msecs: number, callback?: () => void): void;
576 socket: net.Socket | tls.TLSSocket;
577 statusCode: number;
578 statusMessage: '';
579 stream: ServerHttp2Stream;
580 write(chunk: string | Buffer, callback?: (err: Error) => void): boolean;
581 write(chunk: string | Buffer, encoding?: string, callback?: (err: Error) => void): boolean;
582 writeContinue(): void;
583 writeHead(statusCode: number, headers?: OutgoingHttpHeaders): this;
584 writeHead(statusCode: number, statusMessage?: string, headers?: OutgoingHttpHeaders): this;
585 createPushResponse(headers: OutgoingHttpHeaders, callback: (err: Error | null, res: Http2ServerResponse) => void): void;
586
587 addListener(event: string, listener: (...args: any[]) => void): this;
588 addListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
589 addListener(event: "close", listener: () => void): this;
590 addListener(event: "drain", listener: () => void): this;
591 addListener(event: "error", listener: (error: Error) => void): this;
592 addListener(event: "finish", listener: () => void): this;
593
594 emit(event: string | symbol, ...args: any[]): boolean;
595 emit(event: "aborted", hadError: boolean, code: number): boolean;
596 emit(event: "close"): boolean;
597 emit(event: "drain"): boolean;
598 emit(event: "error", error: Error): boolean;
599 emit(event: "finish"): boolean;
600
601 on(event: string, listener: (...args: any[]) => void): this;
602 on(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
603 on(event: "close", listener: () => void): this;
604 on(event: "drain", listener: () => void): this;
605 on(event: "error", listener: (error: Error) => void): this;
606 on(event: "finish", listener: () => void): this;
607
608 once(event: string, listener: (...args: any[]) => void): this;
609 once(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
610 once(event: "close", listener: () => void): this;
611 once(event: "drain", listener: () => void): this;
612 once(event: "error", listener: (error: Error) => void): this;
613 once(event: "finish", listener: () => void): this;
614
615 prependListener(event: string, listener: (...args: any[]) => void): this;
616 prependListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
617 prependListener(event: "close", listener: () => void): this;
618 prependListener(event: "drain", listener: () => void): this;
619 prependListener(event: "error", listener: (error: Error) => void): this;
620 prependListener(event: "finish", listener: () => void): this;
621
622 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
623 prependOnceListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
624 prependOnceListener(event: "close", listener: () => void): this;
625 prependOnceListener(event: "drain", listener: () => void): this;
626 prependOnceListener(event: "error", listener: (error: Error) => void): this;
627 prependOnceListener(event: "finish", listener: () => void): this;
628 }
629
630 // Public API
631
632 export namespace constants {
633 const NGHTTP2_SESSION_SERVER: number;
634 const NGHTTP2_SESSION_CLIENT: number;
635 const NGHTTP2_STREAM_STATE_IDLE: number;
636 const NGHTTP2_STREAM_STATE_OPEN: number;
637 const NGHTTP2_STREAM_STATE_RESERVED_LOCAL: number;
638 const NGHTTP2_STREAM_STATE_RESERVED_REMOTE: number;
639 const NGHTTP2_STREAM_STATE_HALF_CLOSED_LOCAL: number;
640 const NGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTE: number;
641 const NGHTTP2_STREAM_STATE_CLOSED: number;
642 const NGHTTP2_NO_ERROR: number;
643 const NGHTTP2_PROTOCOL_ERROR: number;
644 const NGHTTP2_INTERNAL_ERROR: number;
645 const NGHTTP2_FLOW_CONTROL_ERROR: number;
646 const NGHTTP2_SETTINGS_TIMEOUT: number;
647 const NGHTTP2_STREAM_CLOSED: number;
648 const NGHTTP2_FRAME_SIZE_ERROR: number;
649 const NGHTTP2_REFUSED_STREAM: number;
650 const NGHTTP2_CANCEL: number;
651 const NGHTTP2_COMPRESSION_ERROR: number;
652 const NGHTTP2_CONNECT_ERROR: number;
653 const NGHTTP2_ENHANCE_YOUR_CALM: number;
654 const NGHTTP2_INADEQUATE_SECURITY: number;
655 const NGHTTP2_HTTP_1_1_REQUIRED: number;
656 const NGHTTP2_ERR_FRAME_SIZE_ERROR: number;
657 const NGHTTP2_FLAG_NONE: number;
658 const NGHTTP2_FLAG_END_STREAM: number;
659 const NGHTTP2_FLAG_END_HEADERS: number;
660 const NGHTTP2_FLAG_ACK: number;
661 const NGHTTP2_FLAG_PADDED: number;
662 const NGHTTP2_FLAG_PRIORITY: number;
663 const DEFAULT_SETTINGS_HEADER_TABLE_SIZE: number;
664 const DEFAULT_SETTINGS_ENABLE_PUSH: number;
665 const DEFAULT_SETTINGS_INITIAL_WINDOW_SIZE: number;
666 const DEFAULT_SETTINGS_MAX_FRAME_SIZE: number;
667 const MAX_MAX_FRAME_SIZE: number;
668 const MIN_MAX_FRAME_SIZE: number;
669 const MAX_INITIAL_WINDOW_SIZE: number;
670 const NGHTTP2_DEFAULT_WEIGHT: number;
671 const NGHTTP2_SETTINGS_HEADER_TABLE_SIZE: number;
672 const NGHTTP2_SETTINGS_ENABLE_PUSH: number;
673 const NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS: number;
674 const NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE: number;
675 const NGHTTP2_SETTINGS_MAX_FRAME_SIZE: number;
676 const NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: number;
677 const PADDING_STRATEGY_NONE: number;
678 const PADDING_STRATEGY_MAX: number;
679 const PADDING_STRATEGY_CALLBACK: number;
680 const HTTP2_HEADER_STATUS: string;
681 const HTTP2_HEADER_METHOD: string;
682 const HTTP2_HEADER_AUTHORITY: string;
683 const HTTP2_HEADER_SCHEME: string;
684 const HTTP2_HEADER_PATH: string;
685 const HTTP2_HEADER_ACCEPT_CHARSET: string;
686 const HTTP2_HEADER_ACCEPT_ENCODING: string;
687 const HTTP2_HEADER_ACCEPT_LANGUAGE: string;
688 const HTTP2_HEADER_ACCEPT_RANGES: string;
689 const HTTP2_HEADER_ACCEPT: string;
690 const HTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN: string;
691 const HTTP2_HEADER_AGE: string;
692 const HTTP2_HEADER_ALLOW: string;
693 const HTTP2_HEADER_AUTHORIZATION: string;
694 const HTTP2_HEADER_CACHE_CONTROL: string;
695 const HTTP2_HEADER_CONNECTION: string;
696 const HTTP2_HEADER_CONTENT_DISPOSITION: string;
697 const HTTP2_HEADER_CONTENT_ENCODING: string;
698 const HTTP2_HEADER_CONTENT_LANGUAGE: string;
699 const HTTP2_HEADER_CONTENT_LENGTH: string;
700 const HTTP2_HEADER_CONTENT_LOCATION: string;
701 const HTTP2_HEADER_CONTENT_MD5: string;
702 const HTTP2_HEADER_CONTENT_RANGE: string;
703 const HTTP2_HEADER_CONTENT_TYPE: string;
704 const HTTP2_HEADER_COOKIE: string;
705 const HTTP2_HEADER_DATE: string;
706 const HTTP2_HEADER_ETAG: string;
707 const HTTP2_HEADER_EXPECT: string;
708 const HTTP2_HEADER_EXPIRES: string;
709 const HTTP2_HEADER_FROM: string;
710 const HTTP2_HEADER_HOST: string;
711 const HTTP2_HEADER_IF_MATCH: string;
712 const HTTP2_HEADER_IF_MODIFIED_SINCE: string;
713 const HTTP2_HEADER_IF_NONE_MATCH: string;
714 const HTTP2_HEADER_IF_RANGE: string;
715 const HTTP2_HEADER_IF_UNMODIFIED_SINCE: string;
716 const HTTP2_HEADER_LAST_MODIFIED: string;
717 const HTTP2_HEADER_LINK: string;
718 const HTTP2_HEADER_LOCATION: string;
719 const HTTP2_HEADER_MAX_FORWARDS: string;
720 const HTTP2_HEADER_PREFER: string;
721 const HTTP2_HEADER_PROXY_AUTHENTICATE: string;
722 const HTTP2_HEADER_PROXY_AUTHORIZATION: string;
723 const HTTP2_HEADER_RANGE: string;
724 const HTTP2_HEADER_REFERER: string;
725 const HTTP2_HEADER_REFRESH: string;
726 const HTTP2_HEADER_RETRY_AFTER: string;
727 const HTTP2_HEADER_SERVER: string;
728 const HTTP2_HEADER_SET_COOKIE: string;
729 const HTTP2_HEADER_STRICT_TRANSPORT_SECURITY: string;
730 const HTTP2_HEADER_TRANSFER_ENCODING: string;
731 const HTTP2_HEADER_TE: string;
732 const HTTP2_HEADER_UPGRADE: string;
733 const HTTP2_HEADER_USER_AGENT: string;
734 const HTTP2_HEADER_VARY: string;
735 const HTTP2_HEADER_VIA: string;
736 const HTTP2_HEADER_WWW_AUTHENTICATE: string;
737 const HTTP2_HEADER_HTTP2_SETTINGS: string;
738 const HTTP2_HEADER_KEEP_ALIVE: string;
739 const HTTP2_HEADER_PROXY_CONNECTION: string;
740 const HTTP2_METHOD_ACL: string;
741 const HTTP2_METHOD_BASELINE_CONTROL: string;
742 const HTTP2_METHOD_BIND: string;
743 const HTTP2_METHOD_CHECKIN: string;
744 const HTTP2_METHOD_CHECKOUT: string;
745 const HTTP2_METHOD_CONNECT: string;
746 const HTTP2_METHOD_COPY: string;
747 const HTTP2_METHOD_DELETE: string;
748 const HTTP2_METHOD_GET: string;
749 const HTTP2_METHOD_HEAD: string;
750 const HTTP2_METHOD_LABEL: string;
751 const HTTP2_METHOD_LINK: string;
752 const HTTP2_METHOD_LOCK: string;
753 const HTTP2_METHOD_MERGE: string;
754 const HTTP2_METHOD_MKACTIVITY: string;
755 const HTTP2_METHOD_MKCALENDAR: string;
756 const HTTP2_METHOD_MKCOL: string;
757 const HTTP2_METHOD_MKREDIRECTREF: string;
758 const HTTP2_METHOD_MKWORKSPACE: string;
759 const HTTP2_METHOD_MOVE: string;
760 const HTTP2_METHOD_OPTIONS: string;
761 const HTTP2_METHOD_ORDERPATCH: string;
762 const HTTP2_METHOD_PATCH: string;
763 const HTTP2_METHOD_POST: string;
764 const HTTP2_METHOD_PRI: string;
765 const HTTP2_METHOD_PROPFIND: string;
766 const HTTP2_METHOD_PROPPATCH: string;
767 const HTTP2_METHOD_PUT: string;
768 const HTTP2_METHOD_REBIND: string;
769 const HTTP2_METHOD_REPORT: string;
770 const HTTP2_METHOD_SEARCH: string;
771 const HTTP2_METHOD_TRACE: string;
772 const HTTP2_METHOD_UNBIND: string;
773 const HTTP2_METHOD_UNCHECKOUT: string;
774 const HTTP2_METHOD_UNLINK: string;
775 const HTTP2_METHOD_UNLOCK: string;
776 const HTTP2_METHOD_UPDATE: string;
777 const HTTP2_METHOD_UPDATEREDIRECTREF: string;
778 const HTTP2_METHOD_VERSION_CONTROL: string;
779 const HTTP_STATUS_CONTINUE: number;
780 const HTTP_STATUS_SWITCHING_PROTOCOLS: number;
781 const HTTP_STATUS_PROCESSING: number;
782 const HTTP_STATUS_OK: number;
783 const HTTP_STATUS_CREATED: number;
784 const HTTP_STATUS_ACCEPTED: number;
785 const HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION: number;
786 const HTTP_STATUS_NO_CONTENT: number;
787 const HTTP_STATUS_RESET_CONTENT: number;
788 const HTTP_STATUS_PARTIAL_CONTENT: number;
789 const HTTP_STATUS_MULTI_STATUS: number;
790 const HTTP_STATUS_ALREADY_REPORTED: number;
791 const HTTP_STATUS_IM_USED: number;
792 const HTTP_STATUS_MULTIPLE_CHOICES: number;
793 const HTTP_STATUS_MOVED_PERMANENTLY: number;
794 const HTTP_STATUS_FOUND: number;
795 const HTTP_STATUS_SEE_OTHER: number;
796 const HTTP_STATUS_NOT_MODIFIED: number;
797 const HTTP_STATUS_USE_PROXY: number;
798 const HTTP_STATUS_TEMPORARY_REDIRECT: number;
799 const HTTP_STATUS_PERMANENT_REDIRECT: number;
800 const HTTP_STATUS_BAD_REQUEST: number;
801 const HTTP_STATUS_UNAUTHORIZED: number;
802 const HTTP_STATUS_PAYMENT_REQUIRED: number;
803 const HTTP_STATUS_FORBIDDEN: number;
804 const HTTP_STATUS_NOT_FOUND: number;
805 const HTTP_STATUS_METHOD_NOT_ALLOWED: number;
806 const HTTP_STATUS_NOT_ACCEPTABLE: number;
807 const HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED: number;
808 const HTTP_STATUS_REQUEST_TIMEOUT: number;
809 const HTTP_STATUS_CONFLICT: number;
810 const HTTP_STATUS_GONE: number;
811 const HTTP_STATUS_LENGTH_REQUIRED: number;
812 const HTTP_STATUS_PRECONDITION_FAILED: number;
813 const HTTP_STATUS_PAYLOAD_TOO_LARGE: number;
814 const HTTP_STATUS_URI_TOO_LONG: number;
815 const HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: number;
816 const HTTP_STATUS_RANGE_NOT_SATISFIABLE: number;
817 const HTTP_STATUS_EXPECTATION_FAILED: number;
818 const HTTP_STATUS_TEAPOT: number;
819 const HTTP_STATUS_MISDIRECTED_REQUEST: number;
820 const HTTP_STATUS_UNPROCESSABLE_ENTITY: number;
821 const HTTP_STATUS_LOCKED: number;
822 const HTTP_STATUS_FAILED_DEPENDENCY: number;
823 const HTTP_STATUS_UNORDERED_COLLECTION: number;
824 const HTTP_STATUS_UPGRADE_REQUIRED: number;
825 const HTTP_STATUS_PRECONDITION_REQUIRED: number;
826 const HTTP_STATUS_TOO_MANY_REQUESTS: number;
827 const HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE: number;
828 const HTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONS: number;
829 const HTTP_STATUS_INTERNAL_SERVER_ERROR: number;
830 const HTTP_STATUS_NOT_IMPLEMENTED: number;
831 const HTTP_STATUS_BAD_GATEWAY: number;
832 const HTTP_STATUS_SERVICE_UNAVAILABLE: number;
833 const HTTP_STATUS_GATEWAY_TIMEOUT: number;
834 const HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED: number;
835 const HTTP_STATUS_VARIANT_ALSO_NEGOTIATES: number;
836 const HTTP_STATUS_INSUFFICIENT_STORAGE: number;
837 const HTTP_STATUS_LOOP_DETECTED: number;
838 const HTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDED: number;
839 const HTTP_STATUS_NOT_EXTENDED: number;
840 const HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED: number;
841 }
842
843 export function getDefaultSettings(): Settings;
844 export function getPackedSettings(settings: Settings): Settings;
845 export function getUnpackedSettings(buf: Buffer | Uint8Array): Settings;
846
847 export function createServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server;
848 export function createServer(options: ServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server;
849
850 export function createSecureServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer;
851 export function createSecureServer(options: SecureServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer;
852
853 export function connect(authority: string | url.URL, listener?: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): ClientHttp2Session;
854 export function connect(
855 authority: string | url.URL,
856 options?: ClientSessionOptions | SecureClientSessionOptions,
857 listener?: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void,
858 ): ClientHttp2Session;
859}