UNPKG

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