@idlebox/stripe-node-types 24.0.14 → 24.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +1 -1
  2. package/assert/strict.d.ts +98 -1
  3. package/assert.d.ts +147 -248
  4. package/async_hooks.d.ts +5 -5
  5. package/buffer.buffer.d.ts +9 -6
  6. package/buffer.d.ts +49 -169
  7. package/child_process.d.ts +102 -223
  8. package/cluster.d.ts +236 -329
  9. package/console.d.ts +45 -346
  10. package/constants.d.ts +0 -1
  11. package/crypto.d.ts +698 -1149
  12. package/dgram.d.ts +15 -50
  13. package/diagnostics_channel.d.ts +1 -3
  14. package/dns.d.ts +135 -131
  15. package/domain.d.ts +10 -14
  16. package/events.d.ts +846 -722
  17. package/fs/promises.d.ts +102 -53
  18. package/fs.d.ts +714 -484
  19. package/globals.d.ts +130 -347
  20. package/globals.typedarray.d.ts +79 -0
  21. package/http.d.ts +343 -246
  22. package/http2.d.ts +563 -711
  23. package/https.d.ts +70 -216
  24. package/index.d.ts +24 -3
  25. package/inspector/promises.d.ts +54 -0
  26. package/inspector.d.ts +167 -3938
  27. package/inspector.generated.d.ts +4242 -0
  28. package/module.d.ts +45 -95
  29. package/net.d.ts +87 -186
  30. package/os.d.ts +17 -6
  31. package/package.json +3 -8
  32. package/path/posix.d.ts +20 -0
  33. package/path/win32.d.ts +20 -0
  34. package/path.d.ts +117 -122
  35. package/perf_hooks.d.ts +295 -644
  36. package/process.d.ts +177 -138
  37. package/punycode.d.ts +2 -2
  38. package/querystring.d.ts +1 -1
  39. package/quic.d.ts +926 -0
  40. package/readline/promises.d.ts +1 -1
  41. package/readline.d.ts +65 -118
  42. package/repl.d.ts +83 -96
  43. package/sea.d.ts +10 -1
  44. package/sqlite.d.ts +262 -13
  45. package/stream/consumers.d.ts +7 -7
  46. package/stream/promises.d.ts +133 -12
  47. package/stream/web.d.ts +173 -495
  48. package/stream.d.ts +593 -490
  49. package/string_decoder.d.ts +3 -3
  50. package/test/reporters.d.ts +112 -0
  51. package/test.d.ts +223 -199
  52. package/timers/promises.d.ts +1 -1
  53. package/timers.d.ts +1 -129
  54. package/tls.d.ts +148 -163
  55. package/trace_events.d.ts +6 -6
  56. package/ts5.6/buffer.buffer.d.ts +10 -8
  57. package/ts5.6/globals.typedarray.d.ts +16 -0
  58. package/ts5.6/index.d.ts +24 -3
  59. package/ts5.7/index.d.ts +24 -3
  60. package/tty.d.ts +55 -13
  61. package/url.d.ts +92 -587
  62. package/util/types.d.ts +571 -0
  63. package/util.d.ts +143 -792
  64. package/v8.d.ts +67 -7
  65. package/vm.d.ts +252 -108
  66. package/wasi.d.ts +23 -2
  67. package/web-globals/abortcontroller.d.ts +75 -0
  68. package/web-globals/blob.d.ts +39 -0
  69. package/{ts5.1/compatibility/disposable.d.ts → web-globals/console.d.ts} +6 -9
  70. package/web-globals/crypto.d.ts +55 -0
  71. package/web-globals/domexception.d.ts +84 -0
  72. package/web-globals/encoding.d.ts +27 -0
  73. package/{dom-events.d.ts → web-globals/events.d.ts} +57 -50
  74. package/web-globals/fetch.d.ts +70 -0
  75. package/web-globals/importmeta.d.ts +29 -0
  76. package/web-globals/messaging.d.ts +39 -0
  77. package/web-globals/navigator.d.ts +41 -0
  78. package/web-globals/performance.d.ts +61 -0
  79. package/web-globals/storage.d.ts +40 -0
  80. package/web-globals/streams.d.ts +131 -0
  81. package/web-globals/timers.d.ts +60 -0
  82. package/web-globals/url.d.ts +40 -0
  83. package/worker_threads.d.ts +291 -349
  84. package/zlib.d.ts +44 -94
  85. package/ts5.1/index.d.ts +0 -115
package/http2.d.ts CHANGED
@@ -21,11 +21,12 @@
21
21
  * import http2 from 'node:http2';
22
22
  * ```
23
23
  * @since v8.4.0
24
- * @see [source](https://github.com/nodejs/node/blob/v24.x/lib/http2.js)
24
+ * @see [source](https://github.com/nodejs/node/blob/v25.x/lib/http2.js)
25
25
  */
26
26
 
27
27
  declare module "node:http2" {
28
- import EventEmitter = require('node:events');
28
+ import { NonSharedBuffer } from 'node:buffer';
29
+ import { InternalEventEmitter } from 'node:events';
29
30
  import * as fs from '_not-use-node-type_fs';
30
31
  import * as net from 'node:net';
31
32
  import * as stream from 'node:stream';
@@ -37,50 +38,56 @@ declare module "node:http2" {
37
38
  OutgoingHttpHeaders,
38
39
  ServerResponse,
39
40
  } from 'node:http';
40
- export { OutgoingHttpHeaders } from "node:http";
41
- export interface IncomingHttpStatusHeader {
41
+ interface IncomingHttpStatusHeader {
42
42
  ":status"?: number | undefined;
43
43
  }
44
- export interface IncomingHttpHeaders extends Http1IncomingHttpHeaders {
44
+ interface IncomingHttpHeaders extends Http1IncomingHttpHeaders {
45
45
  ":path"?: string | undefined;
46
46
  ":method"?: string | undefined;
47
47
  ":authority"?: string | undefined;
48
48
  ":scheme"?: string | undefined;
49
49
  }
50
50
  // Http2Stream
51
- export interface StreamPriorityOptions {
52
- exclusive?: boolean | undefined;
53
- parent?: number | undefined;
54
- weight?: number | undefined;
55
- silent?: boolean | undefined;
56
- }
57
- export interface StreamState {
51
+ interface StreamState {
58
52
  localWindowSize?: number | undefined;
59
53
  state?: number | undefined;
60
54
  localClose?: number | undefined;
61
55
  remoteClose?: number | undefined;
56
+ /** @deprecated */
62
57
  sumDependencyWeight?: number | undefined;
58
+ /** @deprecated */
63
59
  weight?: number | undefined;
64
60
  }
65
- export interface ServerStreamResponseOptions {
61
+ interface ServerStreamResponseOptions {
66
62
  endStream?: boolean | undefined;
67
63
  waitForTrailers?: boolean | undefined;
68
64
  }
69
- export interface StatOptions {
65
+ interface StatOptions {
70
66
  offset: number;
71
67
  length: number;
72
68
  }
73
- export interface ServerStreamFileResponseOptions {
74
- // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
75
- statCheck?(stats: fs.Stats, headers: OutgoingHttpHeaders, statOptions: StatOptions): void | boolean;
69
+ interface ServerStreamFileResponseOptions {
70
+ statCheck?:
71
+ | ((stats: fs.Stats, headers: OutgoingHttpHeaders, statOptions: StatOptions) => void)
72
+ | undefined;
76
73
  waitForTrailers?: boolean | undefined;
77
74
  offset?: number | undefined;
78
75
  length?: number | undefined;
79
76
  }
80
- export interface ServerStreamFileResponseOptionsWithError extends ServerStreamFileResponseOptions {
81
- onError?(err: NodeJS.ErrnoException): void;
77
+ interface ServerStreamFileResponseOptionsWithError extends ServerStreamFileResponseOptions {
78
+ onError?: ((err: NodeJS.ErrnoException) => void) | undefined;
82
79
  }
83
- export interface Http2Stream extends stream.Duplex {
80
+ interface Http2StreamEventMap extends stream.DuplexEventMap {
81
+ "aborted": [];
82
+ "data": [chunk: string | NonSharedBuffer];
83
+ "frameError": [type: number, code: number, id: number];
84
+ "ready": [];
85
+ "streamClosed": [code: number];
86
+ "timeout": [];
87
+ "trailers": [trailers: IncomingHttpHeaders, flags: number];
88
+ "wantTrailers": [];
89
+ }
90
+ interface Http2Stream extends stream.Duplex {
84
91
  /**
85
92
  * Set to `true` if the `Http2Stream` instance was aborted abnormally. When set,
86
93
  * the `'aborted'` event will have been emitted.
@@ -167,10 +174,9 @@ declare module "node:http2" {
167
174
  */
168
175
  close(code?: number, callback?: () => void): void;
169
176
  /**
170
- * Updates the priority for this `Http2Stream` instance.
171
- * @since v8.4.0
177
+ * @deprecated Priority signaling is no longer supported in Node.js.
172
178
  */
173
- priority(options: StreamPriorityOptions): void;
179
+ priority(options: unknown): void;
174
180
  /**
175
181
  * ```js
176
182
  * import http2 from 'node:http2';
@@ -209,160 +215,122 @@ declare module "node:http2" {
209
215
  * @since v10.0.0
210
216
  */
211
217
  sendTrailers(headers: OutgoingHttpHeaders): void;
212
- addListener(event: "aborted", listener: () => void): this;
213
- addListener(event: "close", listener: () => void): this;
214
- addListener(event: "data", listener: (chunk: Buffer | string) => void): this;
215
- addListener(event: "drain", listener: () => void): this;
216
- addListener(event: "end", listener: () => void): this;
217
- addListener(event: "error", listener: (err: Error) => void): this;
218
- addListener(event: "finish", listener: () => void): this;
219
- addListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this;
220
- addListener(event: "pipe", listener: (src: stream.Readable) => void): this;
221
- addListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
222
- addListener(event: "streamClosed", listener: (code: number) => void): this;
223
- addListener(event: "timeout", listener: () => void): this;
224
- addListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;
225
- addListener(event: "wantTrailers", listener: () => void): this;
226
- addListener(event: string | symbol, listener: (...args: any[]) => void): this;
227
- emit(event: "aborted"): boolean;
228
- emit(event: "close"): boolean;
229
- emit(event: "data", chunk: Buffer | string): boolean;
230
- emit(event: "drain"): boolean;
231
- emit(event: "end"): boolean;
232
- emit(event: "error", err: Error): boolean;
233
- emit(event: "finish"): boolean;
234
- emit(event: "frameError", frameType: number, errorCode: number): boolean;
235
- emit(event: "pipe", src: stream.Readable): boolean;
236
- emit(event: "unpipe", src: stream.Readable): boolean;
237
- emit(event: "streamClosed", code: number): boolean;
238
- emit(event: "timeout"): boolean;
239
- emit(event: "trailers", trailers: IncomingHttpHeaders, flags: number): boolean;
240
- emit(event: "wantTrailers"): boolean;
241
- emit(event: string | symbol, ...args: any[]): boolean;
242
- on(event: "aborted", listener: () => void): this;
243
- on(event: "close", listener: () => void): this;
244
- on(event: "data", listener: (chunk: Buffer | string) => void): this;
245
- on(event: "drain", listener: () => void): this;
246
- on(event: "end", listener: () => void): this;
247
- on(event: "error", listener: (err: Error) => void): this;
248
- on(event: "finish", listener: () => void): this;
249
- on(event: "frameError", listener: (frameType: number, errorCode: number) => void): this;
250
- on(event: "pipe", listener: (src: stream.Readable) => void): this;
251
- on(event: "unpipe", listener: (src: stream.Readable) => void): this;
252
- on(event: "streamClosed", listener: (code: number) => void): this;
253
- on(event: "timeout", listener: () => void): this;
254
- on(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;
255
- on(event: "wantTrailers", listener: () => void): this;
256
- on(event: string | symbol, listener: (...args: any[]) => void): this;
257
- once(event: "aborted", listener: () => void): this;
258
- once(event: "close", listener: () => void): this;
259
- once(event: "data", listener: (chunk: Buffer | string) => void): this;
260
- once(event: "drain", listener: () => void): this;
261
- once(event: "end", listener: () => void): this;
262
- once(event: "error", listener: (err: Error) => void): this;
263
- once(event: "finish", listener: () => void): this;
264
- once(event: "frameError", listener: (frameType: number, errorCode: number) => void): this;
265
- once(event: "pipe", listener: (src: stream.Readable) => void): this;
266
- once(event: "unpipe", listener: (src: stream.Readable) => void): this;
267
- once(event: "streamClosed", listener: (code: number) => void): this;
268
- once(event: "timeout", listener: () => void): this;
269
- once(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;
270
- once(event: "wantTrailers", listener: () => void): this;
271
- once(event: string | symbol, listener: (...args: any[]) => void): this;
272
- prependListener(event: "aborted", listener: () => void): this;
273
- prependListener(event: "close", listener: () => void): this;
274
- prependListener(event: "data", listener: (chunk: Buffer | string) => void): this;
275
- prependListener(event: "drain", listener: () => void): this;
276
- prependListener(event: "end", listener: () => void): this;
277
- prependListener(event: "error", listener: (err: Error) => void): this;
278
- prependListener(event: "finish", listener: () => void): this;
279
- prependListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this;
280
- prependListener(event: "pipe", listener: (src: stream.Readable) => void): this;
281
- prependListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
282
- prependListener(event: "streamClosed", listener: (code: number) => void): this;
283
- prependListener(event: "timeout", listener: () => void): this;
284
- prependListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;
285
- prependListener(event: "wantTrailers", listener: () => void): this;
286
- prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
287
- prependOnceListener(event: "aborted", listener: () => void): this;
288
- prependOnceListener(event: "close", listener: () => void): this;
289
- prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this;
290
- prependOnceListener(event: "drain", listener: () => void): this;
291
- prependOnceListener(event: "end", listener: () => void): this;
292
- prependOnceListener(event: "error", listener: (err: Error) => void): this;
293
- prependOnceListener(event: "finish", listener: () => void): this;
294
- prependOnceListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this;
295
- prependOnceListener(event: "pipe", listener: (src: stream.Readable) => void): this;
296
- prependOnceListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
297
- prependOnceListener(event: "streamClosed", listener: (code: number) => void): this;
298
- prependOnceListener(event: "timeout", listener: () => void): this;
299
- prependOnceListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;
300
- prependOnceListener(event: "wantTrailers", listener: () => void): this;
301
- prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
218
+ // #region InternalEventEmitter
219
+ addListener<E extends keyof Http2StreamEventMap>(
220
+ eventName: E,
221
+ listener: (...args: Http2StreamEventMap[E]) => void,
222
+ ): this;
223
+ addListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
224
+ emit<E extends keyof Http2StreamEventMap>(eventName: E, ...args: Http2StreamEventMap[E]): boolean;
225
+ emit(eventName: string | symbol, ...args: any[]): boolean;
226
+ listenerCount<E extends keyof Http2StreamEventMap>(
227
+ eventName: E,
228
+ listener?: (...args: Http2StreamEventMap[E]) => void,
229
+ ): number;
230
+ listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number;
231
+ listeners<E extends keyof Http2StreamEventMap>(eventName: E): ((...args: Http2StreamEventMap[E]) => void)[];
232
+ listeners(eventName: string | symbol): ((...args: any[]) => void)[];
233
+ off<E extends keyof Http2StreamEventMap>(
234
+ eventName: E,
235
+ listener: (...args: Http2StreamEventMap[E]) => void,
236
+ ): this;
237
+ off(eventName: string | symbol, listener: (...args: any[]) => void): this;
238
+ on<E extends keyof Http2StreamEventMap>(
239
+ eventName: E,
240
+ listener: (...args: Http2StreamEventMap[E]) => void,
241
+ ): this;
242
+ on(eventName: string | symbol, listener: (...args: any[]) => void): this;
243
+ once<E extends keyof Http2StreamEventMap>(
244
+ eventName: E,
245
+ listener: (...args: Http2StreamEventMap[E]) => void,
246
+ ): this;
247
+ once(eventName: string | symbol, listener: (...args: any[]) => void): this;
248
+ prependListener<E extends keyof Http2StreamEventMap>(
249
+ eventName: E,
250
+ listener: (...args: Http2StreamEventMap[E]) => void,
251
+ ): this;
252
+ prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
253
+ prependOnceListener<E extends keyof Http2StreamEventMap>(
254
+ eventName: E,
255
+ listener: (...args: Http2StreamEventMap[E]) => void,
256
+ ): this;
257
+ prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
258
+ rawListeners<E extends keyof Http2StreamEventMap>(eventName: E): ((...args: Http2StreamEventMap[E]) => void)[];
259
+ rawListeners(eventName: string | symbol): ((...args: any[]) => void)[];
260
+ // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
261
+ removeAllListeners<E extends keyof Http2StreamEventMap>(eventName?: E): this;
262
+ removeAllListeners(eventName?: string | symbol): this;
263
+ removeListener<E extends keyof Http2StreamEventMap>(
264
+ eventName: E,
265
+ listener: (...args: Http2StreamEventMap[E]) => void,
266
+ ): this;
267
+ removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
268
+ // #endregion
302
269
  }
303
- export interface ClientHttp2Stream extends Http2Stream {
304
- addListener(event: "continue", listener: () => {}): this;
305
- addListener(
306
- event: "headers",
307
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
308
- ): this;
309
- addListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
310
- addListener(
311
- event: "response",
312
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
313
- ): this;
314
- addListener(event: string | symbol, listener: (...args: any[]) => void): this;
315
- emit(event: "continue"): boolean;
316
- emit(event: "headers", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean;
317
- emit(event: "push", headers: IncomingHttpHeaders, flags: number): boolean;
318
- emit(event: "response", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean;
319
- emit(event: string | symbol, ...args: any[]): boolean;
320
- on(event: "continue", listener: () => {}): this;
321
- on(
322
- event: "headers",
323
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
324
- ): this;
325
- on(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
326
- on(
327
- event: "response",
328
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
329
- ): this;
330
- on(event: string | symbol, listener: (...args: any[]) => void): this;
331
- once(event: "continue", listener: () => {}): this;
332
- once(
333
- event: "headers",
334
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
335
- ): this;
336
- once(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
337
- once(
338
- event: "response",
339
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
340
- ): this;
341
- once(event: string | symbol, listener: (...args: any[]) => void): this;
342
- prependListener(event: "continue", listener: () => {}): this;
343
- prependListener(
344
- event: "headers",
345
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
346
- ): this;
347
- prependListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
348
- prependListener(
349
- event: "response",
350
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
351
- ): this;
352
- prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
353
- prependOnceListener(event: "continue", listener: () => {}): this;
354
- prependOnceListener(
355
- event: "headers",
356
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
357
- ): this;
358
- prependOnceListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
359
- prependOnceListener(
360
- event: "response",
361
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
362
- ): this;
363
- prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
270
+ interface ClientHttp2StreamEventMap extends Http2StreamEventMap {
271
+ "continue": [];
272
+ "headers": [headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number, rawHeaders: string[]];
273
+ "push": [headers: IncomingHttpHeaders, flags: number];
274
+ "response": [headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number, rawHeaders: string[]];
364
275
  }
365
- export interface ServerHttp2Stream extends Http2Stream {
276
+ interface ClientHttp2Stream extends Http2Stream {
277
+ // #region InternalEventEmitter
278
+ addListener<E extends keyof ClientHttp2StreamEventMap>(
279
+ eventName: E,
280
+ listener: (...args: ClientHttp2StreamEventMap[E]) => void,
281
+ ): this;
282
+ addListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
283
+ emit<E extends keyof ClientHttp2StreamEventMap>(eventName: E, ...args: ClientHttp2StreamEventMap[E]): boolean;
284
+ emit(eventName: string | symbol, ...args: any[]): boolean;
285
+ listenerCount<E extends keyof ClientHttp2StreamEventMap>(
286
+ eventName: E,
287
+ listener?: (...args: ClientHttp2StreamEventMap[E]) => void,
288
+ ): number;
289
+ listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number;
290
+ listeners<E extends keyof ClientHttp2StreamEventMap>(
291
+ eventName: E,
292
+ ): ((...args: ClientHttp2StreamEventMap[E]) => void)[];
293
+ listeners(eventName: string | symbol): ((...args: any[]) => void)[];
294
+ off<E extends keyof ClientHttp2StreamEventMap>(
295
+ eventName: E,
296
+ listener: (...args: ClientHttp2StreamEventMap[E]) => void,
297
+ ): this;
298
+ off(eventName: string | symbol, listener: (...args: any[]) => void): this;
299
+ on<E extends keyof ClientHttp2StreamEventMap>(
300
+ eventName: E,
301
+ listener: (...args: ClientHttp2StreamEventMap[E]) => void,
302
+ ): this;
303
+ on(eventName: string | symbol, listener: (...args: any[]) => void): this;
304
+ once<E extends keyof ClientHttp2StreamEventMap>(
305
+ eventName: E,
306
+ listener: (...args: ClientHttp2StreamEventMap[E]) => void,
307
+ ): this;
308
+ once(eventName: string | symbol, listener: (...args: any[]) => void): this;
309
+ prependListener<E extends keyof ClientHttp2StreamEventMap>(
310
+ eventName: E,
311
+ listener: (...args: ClientHttp2StreamEventMap[E]) => void,
312
+ ): this;
313
+ prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
314
+ prependOnceListener<E extends keyof ClientHttp2StreamEventMap>(
315
+ eventName: E,
316
+ listener: (...args: ClientHttp2StreamEventMap[E]) => void,
317
+ ): this;
318
+ prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
319
+ rawListeners<E extends keyof ClientHttp2StreamEventMap>(
320
+ eventName: E,
321
+ ): ((...args: ClientHttp2StreamEventMap[E]) => void)[];
322
+ rawListeners(eventName: string | symbol): ((...args: any[]) => void)[];
323
+ // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
324
+ removeAllListeners<E extends keyof ClientHttp2StreamEventMap>(eventName?: E): this;
325
+ removeAllListeners(eventName?: string | symbol): this;
326
+ removeListener<E extends keyof ClientHttp2StreamEventMap>(
327
+ eventName: E,
328
+ listener: (...args: ClientHttp2StreamEventMap[E]) => void,
329
+ ): this;
330
+ removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
331
+ // #endregion
332
+ }
333
+ interface ServerHttp2Stream extends Http2Stream {
366
334
  /**
367
335
  * True if headers were sent, false otherwise (read-only).
368
336
  * @since v8.4.0
@@ -411,7 +379,7 @@ declare module "node:http2" {
411
379
  ): void;
412
380
  pushStream(
413
381
  headers: OutgoingHttpHeaders,
414
- options?: StreamPriorityOptions,
382
+ options?: Pick<ClientSessionRequestOptions, "exclusive" | "parent">,
415
383
  callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void,
416
384
  ): void;
417
385
  /**
@@ -444,7 +412,7 @@ declare module "node:http2" {
444
412
  * ```
445
413
  * @since v8.4.0
446
414
  */
447
- respond(headers?: OutgoingHttpHeaders, options?: ServerStreamResponseOptions): void;
415
+ respond(headers?: OutgoingHttpHeaders | readonly string[], options?: ServerStreamResponseOptions): void;
448
416
  /**
449
417
  * Initiates a response whose data is read from the given file descriptor. No
450
418
  * validation is performed on the given file descriptor. If an error occurs while
@@ -632,7 +600,7 @@ declare module "node:http2" {
632
600
  ): void;
633
601
  }
634
602
  // Http2Session
635
- export interface Settings {
603
+ interface Settings {
636
604
  headerTableSize?: number | undefined;
637
605
  enablePush?: boolean | undefined;
638
606
  initialWindowSize?: number | undefined;
@@ -641,15 +609,14 @@ declare module "node:http2" {
641
609
  maxHeaderListSize?: number | undefined;
642
610
  enableConnectProtocol?: boolean | undefined;
643
611
  }
644
- export interface ClientSessionRequestOptions {
612
+ interface ClientSessionRequestOptions {
645
613
  endStream?: boolean | undefined;
646
614
  exclusive?: boolean | undefined;
647
615
  parent?: number | undefined;
648
- weight?: number | undefined;
649
616
  waitForTrailers?: boolean | undefined;
650
617
  signal?: AbortSignal | undefined;
651
618
  }
652
- export interface SessionState {
619
+ interface SessionState {
653
620
  effectiveLocalWindowSize?: number | undefined;
654
621
  effectiveRecvDataLength?: number | undefined;
655
622
  nextStreamID?: number | undefined;
@@ -660,7 +627,24 @@ declare module "node:http2" {
660
627
  deflateDynamicTableSize?: number | undefined;
661
628
  inflateDynamicTableSize?: number | undefined;
662
629
  }
663
- export interface Http2Session extends EventEmitter {
630
+ interface Http2SessionEventMap {
631
+ "close": [];
632
+ "connect": [session: Http2Session, socket: net.Socket | tls.TLSSocket];
633
+ "error": [err: Error];
634
+ "frameError": [type: number, code: number, id: number];
635
+ "goaway": [errorCode: number, lastStreamID: number, opaqueData?: NonSharedBuffer];
636
+ "localSettings": [settings: Settings];
637
+ "ping": [payload: Buffer];
638
+ "remoteSettings": [settings: Settings];
639
+ "stream": [
640
+ stream: Http2Stream,
641
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
642
+ flags: number,
643
+ rawHeaders: string[],
644
+ ];
645
+ "timeout": [];
646
+ }
647
+ interface Http2Session extends InternalEventEmitter<Http2SessionEventMap> {
664
648
  /**
665
649
  * Value will be `undefined` if the `Http2Session` is not yet connected to a
666
650
  * socket, `h2c` if the `Http2Session` is not connected to a `TLSSocket`, or
@@ -805,10 +789,10 @@ declare module "node:http2" {
805
789
  * @since v8.9.3
806
790
  * @param payload Optional ping payload.
807
791
  */
808
- ping(callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean;
792
+ ping(callback: (err: Error | null, duration: number, payload: NonSharedBuffer) => void): boolean;
809
793
  ping(
810
794
  payload: NodeJS.ArrayBufferView,
811
- callback: (err: Error | null, duration: number, payload: Buffer) => void,
795
+ callback: (err: Error | null, duration: number, payload: NonSharedBuffer) => void,
812
796
  ): boolean;
813
797
  /**
814
798
  * Calls `ref()` on this `Http2Session` instance's underlying `net.Socket`.
@@ -862,80 +846,19 @@ declare module "node:http2" {
862
846
  * @since v9.4.0
863
847
  */
864
848
  unref(): void;
865
- addListener(event: "close", listener: () => void): this;
866
- addListener(event: "error", listener: (err: Error) => void): this;
867
- addListener(
868
- event: "frameError",
869
- listener: (frameType: number, errorCode: number, streamID: number) => void,
870
- ): this;
871
- addListener(
872
- event: "goaway",
873
- listener: (errorCode: number, lastStreamID: number, opaqueData?: Buffer) => void,
874
- ): this;
875
- addListener(event: "localSettings", listener: (settings: Settings) => void): this;
876
- addListener(event: "ping", listener: () => void): this;
877
- addListener(event: "remoteSettings", listener: (settings: Settings) => void): this;
878
- addListener(event: "timeout", listener: () => void): this;
879
- addListener(event: string | symbol, listener: (...args: any[]) => void): this;
880
- emit(event: "close"): boolean;
881
- emit(event: "error", err: Error): boolean;
882
- emit(event: "frameError", frameType: number, errorCode: number, streamID: number): boolean;
883
- emit(event: "goaway", errorCode: number, lastStreamID: number, opaqueData?: Buffer): boolean;
884
- emit(event: "localSettings", settings: Settings): boolean;
885
- emit(event: "ping"): boolean;
886
- emit(event: "remoteSettings", settings: Settings): boolean;
887
- emit(event: "timeout"): boolean;
888
- emit(event: string | symbol, ...args: any[]): boolean;
889
- on(event: "close", listener: () => void): this;
890
- on(event: "error", listener: (err: Error) => void): this;
891
- on(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this;
892
- on(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData?: Buffer) => void): this;
893
- on(event: "localSettings", listener: (settings: Settings) => void): this;
894
- on(event: "ping", listener: () => void): this;
895
- on(event: "remoteSettings", listener: (settings: Settings) => void): this;
896
- on(event: "timeout", listener: () => void): this;
897
- on(event: string | symbol, listener: (...args: any[]) => void): this;
898
- once(event: "close", listener: () => void): this;
899
- once(event: "error", listener: (err: Error) => void): this;
900
- once(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this;
901
- once(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData?: Buffer) => void): this;
902
- once(event: "localSettings", listener: (settings: Settings) => void): this;
903
- once(event: "ping", listener: () => void): this;
904
- once(event: "remoteSettings", listener: (settings: Settings) => void): this;
905
- once(event: "timeout", listener: () => void): this;
906
- once(event: string | symbol, listener: (...args: any[]) => void): this;
907
- prependListener(event: "close", listener: () => void): this;
908
- prependListener(event: "error", listener: (err: Error) => void): this;
909
- prependListener(
910
- event: "frameError",
911
- listener: (frameType: number, errorCode: number, streamID: number) => void,
912
- ): this;
913
- prependListener(
914
- event: "goaway",
915
- listener: (errorCode: number, lastStreamID: number, opaqueData?: Buffer) => void,
916
- ): this;
917
- prependListener(event: "localSettings", listener: (settings: Settings) => void): this;
918
- prependListener(event: "ping", listener: () => void): this;
919
- prependListener(event: "remoteSettings", listener: (settings: Settings) => void): this;
920
- prependListener(event: "timeout", listener: () => void): this;
921
- prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
922
- prependOnceListener(event: "close", listener: () => void): this;
923
- prependOnceListener(event: "error", listener: (err: Error) => void): this;
924
- prependOnceListener(
925
- event: "frameError",
926
- listener: (frameType: number, errorCode: number, streamID: number) => void,
927
- ): this;
928
- prependOnceListener(
929
- event: "goaway",
930
- listener: (errorCode: number, lastStreamID: number, opaqueData?: Buffer) => void,
931
- ): this;
932
- prependOnceListener(event: "localSettings", listener: (settings: Settings) => void): this;
933
- prependOnceListener(event: "ping", listener: () => void): this;
934
- prependOnceListener(event: "remoteSettings", listener: (settings: Settings) => void): this;
935
- prependOnceListener(event: "timeout", listener: () => void): this;
936
- prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
937
849
  }
938
- export interface ClientHttp2Session extends Http2Session {
850
+ interface ClientHttp2SessionEventMap extends Http2SessionEventMap {
851
+ "altsvc": [alt: string, origin: string, streamId: number];
852
+ "connect": [session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket];
853
+ "origin": [origins: string[]];
854
+ "stream": [
855
+ stream: ClientHttp2Stream,
856
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
857
+ flags: number,
858
+ rawHeaders: string[],
859
+ ];
860
+ }
861
+ interface ClientHttp2Session extends Http2Session {
939
862
  /**
940
863
  * For HTTP/2 Client `Http2Session` instances only, the `http2session.request()` creates and returns an `Http2Stream` instance that can be used to send an
941
864
  * HTTP/2 request to the connected server.
@@ -985,93 +908,78 @@ declare module "node:http2" {
985
908
  headers?: OutgoingHttpHeaders | readonly string[],
986
909
  options?: ClientSessionRequestOptions,
987
910
  ): ClientHttp2Stream;
988
- addListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
989
- addListener(event: "origin", listener: (origins: string[]) => void): this;
990
- addListener(
991
- event: "connect",
992
- listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void,
993
- ): this;
994
- addListener(
995
- event: "stream",
996
- listener: (
997
- stream: ClientHttp2Stream,
998
- headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
999
- flags: number,
1000
- ) => void,
1001
- ): this;
1002
- addListener(event: string | symbol, listener: (...args: any[]) => void): this;
1003
- emit(event: "altsvc", alt: string, origin: string, stream: number): boolean;
1004
- emit(event: "origin", origins: readonly string[]): boolean;
1005
- emit(event: "connect", session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket): boolean;
1006
- emit(
1007
- event: "stream",
1008
- stream: ClientHttp2Stream,
1009
- headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
1010
- flags: number,
1011
- ): boolean;
1012
- emit(event: string | symbol, ...args: any[]): boolean;
1013
- on(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
1014
- on(event: "origin", listener: (origins: string[]) => void): this;
1015
- on(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
1016
- on(
1017
- event: "stream",
1018
- listener: (
1019
- stream: ClientHttp2Stream,
1020
- headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
1021
- flags: number,
1022
- ) => void,
1023
- ): this;
1024
- on(event: string | symbol, listener: (...args: any[]) => void): this;
1025
- once(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
1026
- once(event: "origin", listener: (origins: string[]) => void): this;
1027
- once(
1028
- event: "connect",
1029
- listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void,
1030
- ): this;
1031
- once(
1032
- event: "stream",
1033
- listener: (
1034
- stream: ClientHttp2Stream,
1035
- headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
1036
- flags: number,
1037
- ) => void,
1038
- ): this;
1039
- once(event: string | symbol, listener: (...args: any[]) => void): this;
1040
- prependListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
1041
- prependListener(event: "origin", listener: (origins: string[]) => void): this;
1042
- prependListener(
1043
- event: "connect",
1044
- listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void,
1045
- ): this;
1046
- prependListener(
1047
- event: "stream",
1048
- listener: (
1049
- stream: ClientHttp2Stream,
1050
- headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
1051
- flags: number,
1052
- ) => void,
1053
- ): this;
1054
- prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
1055
- prependOnceListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
1056
- prependOnceListener(event: "origin", listener: (origins: string[]) => void): this;
1057
- prependOnceListener(
1058
- event: "connect",
1059
- listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void,
1060
- ): this;
1061
- prependOnceListener(
1062
- event: "stream",
1063
- listener: (
1064
- stream: ClientHttp2Stream,
1065
- headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
1066
- flags: number,
1067
- ) => void,
1068
- ): this;
1069
- prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
911
+ // #region InternalEventEmitter
912
+ addListener<E extends keyof ClientHttp2StreamEventMap>(
913
+ eventName: E,
914
+ listener: (...args: ClientHttp2StreamEventMap[E]) => void,
915
+ ): this;
916
+ addListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
917
+ emit<E extends keyof ClientHttp2StreamEventMap>(eventName: E, ...args: ClientHttp2StreamEventMap[E]): boolean;
918
+ emit(eventName: string | symbol, ...args: any[]): boolean;
919
+ listenerCount<E extends keyof ClientHttp2StreamEventMap>(
920
+ eventName: E,
921
+ listener?: (...args: ClientHttp2StreamEventMap[E]) => void,
922
+ ): number;
923
+ listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number;
924
+ listeners<E extends keyof ClientHttp2StreamEventMap>(
925
+ eventName: E,
926
+ ): ((...args: ClientHttp2StreamEventMap[E]) => void)[];
927
+ listeners(eventName: string | symbol): ((...args: any[]) => void)[];
928
+ off<E extends keyof ClientHttp2StreamEventMap>(
929
+ eventName: E,
930
+ listener: (...args: ClientHttp2StreamEventMap[E]) => void,
931
+ ): this;
932
+ off(eventName: string | symbol, listener: (...args: any[]) => void): this;
933
+ on<E extends keyof ClientHttp2StreamEventMap>(
934
+ eventName: E,
935
+ listener: (...args: ClientHttp2StreamEventMap[E]) => void,
936
+ ): this;
937
+ on(eventName: string | symbol, listener: (...args: any[]) => void): this;
938
+ once<E extends keyof ClientHttp2StreamEventMap>(
939
+ eventName: E,
940
+ listener: (...args: ClientHttp2StreamEventMap[E]) => void,
941
+ ): this;
942
+ once(eventName: string | symbol, listener: (...args: any[]) => void): this;
943
+ prependListener<E extends keyof ClientHttp2StreamEventMap>(
944
+ eventName: E,
945
+ listener: (...args: ClientHttp2StreamEventMap[E]) => void,
946
+ ): this;
947
+ prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
948
+ prependOnceListener<E extends keyof ClientHttp2StreamEventMap>(
949
+ eventName: E,
950
+ listener: (...args: ClientHttp2StreamEventMap[E]) => void,
951
+ ): this;
952
+ prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
953
+ rawListeners<E extends keyof ClientHttp2StreamEventMap>(
954
+ eventName: E,
955
+ ): ((...args: ClientHttp2StreamEventMap[E]) => void)[];
956
+ rawListeners(eventName: string | symbol): ((...args: any[]) => void)[];
957
+ // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
958
+ removeAllListeners<E extends keyof ClientHttp2StreamEventMap>(eventName?: E): this;
959
+ removeAllListeners(eventName?: string | symbol): this;
960
+ removeListener<E extends keyof ClientHttp2StreamEventMap>(
961
+ eventName: E,
962
+ listener: (...args: ClientHttp2StreamEventMap[E]) => void,
963
+ ): this;
964
+ removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
965
+ // #endregion
1070
966
  }
1071
- export interface AlternativeServiceOptions {
967
+ interface AlternativeServiceOptions {
1072
968
  origin: number | string | url.URL;
1073
969
  }
1074
- export interface ServerHttp2Session<
970
+ interface ServerHttp2SessionEventMap<
971
+ Http1Request extends typeof IncomingMessage = typeof IncomingMessage,
972
+ Http1Response extends typeof ServerResponse<InstanceType<Http1Request>> = typeof ServerResponse,
973
+ Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest,
974
+ Http2Response extends typeof Http2ServerResponse<InstanceType<Http2Request>> = typeof Http2ServerResponse,
975
+ > extends Http2SessionEventMap {
976
+ "connect": [
977
+ session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
978
+ socket: net.Socket | tls.TLSSocket,
979
+ ];
980
+ "stream": [stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number, rawHeaders: string[]];
981
+ }
982
+ interface ServerHttp2Session<
1075
983
  Http1Request extends typeof IncomingMessage = typeof IncomingMessage,
1076
984
  Http1Response extends typeof ServerResponse<InstanceType<Http1Request>> = typeof ServerResponse,
1077
985
  Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest,
@@ -1172,76 +1080,87 @@ declare module "node:http2" {
1172
1080
  }
1173
1081
  >
1174
1082
  ): void;
1175
- addListener(
1176
- event: "connect",
1083
+ // #region InternalEventEmitter
1084
+ addListener<E extends keyof ServerHttp2SessionEventMap>(
1085
+ eventName: E,
1177
1086
  listener: (
1178
- session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
1179
- socket: net.Socket | tls.TLSSocket,
1087
+ ...args: ServerHttp2SessionEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1180
1088
  ) => void,
1181
1089
  ): this;
1182
- addListener(
1183
- event: "stream",
1184
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1185
- ): this;
1186
- addListener(event: string | symbol, listener: (...args: any[]) => void): this;
1187
- emit(
1188
- event: "connect",
1189
- session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
1190
- socket: net.Socket | tls.TLSSocket,
1090
+ addListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1091
+ emit<E extends keyof ServerHttp2SessionEventMap>(
1092
+ eventName: E,
1093
+ ...args: ServerHttp2SessionEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1191
1094
  ): boolean;
1192
- emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;
1193
- emit(event: string | symbol, ...args: any[]): boolean;
1194
- on(
1195
- event: "connect",
1095
+ emit(eventName: string | symbol, ...args: any[]): boolean;
1096
+ listenerCount<E extends keyof ServerHttp2SessionEventMap>(
1097
+ eventName: E,
1098
+ listener?: (
1099
+ ...args: ServerHttp2SessionEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1100
+ ) => void,
1101
+ ): number;
1102
+ listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number;
1103
+ listeners<E extends keyof ServerHttp2SessionEventMap>(
1104
+ eventName: E,
1105
+ ): ((
1106
+ ...args: ServerHttp2SessionEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1107
+ ) => void)[];
1108
+ listeners(eventName: string | symbol): ((...args: any[]) => void)[];
1109
+ off<E extends keyof ServerHttp2SessionEventMap>(
1110
+ eventName: E,
1196
1111
  listener: (
1197
- session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
1198
- socket: net.Socket | tls.TLSSocket,
1112
+ ...args: ServerHttp2SessionEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1199
1113
  ) => void,
1200
1114
  ): this;
1201
- on(
1202
- event: "stream",
1203
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1204
- ): this;
1205
- on(event: string | symbol, listener: (...args: any[]) => void): this;
1206
- once(
1207
- event: "connect",
1115
+ off(eventName: string | symbol, listener: (...args: any[]) => void): this;
1116
+ on<E extends keyof ServerHttp2SessionEventMap>(
1117
+ eventName: E,
1208
1118
  listener: (
1209
- session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
1210
- socket: net.Socket | tls.TLSSocket,
1119
+ ...args: ServerHttp2SessionEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1211
1120
  ) => void,
1212
1121
  ): this;
1213
- once(
1214
- event: "stream",
1215
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1216
- ): this;
1217
- once(event: string | symbol, listener: (...args: any[]) => void): this;
1218
- prependListener(
1219
- event: "connect",
1122
+ on(eventName: string | symbol, listener: (...args: any[]) => void): this;
1123
+ once<E extends keyof ServerHttp2SessionEventMap>(
1124
+ eventName: E,
1220
1125
  listener: (
1221
- session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
1222
- socket: net.Socket | tls.TLSSocket,
1126
+ ...args: ServerHttp2SessionEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1223
1127
  ) => void,
1224
1128
  ): this;
1225
- prependListener(
1226
- event: "stream",
1227
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1129
+ once(eventName: string | symbol, listener: (...args: any[]) => void): this;
1130
+ prependListener<E extends keyof ServerHttp2SessionEventMap>(
1131
+ eventName: E,
1132
+ listener: (
1133
+ ...args: ServerHttp2SessionEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1134
+ ) => void,
1228
1135
  ): this;
1229
- prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
1230
- prependOnceListener(
1231
- event: "connect",
1136
+ prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1137
+ prependOnceListener<E extends keyof ServerHttp2SessionEventMap>(
1138
+ eventName: E,
1232
1139
  listener: (
1233
- session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
1234
- socket: net.Socket | tls.TLSSocket,
1140
+ ...args: ServerHttp2SessionEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1235
1141
  ) => void,
1236
1142
  ): this;
1237
- prependOnceListener(
1238
- event: "stream",
1239
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1143
+ prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1144
+ rawListeners<E extends keyof ServerHttp2SessionEventMap>(
1145
+ eventName: E,
1146
+ ): ((
1147
+ ...args: ServerHttp2SessionEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1148
+ ) => void)[];
1149
+ rawListeners(eventName: string | symbol): ((...args: any[]) => void)[];
1150
+ // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
1151
+ removeAllListeners<E extends keyof ServerHttp2SessionEventMap>(eventName?: E): this;
1152
+ removeAllListeners(eventName?: string | symbol): this;
1153
+ removeListener<E extends keyof ServerHttp2SessionEventMap>(
1154
+ eventName: E,
1155
+ listener: (
1156
+ ...args: ServerHttp2SessionEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1157
+ ) => void,
1240
1158
  ): this;
1241
- prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
1159
+ removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1160
+ // #endregion
1242
1161
  }
1243
1162
  // Http2Server
1244
- export interface SessionOptions {
1163
+ interface SessionOptions {
1245
1164
  /**
1246
1165
  * Sets the maximum dynamic table size for deflating header fields.
1247
1166
  * @default 4Kib
@@ -1310,8 +1229,16 @@ declare module "node:http2" {
1310
1229
  * @default 100000
1311
1230
  */
1312
1231
  unknownProtocolTimeout?: number | undefined;
1232
+ /**
1233
+ * If `true`, it turns on strict leading
1234
+ * and trailing whitespace validation for HTTP/2 header field names and values
1235
+ * as per [RFC-9113](https://www.rfc-editor.org/rfc/rfc9113.html#section-8.2.1).
1236
+ * @since v24.2.0
1237
+ * @default true
1238
+ */
1239
+ strictFieldWhitespaceValidation?: boolean | undefined;
1313
1240
  }
1314
- export interface ClientSessionOptions extends SessionOptions {
1241
+ interface ClientSessionOptions extends SessionOptions {
1315
1242
  /**
1316
1243
  * Sets the maximum number of reserved push streams the client will accept at any given time.
1317
1244
  * Once the current number of currently reserved push streams exceeds reaches this limit,
@@ -1333,7 +1260,7 @@ declare module "node:http2" {
1333
1260
  */
1334
1261
  protocol?: "http:" | "https:" | undefined;
1335
1262
  }
1336
- export interface ServerSessionOptions<
1263
+ interface ServerSessionOptions<
1337
1264
  Http1Request extends typeof IncomingMessage = typeof IncomingMessage,
1338
1265
  Http1Response extends typeof ServerResponse<InstanceType<Http1Request>> = typeof ServerResponse,
1339
1266
  Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest,
@@ -1346,20 +1273,20 @@ declare module "node:http2" {
1346
1273
  Http2ServerRequest?: Http2Request | undefined;
1347
1274
  Http2ServerResponse?: Http2Response | undefined;
1348
1275
  }
1349
- export interface SecureClientSessionOptions extends ClientSessionOptions, tls.ConnectionOptions {}
1350
- export interface SecureServerSessionOptions<
1276
+ interface SecureClientSessionOptions extends ClientSessionOptions, tls.ConnectionOptions {}
1277
+ interface SecureServerSessionOptions<
1351
1278
  Http1Request extends typeof IncomingMessage = typeof IncomingMessage,
1352
1279
  Http1Response extends typeof ServerResponse<InstanceType<Http1Request>> = typeof ServerResponse,
1353
1280
  Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest,
1354
1281
  Http2Response extends typeof Http2ServerResponse<InstanceType<Http2Request>> = typeof Http2ServerResponse,
1355
1282
  > extends ServerSessionOptions<Http1Request, Http1Response, Http2Request, Http2Response>, tls.TlsOptions {}
1356
- export interface ServerOptions<
1283
+ interface ServerOptions<
1357
1284
  Http1Request extends typeof IncomingMessage = typeof IncomingMessage,
1358
1285
  Http1Response extends typeof ServerResponse<InstanceType<Http1Request>> = typeof ServerResponse,
1359
1286
  Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest,
1360
1287
  Http2Response extends typeof Http2ServerResponse<InstanceType<Http2Request>> = typeof Http2ServerResponse,
1361
1288
  > extends ServerSessionOptions<Http1Request, Http1Response, Http2Request, Http2Response> {}
1362
- export interface SecureServerOptions<
1289
+ interface SecureServerOptions<
1363
1290
  Http1Request extends typeof IncomingMessage = typeof IncomingMessage,
1364
1291
  Http1Response extends typeof ServerResponse<InstanceType<Http1Request>> = typeof ServerResponse,
1365
1292
  Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest,
@@ -1368,7 +1295,7 @@ declare module "node:http2" {
1368
1295
  allowHTTP1?: boolean | undefined;
1369
1296
  origins?: string[] | undefined;
1370
1297
  }
1371
- interface HTTP2ServerCommon {
1298
+ interface Http2ServerCommon {
1372
1299
  setTimeout(msec?: number, callback?: () => void): this;
1373
1300
  /**
1374
1301
  * Throws ERR_HTTP2_INVALID_SETTING_VALUE for invalid settings values.
@@ -1376,243 +1303,194 @@ declare module "node:http2" {
1376
1303
  */
1377
1304
  updateSettings(settings: Settings): void;
1378
1305
  }
1379
- export interface Http2Server<
1306
+ interface Http2ServerEventMap<
1380
1307
  Http1Request extends typeof IncomingMessage = typeof IncomingMessage,
1381
1308
  Http1Response extends typeof ServerResponse<InstanceType<Http1Request>> = typeof ServerResponse,
1382
1309
  Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest,
1383
1310
  Http2Response extends typeof Http2ServerResponse<InstanceType<Http2Request>> = typeof Http2ServerResponse,
1384
- > extends net.Server, HTTP2ServerCommon {
1385
- addListener(
1386
- event: "checkContinue",
1387
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1388
- ): this;
1389
- addListener(
1390
- event: "request",
1391
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1392
- ): this;
1393
- addListener(
1394
- event: "session",
1395
- listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
1396
- ): this;
1397
- addListener(event: "sessionError", listener: (err: Error) => void): this;
1398
- addListener(
1399
- event: "stream",
1400
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1311
+ > extends net.ServerEventMap, Pick<Http2SessionEventMap, "stream" | "timeout"> {
1312
+ "checkContinue": [request: InstanceType<Http2Request>, response: InstanceType<Http2Response>];
1313
+ "request": [request: InstanceType<Http2Request>, response: InstanceType<Http2Response>];
1314
+ "session": [session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>];
1315
+ "sessionError": [err: Error];
1316
+ }
1317
+ interface Http2Server<
1318
+ Http1Request extends typeof IncomingMessage = typeof IncomingMessage,
1319
+ Http1Response extends typeof ServerResponse<InstanceType<Http1Request>> = typeof ServerResponse,
1320
+ Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest,
1321
+ Http2Response extends typeof Http2ServerResponse<InstanceType<Http2Request>> = typeof Http2ServerResponse,
1322
+ > extends net.Server, Http2ServerCommon {
1323
+ // #region InternalEventEmitter
1324
+ addListener<E extends keyof Http2ServerEventMap>(
1325
+ eventName: E,
1326
+ listener: (
1327
+ ...args: Http2ServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1328
+ ) => void,
1401
1329
  ): this;
1402
- addListener(event: "timeout", listener: () => void): this;
1403
- addListener(event: string | symbol, listener: (...args: any[]) => void): this;
1404
- emit(
1405
- event: "checkContinue",
1406
- request: InstanceType<Http2Request>,
1407
- response: InstanceType<Http2Response>,
1330
+ addListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1331
+ emit<E extends keyof Http2ServerEventMap>(
1332
+ eventName: E,
1333
+ ...args: Http2ServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1408
1334
  ): boolean;
1409
- emit(event: "request", request: InstanceType<Http2Request>, response: InstanceType<Http2Response>): boolean;
1410
- emit(
1411
- event: "session",
1412
- session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
1413
- ): boolean;
1414
- emit(event: "sessionError", err: Error): boolean;
1415
- emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;
1416
- emit(event: "timeout"): boolean;
1417
- emit(event: string | symbol, ...args: any[]): boolean;
1418
- on(
1419
- event: "checkContinue",
1420
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1421
- ): this;
1422
- on(
1423
- event: "request",
1424
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1425
- ): this;
1426
- on(
1427
- event: "session",
1428
- listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
1429
- ): this;
1430
- on(event: "sessionError", listener: (err: Error) => void): this;
1431
- on(
1432
- event: "stream",
1433
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1434
- ): this;
1435
- on(event: "timeout", listener: () => void): this;
1436
- on(event: string | symbol, listener: (...args: any[]) => void): this;
1437
- once(
1438
- event: "checkContinue",
1439
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1440
- ): this;
1441
- once(
1442
- event: "request",
1443
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1444
- ): this;
1445
- once(
1446
- event: "session",
1447
- listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
1448
- ): this;
1449
- once(event: "sessionError", listener: (err: Error) => void): this;
1450
- once(
1451
- event: "stream",
1452
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1453
- ): this;
1454
- once(event: "timeout", listener: () => void): this;
1455
- once(event: string | symbol, listener: (...args: any[]) => void): this;
1456
- prependListener(
1457
- event: "checkContinue",
1458
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1459
- ): this;
1460
- prependListener(
1461
- event: "request",
1462
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1463
- ): this;
1464
- prependListener(
1465
- event: "session",
1466
- listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
1335
+ emit(eventName: string | symbol, ...args: any[]): boolean;
1336
+ listenerCount<E extends keyof Http2ServerEventMap>(
1337
+ eventName: E,
1338
+ listener?: (
1339
+ ...args: Http2ServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1340
+ ) => void,
1341
+ ): number;
1342
+ listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number;
1343
+ listeners<E extends keyof Http2ServerEventMap>(
1344
+ eventName: E,
1345
+ ): ((...args: Http2ServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]) => void)[];
1346
+ listeners(eventName: string | symbol): ((...args: any[]) => void)[];
1347
+ off<E extends keyof Http2ServerEventMap>(
1348
+ eventName: E,
1349
+ listener: (
1350
+ ...args: Http2ServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1351
+ ) => void,
1467
1352
  ): this;
1468
- prependListener(event: "sessionError", listener: (err: Error) => void): this;
1469
- prependListener(
1470
- event: "stream",
1471
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1353
+ off(eventName: string | symbol, listener: (...args: any[]) => void): this;
1354
+ on<E extends keyof Http2ServerEventMap>(
1355
+ eventName: E,
1356
+ listener: (
1357
+ ...args: Http2ServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1358
+ ) => void,
1472
1359
  ): this;
1473
- prependListener(event: "timeout", listener: () => void): this;
1474
- prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
1475
- prependOnceListener(
1476
- event: "checkContinue",
1477
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1360
+ on(eventName: string | symbol, listener: (...args: any[]) => void): this;
1361
+ once<E extends keyof Http2ServerEventMap>(
1362
+ eventName: E,
1363
+ listener: (
1364
+ ...args: Http2ServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1365
+ ) => void,
1478
1366
  ): this;
1479
- prependOnceListener(
1480
- event: "request",
1481
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1367
+ once(eventName: string | symbol, listener: (...args: any[]) => void): this;
1368
+ prependListener<E extends keyof Http2ServerEventMap>(
1369
+ eventName: E,
1370
+ listener: (
1371
+ ...args: Http2ServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1372
+ ) => void,
1482
1373
  ): this;
1483
- prependOnceListener(
1484
- event: "session",
1485
- listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
1374
+ prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1375
+ prependOnceListener<E extends keyof Http2ServerEventMap>(
1376
+ eventName: E,
1377
+ listener: (
1378
+ ...args: Http2ServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1379
+ ) => void,
1486
1380
  ): this;
1487
- prependOnceListener(event: "sessionError", listener: (err: Error) => void): this;
1488
- prependOnceListener(
1489
- event: "stream",
1490
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1381
+ prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1382
+ rawListeners<E extends keyof Http2ServerEventMap>(
1383
+ eventName: E,
1384
+ ): ((...args: Http2ServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]) => void)[];
1385
+ rawListeners(eventName: string | symbol): ((...args: any[]) => void)[];
1386
+ // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
1387
+ removeAllListeners<E extends keyof Http2ServerEventMap>(eventName?: E): this;
1388
+ removeAllListeners(eventName?: string | symbol): this;
1389
+ removeListener<E extends keyof Http2ServerEventMap>(
1390
+ eventName: E,
1391
+ listener: (
1392
+ ...args: Http2ServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1393
+ ) => void,
1491
1394
  ): this;
1492
- prependOnceListener(event: "timeout", listener: () => void): this;
1493
- prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
1395
+ removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1396
+ // #endregion
1494
1397
  }
1495
- export interface Http2SecureServer<
1398
+ interface Http2SecureServerEventMap<
1496
1399
  Http1Request extends typeof IncomingMessage = typeof IncomingMessage,
1497
1400
  Http1Response extends typeof ServerResponse<InstanceType<Http1Request>> = typeof ServerResponse,
1498
1401
  Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest,
1499
1402
  Http2Response extends typeof Http2ServerResponse<InstanceType<Http2Request>> = typeof Http2ServerResponse,
1500
- > extends tls.Server, HTTP2ServerCommon {
1501
- addListener(
1502
- event: "checkContinue",
1503
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1504
- ): this;
1505
- addListener(
1506
- event: "request",
1507
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1508
- ): this;
1509
- addListener(
1510
- event: "session",
1511
- listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
1512
- ): this;
1513
- addListener(event: "sessionError", listener: (err: Error) => void): this;
1514
- addListener(
1515
- event: "stream",
1516
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1403
+ > extends tls.ServerEventMap, Http2ServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response> {
1404
+ "unknownProtocol": [socket: tls.TLSSocket];
1405
+ }
1406
+ interface Http2SecureServer<
1407
+ Http1Request extends typeof IncomingMessage = typeof IncomingMessage,
1408
+ Http1Response extends typeof ServerResponse<InstanceType<Http1Request>> = typeof ServerResponse,
1409
+ Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest,
1410
+ Http2Response extends typeof Http2ServerResponse<InstanceType<Http2Request>> = typeof Http2ServerResponse,
1411
+ > extends tls.Server, Http2ServerCommon {
1412
+ // #region InternalEventEmitter
1413
+ addListener<E extends keyof Http2SecureServerEventMap>(
1414
+ eventName: E,
1415
+ listener: (
1416
+ ...args: Http2SecureServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1417
+ ) => void,
1517
1418
  ): this;
1518
- addListener(event: "timeout", listener: () => void): this;
1519
- addListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this;
1520
- addListener(event: string | symbol, listener: (...args: any[]) => void): this;
1521
- emit(
1522
- event: "checkContinue",
1523
- request: InstanceType<Http2Request>,
1524
- response: InstanceType<Http2Response>,
1525
- ): boolean;
1526
- emit(event: "request", request: InstanceType<Http2Request>, response: InstanceType<Http2Response>): boolean;
1527
- emit(
1528
- event: "session",
1529
- session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
1419
+ addListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1420
+ emit<E extends keyof Http2SecureServerEventMap>(
1421
+ eventName: E,
1422
+ ...args: Http2SecureServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1530
1423
  ): boolean;
1531
- emit(event: "sessionError", err: Error): boolean;
1532
- emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;
1533
- emit(event: "timeout"): boolean;
1534
- emit(event: "unknownProtocol", socket: tls.TLSSocket): boolean;
1535
- emit(event: string | symbol, ...args: any[]): boolean;
1536
- on(
1537
- event: "checkContinue",
1538
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1539
- ): this;
1540
- on(
1541
- event: "request",
1542
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1543
- ): this;
1544
- on(
1545
- event: "session",
1546
- listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
1547
- ): this;
1548
- on(event: "sessionError", listener: (err: Error) => void): this;
1549
- on(
1550
- event: "stream",
1551
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1552
- ): this;
1553
- on(event: "timeout", listener: () => void): this;
1554
- on(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this;
1555
- on(event: string | symbol, listener: (...args: any[]) => void): this;
1556
- once(
1557
- event: "checkContinue",
1558
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1559
- ): this;
1560
- once(
1561
- event: "request",
1562
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1563
- ): this;
1564
- once(
1565
- event: "session",
1566
- listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
1567
- ): this;
1568
- once(event: "sessionError", listener: (err: Error) => void): this;
1569
- once(
1570
- event: "stream",
1571
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1572
- ): this;
1573
- once(event: "timeout", listener: () => void): this;
1574
- once(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this;
1575
- once(event: string | symbol, listener: (...args: any[]) => void): this;
1576
- prependListener(
1577
- event: "checkContinue",
1578
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1579
- ): this;
1580
- prependListener(
1581
- event: "request",
1582
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1583
- ): this;
1584
- prependListener(
1585
- event: "session",
1586
- listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
1424
+ emit(eventName: string | symbol, ...args: any[]): boolean;
1425
+ listenerCount<E extends keyof Http2SecureServerEventMap>(
1426
+ eventName: E,
1427
+ listener?: (
1428
+ ...args: Http2SecureServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1429
+ ) => void,
1430
+ ): number;
1431
+ listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number;
1432
+ listeners<E extends keyof Http2SecureServerEventMap>(
1433
+ eventName: E,
1434
+ ): ((
1435
+ ...args: Http2SecureServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1436
+ ) => void)[];
1437
+ listeners(eventName: string | symbol): ((...args: any[]) => void)[];
1438
+ off<E extends keyof Http2SecureServerEventMap>(
1439
+ eventName: E,
1440
+ listener: (
1441
+ ...args: Http2SecureServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1442
+ ) => void,
1587
1443
  ): this;
1588
- prependListener(event: "sessionError", listener: (err: Error) => void): this;
1589
- prependListener(
1590
- event: "stream",
1591
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1444
+ off(eventName: string | symbol, listener: (...args: any[]) => void): this;
1445
+ on<E extends keyof Http2SecureServerEventMap>(
1446
+ eventName: E,
1447
+ listener: (
1448
+ ...args: Http2SecureServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1449
+ ) => void,
1592
1450
  ): this;
1593
- prependListener(event: "timeout", listener: () => void): this;
1594
- prependListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this;
1595
- prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
1596
- prependOnceListener(
1597
- event: "checkContinue",
1598
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1451
+ on(eventName: string | symbol, listener: (...args: any[]) => void): this;
1452
+ once<E extends keyof Http2SecureServerEventMap>(
1453
+ eventName: E,
1454
+ listener: (
1455
+ ...args: Http2SecureServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1456
+ ) => void,
1599
1457
  ): this;
1600
- prependOnceListener(
1601
- event: "request",
1602
- listener: (request: InstanceType<Http2Request>, response: InstanceType<Http2Response>) => void,
1458
+ once(eventName: string | symbol, listener: (...args: any[]) => void): this;
1459
+ prependListener<E extends keyof Http2SecureServerEventMap>(
1460
+ eventName: E,
1461
+ listener: (
1462
+ ...args: Http2SecureServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1463
+ ) => void,
1603
1464
  ): this;
1604
- prependOnceListener(
1605
- event: "session",
1606
- listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
1465
+ prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1466
+ prependOnceListener<E extends keyof Http2SecureServerEventMap>(
1467
+ eventName: E,
1468
+ listener: (
1469
+ ...args: Http2SecureServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1470
+ ) => void,
1607
1471
  ): this;
1608
- prependOnceListener(event: "sessionError", listener: (err: Error) => void): this;
1609
- prependOnceListener(
1610
- event: "stream",
1611
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1472
+ prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1473
+ rawListeners<E extends keyof Http2SecureServerEventMap>(
1474
+ eventName: E,
1475
+ ): ((
1476
+ ...args: Http2SecureServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1477
+ ) => void)[];
1478
+ rawListeners(eventName: string | symbol): ((...args: any[]) => void)[];
1479
+ // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
1480
+ removeAllListeners<E extends keyof Http2SecureServerEventMap>(eventName?: E): this;
1481
+ removeAllListeners(eventName?: string | symbol): this;
1482
+ removeListener<E extends keyof Http2SecureServerEventMap>(
1483
+ eventName: E,
1484
+ listener: (
1485
+ ...args: Http2SecureServerEventMap<Http1Request, Http1Response, Http2Request, Http2Response>[E]
1486
+ ) => void,
1612
1487
  ): this;
1613
- prependOnceListener(event: "timeout", listener: () => void): this;
1614
- prependOnceListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this;
1615
- prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
1488
+ removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1489
+ // #endregion
1490
+ }
1491
+ interface Http2ServerRequestEventMap extends stream.ReadableEventMap {
1492
+ "aborted": [hadError: boolean, code: number];
1493
+ "data": [chunk: string | NonSharedBuffer];
1616
1494
  }
1617
1495
  /**
1618
1496
  * A `Http2ServerRequest` object is created by {@link Server} or {@link SecureServer} and passed as the first argument to the `'request'` event. It may be used to access a request status,
@@ -1620,7 +1498,7 @@ declare module "node:http2" {
1620
1498
  * data.
1621
1499
  * @since v8.4.0
1622
1500
  */
1623
- export class Http2ServerRequest extends stream.Readable {
1501
+ class Http2ServerRequest extends stream.Readable {
1624
1502
  constructor(
1625
1503
  stream: ServerHttp2Stream,
1626
1504
  headers: IncomingHttpHeaders,
@@ -1812,55 +1690,68 @@ declare module "node:http2" {
1812
1690
  */
1813
1691
  setTimeout(msecs: number, callback?: () => void): void;
1814
1692
  read(size?: number): Buffer | string | null;
1815
- addListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
1816
- addListener(event: "close", listener: () => void): this;
1817
- addListener(event: "data", listener: (chunk: Buffer | string) => void): this;
1818
- addListener(event: "end", listener: () => void): this;
1819
- addListener(event: "readable", listener: () => void): this;
1820
- addListener(event: "error", listener: (err: Error) => void): this;
1821
- addListener(event: string | symbol, listener: (...args: any[]) => void): this;
1822
- emit(event: "aborted", hadError: boolean, code: number): boolean;
1823
- emit(event: "close"): boolean;
1824
- emit(event: "data", chunk: Buffer | string): boolean;
1825
- emit(event: "end"): boolean;
1826
- emit(event: "readable"): boolean;
1827
- emit(event: "error", err: Error): boolean;
1828
- emit(event: string | symbol, ...args: any[]): boolean;
1829
- on(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
1830
- on(event: "close", listener: () => void): this;
1831
- on(event: "data", listener: (chunk: Buffer | string) => void): this;
1832
- on(event: "end", listener: () => void): this;
1833
- on(event: "readable", listener: () => void): this;
1834
- on(event: "error", listener: (err: Error) => void): this;
1835
- on(event: string | symbol, listener: (...args: any[]) => void): this;
1836
- once(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
1837
- once(event: "close", listener: () => void): this;
1838
- once(event: "data", listener: (chunk: Buffer | string) => void): this;
1839
- once(event: "end", listener: () => void): this;
1840
- once(event: "readable", listener: () => void): this;
1841
- once(event: "error", listener: (err: Error) => void): this;
1842
- once(event: string | symbol, listener: (...args: any[]) => void): this;
1843
- prependListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
1844
- prependListener(event: "close", listener: () => void): this;
1845
- prependListener(event: "data", listener: (chunk: Buffer | string) => void): this;
1846
- prependListener(event: "end", listener: () => void): this;
1847
- prependListener(event: "readable", listener: () => void): this;
1848
- prependListener(event: "error", listener: (err: Error) => void): this;
1849
- prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
1850
- prependOnceListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
1851
- prependOnceListener(event: "close", listener: () => void): this;
1852
- prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this;
1853
- prependOnceListener(event: "end", listener: () => void): this;
1854
- prependOnceListener(event: "readable", listener: () => void): this;
1855
- prependOnceListener(event: "error", listener: (err: Error) => void): this;
1856
- prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
1693
+ // #region InternalEventEmitter
1694
+ addListener<E extends keyof Http2ServerRequestEventMap>(
1695
+ eventName: E,
1696
+ listener: (...args: Http2ServerRequestEventMap[E]) => void,
1697
+ ): this;
1698
+ addListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1699
+ emit<E extends keyof Http2ServerRequestEventMap>(eventName: E, ...args: Http2ServerRequestEventMap[E]): boolean;
1700
+ emit(eventName: string | symbol, ...args: any[]): boolean;
1701
+ listenerCount<E extends keyof Http2ServerRequestEventMap>(
1702
+ eventName: E,
1703
+ listener?: (...args: Http2ServerRequestEventMap[E]) => void,
1704
+ ): number;
1705
+ listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number;
1706
+ listeners<E extends keyof Http2ServerRequestEventMap>(
1707
+ eventName: E,
1708
+ ): ((...args: Http2ServerRequestEventMap[E]) => void)[];
1709
+ listeners(eventName: string | symbol): ((...args: any[]) => void)[];
1710
+ off<E extends keyof Http2ServerRequestEventMap>(
1711
+ eventName: E,
1712
+ listener: (...args: Http2ServerRequestEventMap[E]) => void,
1713
+ ): this;
1714
+ off(eventName: string | symbol, listener: (...args: any[]) => void): this;
1715
+ on<E extends keyof Http2ServerRequestEventMap>(
1716
+ eventName: E,
1717
+ listener: (...args: Http2ServerRequestEventMap[E]) => void,
1718
+ ): this;
1719
+ on(eventName: string | symbol, listener: (...args: any[]) => void): this;
1720
+ once<E extends keyof Http2ServerRequestEventMap>(
1721
+ eventName: E,
1722
+ listener: (...args: Http2ServerRequestEventMap[E]) => void,
1723
+ ): this;
1724
+ once(eventName: string | symbol, listener: (...args: any[]) => void): this;
1725
+ prependListener<E extends keyof Http2ServerRequestEventMap>(
1726
+ eventName: E,
1727
+ listener: (...args: Http2ServerRequestEventMap[E]) => void,
1728
+ ): this;
1729
+ prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1730
+ prependOnceListener<E extends keyof Http2ServerRequestEventMap>(
1731
+ eventName: E,
1732
+ listener: (...args: Http2ServerRequestEventMap[E]) => void,
1733
+ ): this;
1734
+ prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1735
+ rawListeners<E extends keyof Http2ServerRequestEventMap>(
1736
+ eventName: E,
1737
+ ): ((...args: Http2ServerRequestEventMap[E]) => void)[];
1738
+ rawListeners(eventName: string | symbol): ((...args: any[]) => void)[];
1739
+ // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
1740
+ removeAllListeners<E extends keyof Http2ServerRequestEventMap>(eventName?: E): this;
1741
+ removeAllListeners(eventName?: string | symbol): this;
1742
+ removeListener<E extends keyof Http2ServerRequestEventMap>(
1743
+ eventName: E,
1744
+ listener: (...args: Http2ServerRequestEventMap[E]) => void,
1745
+ ): this;
1746
+ removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
1747
+ // #endregion
1857
1748
  }
1858
1749
  /**
1859
1750
  * This object is created internally by an HTTP server, not by the user. It is
1860
1751
  * passed as the second parameter to the `'request'` event.
1861
1752
  * @since v8.4.0
1862
1753
  */
1863
- export class Http2ServerResponse<Request extends Http2ServerRequest = Http2ServerRequest> extends stream.Writable {
1754
+ class Http2ServerResponse<Request extends Http2ServerRequest = Http2ServerRequest> extends stream.Writable {
1864
1755
  constructor(stream: ServerHttp2Stream);
1865
1756
  /**
1866
1757
  * See `response.socket`.
@@ -1876,7 +1767,7 @@ declare module "node:http2" {
1876
1767
  * If there were no previous values for the header, this is equivalent to calling {@link setHeader}.
1877
1768
  *
1878
1769
  * Attempting to set a header field name or value that contains invalid characters will result in a
1879
- * [TypeError](https://nodejs.org/docs/latest-v24.x/api/errors.html#class-typeerror) being thrown.
1770
+ * [TypeError](https://nodejs.org/docs/latest-v25.x/api/errors.html#class-typeerror) being thrown.
1880
1771
  *
1881
1772
  * ```js
1882
1773
  * // Returns headers including "set-cookie: a" and "set-cookie: b"
@@ -2208,8 +2099,8 @@ declare module "node:http2" {
2208
2099
  * will result in a `TypeError` being thrown.
2209
2100
  * @since v8.4.0
2210
2101
  */
2211
- writeHead(statusCode: number, headers?: OutgoingHttpHeaders): this;
2212
- writeHead(statusCode: number, statusMessage: string, headers?: OutgoingHttpHeaders): this;
2102
+ writeHead(statusCode: number, headers?: OutgoingHttpHeaders | readonly string[]): this;
2103
+ writeHead(statusCode: number, statusMessage: string, headers?: OutgoingHttpHeaders | readonly string[]): this;
2213
2104
  /**
2214
2105
  * Call `http2stream.pushStream()` with the given headers, and wrap the
2215
2106
  * given `Http2Stream` on a newly created `Http2ServerResponse` as the callback
@@ -2224,50 +2115,8 @@ declare module "node:http2" {
2224
2115
  headers: OutgoingHttpHeaders,
2225
2116
  callback: (err: Error | null, res: Http2ServerResponse) => void,
2226
2117
  ): void;
2227
- addListener(event: "close", listener: () => void): this;
2228
- addListener(event: "drain", listener: () => void): this;
2229
- addListener(event: "error", listener: (error: Error) => void): this;
2230
- addListener(event: "finish", listener: () => void): this;
2231
- addListener(event: "pipe", listener: (src: stream.Readable) => void): this;
2232
- addListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
2233
- addListener(event: string | symbol, listener: (...args: any[]) => void): this;
2234
- emit(event: "close"): boolean;
2235
- emit(event: "drain"): boolean;
2236
- emit(event: "error", error: Error): boolean;
2237
- emit(event: "finish"): boolean;
2238
- emit(event: "pipe", src: stream.Readable): boolean;
2239
- emit(event: "unpipe", src: stream.Readable): boolean;
2240
- emit(event: string | symbol, ...args: any[]): boolean;
2241
- on(event: "close", listener: () => void): this;
2242
- on(event: "drain", listener: () => void): this;
2243
- on(event: "error", listener: (error: Error) => void): this;
2244
- on(event: "finish", listener: () => void): this;
2245
- on(event: "pipe", listener: (src: stream.Readable) => void): this;
2246
- on(event: "unpipe", listener: (src: stream.Readable) => void): this;
2247
- on(event: string | symbol, listener: (...args: any[]) => void): this;
2248
- once(event: "close", listener: () => void): this;
2249
- once(event: "drain", listener: () => void): this;
2250
- once(event: "error", listener: (error: Error) => void): this;
2251
- once(event: "finish", listener: () => void): this;
2252
- once(event: "pipe", listener: (src: stream.Readable) => void): this;
2253
- once(event: "unpipe", listener: (src: stream.Readable) => void): this;
2254
- once(event: string | symbol, listener: (...args: any[]) => void): this;
2255
- prependListener(event: "close", listener: () => void): this;
2256
- prependListener(event: "drain", listener: () => void): this;
2257
- prependListener(event: "error", listener: (error: Error) => void): this;
2258
- prependListener(event: "finish", listener: () => void): this;
2259
- prependListener(event: "pipe", listener: (src: stream.Readable) => void): this;
2260
- prependListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
2261
- prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
2262
- prependOnceListener(event: "close", listener: () => void): this;
2263
- prependOnceListener(event: "drain", listener: () => void): this;
2264
- prependOnceListener(event: "error", listener: (error: Error) => void): this;
2265
- prependOnceListener(event: "finish", listener: () => void): this;
2266
- prependOnceListener(event: "pipe", listener: (src: stream.Readable) => void): this;
2267
- prependOnceListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
2268
- prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
2269
2118
  }
2270
- export namespace constants {
2119
+ namespace constants {
2271
2120
  const NGHTTP2_SESSION_SERVER: number;
2272
2121
  const NGHTTP2_SESSION_CLIENT: number;
2273
2122
  const NGHTTP2_STREAM_STATE_IDLE: number;
@@ -2487,13 +2336,13 @@ declare module "node:http2" {
2487
2336
  * This symbol can be set as a property on the HTTP/2 headers object with
2488
2337
  * an array value in order to provide a list of headers considered sensitive.
2489
2338
  */
2490
- export const sensitiveHeaders: symbol;
2339
+ const sensitiveHeaders: symbol;
2491
2340
  /**
2492
2341
  * Returns an object containing the default settings for an `Http2Session` instance. This method returns a new object instance every time it is called
2493
2342
  * so instances returned may be safely modified for use.
2494
2343
  * @since v8.4.0
2495
2344
  */
2496
- export function getDefaultSettings(): Settings;
2345
+ function getDefaultSettings(): Settings;
2497
2346
  /**
2498
2347
  * Returns a `Buffer` instance containing serialized representation of the given
2499
2348
  * HTTP/2 settings as specified in the [HTTP/2](https://tools.ietf.org/html/rfc7540) specification. This is intended
@@ -2509,14 +2358,14 @@ declare module "node:http2" {
2509
2358
  * ```
2510
2359
  * @since v8.4.0
2511
2360
  */
2512
- export function getPackedSettings(settings: Settings): Buffer;
2361
+ function getPackedSettings(settings: Settings): NonSharedBuffer;
2513
2362
  /**
2514
2363
  * Returns a `HTTP/2 Settings Object` containing the deserialized settings from
2515
2364
  * the given `Buffer` as generated by `http2.getPackedSettings()`.
2516
2365
  * @since v8.4.0
2517
2366
  * @param buf The packed settings.
2518
2367
  */
2519
- export function getUnpackedSettings(buf: Uint8Array): Settings;
2368
+ function getUnpackedSettings(buf: Uint8Array): Settings;
2520
2369
  /**
2521
2370
  * Returns a `net.Server` instance that creates and manages `Http2Session` instances.
2522
2371
  *
@@ -2546,10 +2395,10 @@ declare module "node:http2" {
2546
2395
  * @since v8.4.0
2547
2396
  * @param onRequestHandler See `Compatibility API`
2548
2397
  */
2549
- export function createServer(
2398
+ function createServer(
2550
2399
  onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void,
2551
2400
  ): Http2Server;
2552
- export function createServer<
2401
+ function createServer<
2553
2402
  Http1Request extends typeof IncomingMessage = typeof IncomingMessage,
2554
2403
  Http1Response extends typeof ServerResponse<InstanceType<Http1Request>> = typeof ServerResponse,
2555
2404
  Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest,
@@ -2586,10 +2435,10 @@ declare module "node:http2" {
2586
2435
  * @since v8.4.0
2587
2436
  * @param onRequestHandler See `Compatibility API`
2588
2437
  */
2589
- export function createSecureServer(
2438
+ function createSecureServer(
2590
2439
  onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void,
2591
2440
  ): Http2SecureServer;
2592
- export function createSecureServer<
2441
+ function createSecureServer<
2593
2442
  Http1Request extends typeof IncomingMessage = typeof IncomingMessage,
2594
2443
  Http1Response extends typeof ServerResponse<InstanceType<Http1Request>> = typeof ServerResponse,
2595
2444
  Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest,
@@ -2614,11 +2463,11 @@ declare module "node:http2" {
2614
2463
  * is used). Userinfo (user ID and password), path, querystring, and fragment details in the URL will be ignored.
2615
2464
  * @param listener Will be registered as a one-time listener of the {@link 'connect'} event.
2616
2465
  */
2617
- export function connect(
2466
+ function connect(
2618
2467
  authority: string | url.URL,
2619
2468
  listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void,
2620
2469
  ): ClientHttp2Session;
2621
- export function connect(
2470
+ function connect(
2622
2471
  authority: string | url.URL,
2623
2472
  options?: ClientSessionOptions | SecureClientSessionOptions,
2624
2473
  listener?: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void,
@@ -2629,7 +2478,7 @@ declare module "node:http2" {
2629
2478
  * @param options Any `{@link createServer}` options can be provided.
2630
2479
  * @since v20.12.0
2631
2480
  */
2632
- export function performServerHandshake<
2481
+ function performServerHandshake<
2633
2482
  Http1Request extends typeof IncomingMessage = typeof IncomingMessage,
2634
2483
  Http1Response extends typeof ServerResponse<InstanceType<Http1Request>> = typeof ServerResponse,
2635
2484
  Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest,
@@ -2639,3 +2488,6 @@ declare module "node:http2" {
2639
2488
  options?: ServerOptions<Http1Request, Http1Response, Http2Request, Http2Response>,
2640
2489
  ): ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>;
2641
2490
  }
2491
+ declare module "node:http2" {
2492
+ export { OutgoingHttpHeaders } from "node:http";
2493
+ }