@types/node 22.15.21 → 24.10.1

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 (75) hide show
  1. node/README.md +2 -2
  2. node/assert/strict.d.ts +105 -2
  3. node/assert.d.ts +162 -101
  4. node/async_hooks.d.ts +26 -6
  5. node/buffer.buffer.d.ts +9 -0
  6. node/buffer.d.ts +15 -7
  7. node/child_process.d.ts +91 -164
  8. node/cluster.d.ts +19 -20
  9. node/console.d.ts +19 -18
  10. node/crypto.d.ts +1264 -356
  11. node/dgram.d.ts +10 -9
  12. node/diagnostics_channel.d.ts +18 -15
  13. node/dns/promises.d.ts +36 -9
  14. node/dns.d.ts +95 -37
  15. node/domain.d.ts +1 -1
  16. node/events.d.ts +81 -36
  17. node/fs/promises.d.ts +104 -59
  18. node/fs.d.ts +414 -137
  19. node/globals.d.ts +149 -350
  20. node/globals.typedarray.d.ts +20 -0
  21. node/http.d.ts +187 -37
  22. node/http2.d.ts +266 -67
  23. node/https.d.ts +97 -63
  24. node/index.d.ts +16 -7
  25. node/inspector.d.ts +206 -3931
  26. node/inspector.generated.d.ts +4233 -0
  27. node/module.d.ts +153 -31
  28. node/net.d.ts +35 -16
  29. node/os.d.ts +22 -10
  30. node/package.json +14 -84
  31. node/path.d.ts +1 -1
  32. node/perf_hooks.d.ts +30 -18
  33. node/process.d.ts +40 -34
  34. node/punycode.d.ts +1 -1
  35. node/querystring.d.ts +1 -1
  36. node/readline/promises.d.ts +1 -2
  37. node/readline.d.ts +13 -13
  38. node/repl.d.ts +25 -17
  39. node/sea.d.ts +10 -1
  40. node/sqlite.d.ts +438 -9
  41. node/stream/consumers.d.ts +2 -2
  42. node/stream/web.d.ts +13 -54
  43. node/stream.d.ts +68 -47
  44. node/string_decoder.d.ts +3 -3
  45. node/test.d.ts +2034 -1975
  46. node/timers/promises.d.ts +1 -1
  47. node/timers.d.ts +1 -3
  48. node/tls.d.ts +124 -114
  49. node/trace_events.d.ts +6 -6
  50. node/ts5.6/buffer.buffer.d.ts +10 -2
  51. node/ts5.6/compatibility/float16array.d.ts +71 -0
  52. node/ts5.6/globals.typedarray.d.ts +17 -0
  53. node/ts5.6/index.d.ts +18 -7
  54. node/ts5.7/compatibility/float16array.d.ts +72 -0
  55. node/ts5.7/index.d.ts +103 -0
  56. node/tty.d.ts +1 -1
  57. node/url.d.ts +119 -34
  58. node/util.d.ts +46 -305
  59. node/v8.d.ts +100 -37
  60. node/vm.d.ts +299 -110
  61. node/wasi.d.ts +23 -2
  62. node/web-globals/abortcontroller.d.ts +34 -0
  63. node/web-globals/crypto.d.ts +32 -0
  64. node/web-globals/domexception.d.ts +68 -0
  65. node/web-globals/events.d.ts +97 -0
  66. node/web-globals/fetch.d.ts +50 -0
  67. node/web-globals/navigator.d.ts +25 -0
  68. node/web-globals/storage.d.ts +24 -0
  69. node/web-globals/streams.d.ts +22 -0
  70. node/worker_threads.d.ts +225 -75
  71. node/zlib.d.ts +44 -33
  72. node/compatibility/disposable.d.ts +0 -16
  73. node/compatibility/index.d.ts +0 -9
  74. node/compatibility/indexable.d.ts +0 -23
  75. node/dom-events.d.ts +0 -124
node/http2.d.ts CHANGED
@@ -6,9 +6,10 @@
6
6
  * import http2 from 'node:http2';
7
7
  * ```
8
8
  * @since v8.4.0
9
- * @see [source](https://github.com/nodejs/node/blob/v22.x/lib/http2.js)
9
+ * @see [source](https://github.com/nodejs/node/blob/v24.x/lib/http2.js)
10
10
  */
11
11
  declare module "http2" {
12
+ import { NonSharedBuffer } from "node:buffer";
12
13
  import EventEmitter = require("node:events");
13
14
  import * as fs from "node:fs";
14
15
  import * as net from "node:net";
@@ -32,18 +33,14 @@ declare module "http2" {
32
33
  ":scheme"?: string | undefined;
33
34
  }
34
35
  // Http2Stream
35
- export interface StreamPriorityOptions {
36
- exclusive?: boolean | undefined;
37
- parent?: number | undefined;
38
- weight?: number | undefined;
39
- silent?: boolean | undefined;
40
- }
41
36
  export interface StreamState {
42
37
  localWindowSize?: number | undefined;
43
38
  state?: number | undefined;
44
39
  localClose?: number | undefined;
45
40
  remoteClose?: number | undefined;
41
+ /** @deprecated */
46
42
  sumDependencyWeight?: number | undefined;
43
+ /** @deprecated */
47
44
  weight?: number | undefined;
48
45
  }
49
46
  export interface ServerStreamResponseOptions {
@@ -55,14 +52,15 @@ declare module "http2" {
55
52
  length: number;
56
53
  }
57
54
  export interface ServerStreamFileResponseOptions {
58
- // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
59
- statCheck?(stats: fs.Stats, headers: OutgoingHttpHeaders, statOptions: StatOptions): void | boolean;
55
+ statCheck?:
56
+ | ((stats: fs.Stats, headers: OutgoingHttpHeaders, statOptions: StatOptions) => void)
57
+ | undefined;
60
58
  waitForTrailers?: boolean | undefined;
61
59
  offset?: number | undefined;
62
60
  length?: number | undefined;
63
61
  }
64
62
  export interface ServerStreamFileResponseOptionsWithError extends ServerStreamFileResponseOptions {
65
- onError?(err: NodeJS.ErrnoException): void;
63
+ onError?: ((err: NodeJS.ErrnoException) => void) | undefined;
66
64
  }
67
65
  export interface Http2Stream extends stream.Duplex {
68
66
  /**
@@ -151,10 +149,9 @@ declare module "http2" {
151
149
  */
152
150
  close(code?: number, callback?: () => void): void;
153
151
  /**
154
- * Updates the priority for this `Http2Stream` instance.
155
- * @since v8.4.0
152
+ * @deprecated Priority signaling is no longer supported in Node.js.
156
153
  */
157
- priority(options: StreamPriorityOptions): void;
154
+ priority(options: unknown): void;
158
155
  /**
159
156
  * ```js
160
157
  * import http2 from 'node:http2';
@@ -195,7 +192,7 @@ declare module "http2" {
195
192
  sendTrailers(headers: OutgoingHttpHeaders): void;
196
193
  addListener(event: "aborted", listener: () => void): this;
197
194
  addListener(event: "close", listener: () => void): this;
198
- addListener(event: "data", listener: (chunk: Buffer | string) => void): this;
195
+ addListener(event: "data", listener: (chunk: NonSharedBuffer | string) => void): this;
199
196
  addListener(event: "drain", listener: () => void): this;
200
197
  addListener(event: "end", listener: () => void): this;
201
198
  addListener(event: "error", listener: (err: Error) => void): this;
@@ -210,7 +207,7 @@ declare module "http2" {
210
207
  addListener(event: string | symbol, listener: (...args: any[]) => void): this;
211
208
  emit(event: "aborted"): boolean;
212
209
  emit(event: "close"): boolean;
213
- emit(event: "data", chunk: Buffer | string): boolean;
210
+ emit(event: "data", chunk: NonSharedBuffer | string): boolean;
214
211
  emit(event: "drain"): boolean;
215
212
  emit(event: "end"): boolean;
216
213
  emit(event: "error", err: Error): boolean;
@@ -225,7 +222,7 @@ declare module "http2" {
225
222
  emit(event: string | symbol, ...args: any[]): boolean;
226
223
  on(event: "aborted", listener: () => void): this;
227
224
  on(event: "close", listener: () => void): this;
228
- on(event: "data", listener: (chunk: Buffer | string) => void): this;
225
+ on(event: "data", listener: (chunk: NonSharedBuffer | string) => void): this;
229
226
  on(event: "drain", listener: () => void): this;
230
227
  on(event: "end", listener: () => void): this;
231
228
  on(event: "error", listener: (err: Error) => void): this;
@@ -240,7 +237,7 @@ declare module "http2" {
240
237
  on(event: string | symbol, listener: (...args: any[]) => void): this;
241
238
  once(event: "aborted", listener: () => void): this;
242
239
  once(event: "close", listener: () => void): this;
243
- once(event: "data", listener: (chunk: Buffer | string) => void): this;
240
+ once(event: "data", listener: (chunk: NonSharedBuffer | string) => void): this;
244
241
  once(event: "drain", listener: () => void): this;
245
242
  once(event: "end", listener: () => void): this;
246
243
  once(event: "error", listener: (err: Error) => void): this;
@@ -255,7 +252,7 @@ declare module "http2" {
255
252
  once(event: string | symbol, listener: (...args: any[]) => void): this;
256
253
  prependListener(event: "aborted", listener: () => void): this;
257
254
  prependListener(event: "close", listener: () => void): this;
258
- prependListener(event: "data", listener: (chunk: Buffer | string) => void): this;
255
+ prependListener(event: "data", listener: (chunk: NonSharedBuffer | string) => void): this;
259
256
  prependListener(event: "drain", listener: () => void): this;
260
257
  prependListener(event: "end", listener: () => void): this;
261
258
  prependListener(event: "error", listener: (err: Error) => void): this;
@@ -270,7 +267,7 @@ declare module "http2" {
270
267
  prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
271
268
  prependOnceListener(event: "aborted", listener: () => void): this;
272
269
  prependOnceListener(event: "close", listener: () => void): this;
273
- prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this;
270
+ prependOnceListener(event: "data", listener: (chunk: NonSharedBuffer | string) => void): this;
274
271
  prependOnceListener(event: "drain", listener: () => void): this;
275
272
  prependOnceListener(event: "end", listener: () => void): this;
276
273
  prependOnceListener(event: "error", listener: (err: Error) => void): this;
@@ -288,61 +285,111 @@ declare module "http2" {
288
285
  addListener(event: "continue", listener: () => {}): this;
289
286
  addListener(
290
287
  event: "headers",
291
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
288
+ listener: (
289
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
290
+ flags: number,
291
+ rawHeaders: string[],
292
+ ) => void,
292
293
  ): this;
293
294
  addListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
294
295
  addListener(
295
296
  event: "response",
296
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
297
+ listener: (
298
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
299
+ flags: number,
300
+ rawHeaders: string[],
301
+ ) => void,
297
302
  ): this;
298
303
  addListener(event: string | symbol, listener: (...args: any[]) => void): this;
299
304
  emit(event: "continue"): boolean;
300
- emit(event: "headers", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean;
305
+ emit(
306
+ event: "headers",
307
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
308
+ flags: number,
309
+ rawHeaders: string[],
310
+ ): boolean;
301
311
  emit(event: "push", headers: IncomingHttpHeaders, flags: number): boolean;
302
- emit(event: "response", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean;
312
+ emit(
313
+ event: "response",
314
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
315
+ flags: number,
316
+ rawHeaders: string[],
317
+ ): boolean;
303
318
  emit(event: string | symbol, ...args: any[]): boolean;
304
319
  on(event: "continue", listener: () => {}): this;
305
320
  on(
306
321
  event: "headers",
307
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
322
+ listener: (
323
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
324
+ flags: number,
325
+ rawHeaders: string[],
326
+ ) => void,
308
327
  ): this;
309
328
  on(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
310
329
  on(
311
330
  event: "response",
312
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
331
+ listener: (
332
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
333
+ flags: number,
334
+ rawHeaders: string[],
335
+ ) => void,
313
336
  ): this;
314
337
  on(event: string | symbol, listener: (...args: any[]) => void): this;
315
338
  once(event: "continue", listener: () => {}): this;
316
339
  once(
317
340
  event: "headers",
318
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
341
+ listener: (
342
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
343
+ flags: number,
344
+ rawHeaders: string[],
345
+ ) => void,
319
346
  ): this;
320
347
  once(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
321
348
  once(
322
349
  event: "response",
323
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
350
+ listener: (
351
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
352
+ flags: number,
353
+ rawHeaders: string[],
354
+ ) => void,
324
355
  ): this;
325
356
  once(event: string | symbol, listener: (...args: any[]) => void): this;
326
357
  prependListener(event: "continue", listener: () => {}): this;
327
358
  prependListener(
328
359
  event: "headers",
329
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
360
+ listener: (
361
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
362
+ flags: number,
363
+ rawHeaders: string[],
364
+ ) => void,
330
365
  ): this;
331
366
  prependListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
332
367
  prependListener(
333
368
  event: "response",
334
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
369
+ listener: (
370
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
371
+ flags: number,
372
+ rawHeaders: string[],
373
+ ) => void,
335
374
  ): this;
336
375
  prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
337
376
  prependOnceListener(event: "continue", listener: () => {}): this;
338
377
  prependOnceListener(
339
378
  event: "headers",
340
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
379
+ listener: (
380
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
381
+ flags: number,
382
+ rawHeaders: string[],
383
+ ) => void,
341
384
  ): this;
342
385
  prependOnceListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
343
386
  prependOnceListener(
344
387
  event: "response",
345
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
388
+ listener: (
389
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
390
+ flags: number,
391
+ rawHeaders: string[],
392
+ ) => void,
346
393
  ): this;
347
394
  prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
348
395
  }
@@ -395,7 +442,7 @@ declare module "http2" {
395
442
  ): void;
396
443
  pushStream(
397
444
  headers: OutgoingHttpHeaders,
398
- options?: StreamPriorityOptions,
445
+ options?: Pick<ClientSessionRequestOptions, "exclusive" | "parent">,
399
446
  callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void,
400
447
  ): void;
401
448
  /**
@@ -428,7 +475,7 @@ declare module "http2" {
428
475
  * ```
429
476
  * @since v8.4.0
430
477
  */
431
- respond(headers?: OutgoingHttpHeaders, options?: ServerStreamResponseOptions): void;
478
+ respond(headers?: OutgoingHttpHeaders | readonly string[], options?: ServerStreamResponseOptions): void;
432
479
  /**
433
480
  * Initiates a response whose data is read from the given file descriptor. No
434
481
  * validation is performed on the given file descriptor. If an error occurs while
@@ -629,7 +676,6 @@ declare module "http2" {
629
676
  endStream?: boolean | undefined;
630
677
  exclusive?: boolean | undefined;
631
678
  parent?: number | undefined;
632
- weight?: number | undefined;
633
679
  waitForTrailers?: boolean | undefined;
634
680
  signal?: AbortSignal | undefined;
635
681
  }
@@ -789,10 +835,10 @@ declare module "http2" {
789
835
  * @since v8.9.3
790
836
  * @param payload Optional ping payload.
791
837
  */
792
- ping(callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean;
838
+ ping(callback: (err: Error | null, duration: number, payload: NonSharedBuffer) => void): boolean;
793
839
  ping(
794
840
  payload: NodeJS.ArrayBufferView,
795
- callback: (err: Error | null, duration: number, payload: Buffer) => void,
841
+ callback: (err: Error | null, duration: number, payload: NonSharedBuffer) => void,
796
842
  ): boolean;
797
843
  /**
798
844
  * Calls `ref()` on this `Http2Session` instance's underlying `net.Socket`.
@@ -854,7 +900,7 @@ declare module "http2" {
854
900
  ): this;
855
901
  addListener(
856
902
  event: "goaway",
857
- listener: (errorCode: number, lastStreamID: number, opaqueData?: Buffer) => void,
903
+ listener: (errorCode: number, lastStreamID: number, opaqueData?: NonSharedBuffer) => void,
858
904
  ): this;
859
905
  addListener(event: "localSettings", listener: (settings: Settings) => void): this;
860
906
  addListener(event: "ping", listener: () => void): this;
@@ -864,7 +910,7 @@ declare module "http2" {
864
910
  emit(event: "close"): boolean;
865
911
  emit(event: "error", err: Error): boolean;
866
912
  emit(event: "frameError", frameType: number, errorCode: number, streamID: number): boolean;
867
- emit(event: "goaway", errorCode: number, lastStreamID: number, opaqueData?: Buffer): boolean;
913
+ emit(event: "goaway", errorCode: number, lastStreamID: number, opaqueData?: NonSharedBuffer): boolean;
868
914
  emit(event: "localSettings", settings: Settings): boolean;
869
915
  emit(event: "ping"): boolean;
870
916
  emit(event: "remoteSettings", settings: Settings): boolean;
@@ -873,7 +919,10 @@ declare module "http2" {
873
919
  on(event: "close", listener: () => void): this;
874
920
  on(event: "error", listener: (err: Error) => void): this;
875
921
  on(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this;
876
- on(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData?: Buffer) => void): this;
922
+ on(
923
+ event: "goaway",
924
+ listener: (errorCode: number, lastStreamID: number, opaqueData?: NonSharedBuffer) => void,
925
+ ): this;
877
926
  on(event: "localSettings", listener: (settings: Settings) => void): this;
878
927
  on(event: "ping", listener: () => void): this;
879
928
  on(event: "remoteSettings", listener: (settings: Settings) => void): this;
@@ -882,7 +931,10 @@ declare module "http2" {
882
931
  once(event: "close", listener: () => void): this;
883
932
  once(event: "error", listener: (err: Error) => void): this;
884
933
  once(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this;
885
- once(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData?: Buffer) => void): this;
934
+ once(
935
+ event: "goaway",
936
+ listener: (errorCode: number, lastStreamID: number, opaqueData?: NonSharedBuffer) => void,
937
+ ): this;
886
938
  once(event: "localSettings", listener: (settings: Settings) => void): this;
887
939
  once(event: "ping", listener: () => void): this;
888
940
  once(event: "remoteSettings", listener: (settings: Settings) => void): this;
@@ -896,7 +948,7 @@ declare module "http2" {
896
948
  ): this;
897
949
  prependListener(
898
950
  event: "goaway",
899
- listener: (errorCode: number, lastStreamID: number, opaqueData?: Buffer) => void,
951
+ listener: (errorCode: number, lastStreamID: number, opaqueData?: NonSharedBuffer) => void,
900
952
  ): this;
901
953
  prependListener(event: "localSettings", listener: (settings: Settings) => void): this;
902
954
  prependListener(event: "ping", listener: () => void): this;
@@ -911,7 +963,7 @@ declare module "http2" {
911
963
  ): this;
912
964
  prependOnceListener(
913
965
  event: "goaway",
914
- listener: (errorCode: number, lastStreamID: number, opaqueData?: Buffer) => void,
966
+ listener: (errorCode: number, lastStreamID: number, opaqueData?: NonSharedBuffer) => void,
915
967
  ): this;
916
968
  prependOnceListener(event: "localSettings", listener: (settings: Settings) => void): this;
917
969
  prependOnceListener(event: "ping", listener: () => void): this;
@@ -965,7 +1017,10 @@ declare module "http2" {
965
1017
  * * `:path` \= `/`
966
1018
  * @since v8.4.0
967
1019
  */
968
- request(headers?: OutgoingHttpHeaders, options?: ClientSessionRequestOptions): ClientHttp2Stream;
1020
+ request(
1021
+ headers?: OutgoingHttpHeaders | readonly string[],
1022
+ options?: ClientSessionRequestOptions,
1023
+ ): ClientHttp2Stream;
969
1024
  addListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
970
1025
  addListener(event: "origin", listener: (origins: string[]) => void): this;
971
1026
  addListener(
@@ -978,6 +1033,7 @@ declare module "http2" {
978
1033
  stream: ClientHttp2Stream,
979
1034
  headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
980
1035
  flags: number,
1036
+ rawHeaders: string[],
981
1037
  ) => void,
982
1038
  ): this;
983
1039
  addListener(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -989,6 +1045,7 @@ declare module "http2" {
989
1045
  stream: ClientHttp2Stream,
990
1046
  headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
991
1047
  flags: number,
1048
+ rawHeaders: string[],
992
1049
  ): boolean;
993
1050
  emit(event: string | symbol, ...args: any[]): boolean;
994
1051
  on(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
@@ -1000,6 +1057,7 @@ declare module "http2" {
1000
1057
  stream: ClientHttp2Stream,
1001
1058
  headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
1002
1059
  flags: number,
1060
+ rawHeaders: string[],
1003
1061
  ) => void,
1004
1062
  ): this;
1005
1063
  on(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1015,6 +1073,7 @@ declare module "http2" {
1015
1073
  stream: ClientHttp2Stream,
1016
1074
  headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
1017
1075
  flags: number,
1076
+ rawHeaders: string[],
1018
1077
  ) => void,
1019
1078
  ): this;
1020
1079
  once(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1030,6 +1089,7 @@ declare module "http2" {
1030
1089
  stream: ClientHttp2Stream,
1031
1090
  headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
1032
1091
  flags: number,
1092
+ rawHeaders: string[],
1033
1093
  ) => void,
1034
1094
  ): this;
1035
1095
  prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1045,6 +1105,7 @@ declare module "http2" {
1045
1105
  stream: ClientHttp2Stream,
1046
1106
  headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
1047
1107
  flags: number,
1108
+ rawHeaders: string[],
1048
1109
  ) => void,
1049
1110
  ): this;
1050
1111
  prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1162,7 +1223,12 @@ declare module "http2" {
1162
1223
  ): this;
1163
1224
  addListener(
1164
1225
  event: "stream",
1165
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1226
+ listener: (
1227
+ stream: ServerHttp2Stream,
1228
+ headers: IncomingHttpHeaders,
1229
+ flags: number,
1230
+ rawHeaders: string[],
1231
+ ) => void,
1166
1232
  ): this;
1167
1233
  addListener(event: string | symbol, listener: (...args: any[]) => void): this;
1168
1234
  emit(
@@ -1170,7 +1236,13 @@ declare module "http2" {
1170
1236
  session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
1171
1237
  socket: net.Socket | tls.TLSSocket,
1172
1238
  ): boolean;
1173
- emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;
1239
+ emit(
1240
+ event: "stream",
1241
+ stream: ServerHttp2Stream,
1242
+ headers: IncomingHttpHeaders,
1243
+ flags: number,
1244
+ rawHeaders: string[],
1245
+ ): boolean;
1174
1246
  emit(event: string | symbol, ...args: any[]): boolean;
1175
1247
  on(
1176
1248
  event: "connect",
@@ -1181,7 +1253,12 @@ declare module "http2" {
1181
1253
  ): this;
1182
1254
  on(
1183
1255
  event: "stream",
1184
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1256
+ listener: (
1257
+ stream: ServerHttp2Stream,
1258
+ headers: IncomingHttpHeaders,
1259
+ flags: number,
1260
+ rawHeaders: string[],
1261
+ ) => void,
1185
1262
  ): this;
1186
1263
  on(event: string | symbol, listener: (...args: any[]) => void): this;
1187
1264
  once(
@@ -1193,7 +1270,12 @@ declare module "http2" {
1193
1270
  ): this;
1194
1271
  once(
1195
1272
  event: "stream",
1196
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1273
+ listener: (
1274
+ stream: ServerHttp2Stream,
1275
+ headers: IncomingHttpHeaders,
1276
+ flags: number,
1277
+ rawHeaders: string[],
1278
+ ) => void,
1197
1279
  ): this;
1198
1280
  once(event: string | symbol, listener: (...args: any[]) => void): this;
1199
1281
  prependListener(
@@ -1205,7 +1287,12 @@ declare module "http2" {
1205
1287
  ): this;
1206
1288
  prependListener(
1207
1289
  event: "stream",
1208
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1290
+ listener: (
1291
+ stream: ServerHttp2Stream,
1292
+ headers: IncomingHttpHeaders,
1293
+ flags: number,
1294
+ rawHeaders: string[],
1295
+ ) => void,
1209
1296
  ): this;
1210
1297
  prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
1211
1298
  prependOnceListener(
@@ -1217,20 +1304,77 @@ declare module "http2" {
1217
1304
  ): this;
1218
1305
  prependOnceListener(
1219
1306
  event: "stream",
1220
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1307
+ listener: (
1308
+ stream: ServerHttp2Stream,
1309
+ headers: IncomingHttpHeaders,
1310
+ flags: number,
1311
+ rawHeaders: string[],
1312
+ ) => void,
1221
1313
  ): this;
1222
1314
  prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
1223
1315
  }
1224
1316
  // Http2Server
1225
1317
  export interface SessionOptions {
1318
+ /**
1319
+ * Sets the maximum dynamic table size for deflating header fields.
1320
+ * @default 4Kib
1321
+ */
1226
1322
  maxDeflateDynamicTableSize?: number | undefined;
1323
+ /**
1324
+ * Sets the maximum number of settings entries per `SETTINGS` frame.
1325
+ * The minimum value allowed is `1`.
1326
+ * @default 32
1327
+ */
1328
+ maxSettings?: number | undefined;
1329
+ /**
1330
+ * Sets the maximum memory that the `Http2Session` is permitted to use.
1331
+ * The value is expressed in terms of number of megabytes, e.g. `1` equal 1 megabyte.
1332
+ * The minimum value allowed is `1`.
1333
+ * This is a credit based limit, existing `Http2Stream`s may cause this limit to be exceeded,
1334
+ * but new `Http2Stream` instances will be rejected while this limit is exceeded.
1335
+ * The current number of `Http2Stream` sessions, the current memory use of the header compression tables,
1336
+ * current data queued to be sent, and unacknowledged `PING` and `SETTINGS` frames are all counted towards the current limit.
1337
+ * @default 10
1338
+ */
1227
1339
  maxSessionMemory?: number | undefined;
1340
+ /**
1341
+ * Sets the maximum number of header entries.
1342
+ * This is similar to `server.maxHeadersCount` or `request.maxHeadersCount` in the `node:http` module.
1343
+ * The minimum value is `1`.
1344
+ * @default 128
1345
+ */
1228
1346
  maxHeaderListPairs?: number | undefined;
1347
+ /**
1348
+ * Sets the maximum number of outstanding, unacknowledged pings.
1349
+ * @default 10
1350
+ */
1229
1351
  maxOutstandingPings?: number | undefined;
1352
+ /**
1353
+ * Sets the maximum allowed size for a serialized, compressed block of headers.
1354
+ * Attempts to send headers that exceed this limit will result in
1355
+ * a `'frameError'` event being emitted and the stream being closed and destroyed.
1356
+ */
1230
1357
  maxSendHeaderBlockLength?: number | undefined;
1358
+ /**
1359
+ * Strategy used for determining the amount of padding to use for `HEADERS` and `DATA` frames.
1360
+ * @default http2.constants.PADDING_STRATEGY_NONE
1361
+ */
1231
1362
  paddingStrategy?: number | undefined;
1363
+ /**
1364
+ * Sets the maximum number of concurrent streams for the remote peer as if a `SETTINGS` frame had been received.
1365
+ * Will be overridden if the remote peer sets its own value for `maxConcurrentStreams`.
1366
+ * @default 100
1367
+ */
1232
1368
  peerMaxConcurrentStreams?: number | undefined;
1369
+ /**
1370
+ * The initial settings to send to the remote peer upon connection.
1371
+ */
1233
1372
  settings?: Settings | undefined;
1373
+ /**
1374
+ * The array of integer values determines the settings types,
1375
+ * which are included in the `CustomSettings`-property of the received remoteSettings.
1376
+ * Please see the `CustomSettings`-property of the `Http2Settings` object for more information, on the allowed setting types.
1377
+ */
1234
1378
  remoteCustomSettings?: number[] | undefined;
1235
1379
  /**
1236
1380
  * Specifies a timeout in milliseconds that
@@ -1239,11 +1383,35 @@ declare module "http2" {
1239
1383
  * @default 100000
1240
1384
  */
1241
1385
  unknownProtocolTimeout?: number | undefined;
1242
- selectPadding?(frameLen: number, maxFrameLen: number): number;
1386
+ /**
1387
+ * If `true`, it turns on strict leading
1388
+ * and trailing whitespace validation for HTTP/2 header field names and values
1389
+ * as per [RFC-9113](https://www.rfc-editor.org/rfc/rfc9113.html#section-8.2.1).
1390
+ * @since v24.2.0
1391
+ * @default true
1392
+ */
1393
+ strictFieldWhitespaceValidation?: boolean | undefined;
1243
1394
  }
1244
1395
  export interface ClientSessionOptions extends SessionOptions {
1396
+ /**
1397
+ * Sets the maximum number of reserved push streams the client will accept at any given time.
1398
+ * Once the current number of currently reserved push streams exceeds reaches this limit,
1399
+ * new push streams sent by the server will be automatically rejected.
1400
+ * The minimum allowed value is 0. The maximum allowed value is 2<sup>32</sup>-1.
1401
+ * A negative value sets this option to the maximum allowed value.
1402
+ * @default 200
1403
+ */
1245
1404
  maxReservedRemoteStreams?: number | undefined;
1405
+ /**
1406
+ * An optional callback that receives the `URL` instance passed to `connect` and the `options` object,
1407
+ * and returns any `Duplex` stream that is to be used as the connection for this session.
1408
+ */
1246
1409
  createConnection?: ((authority: url.URL, option: SessionOptions) => stream.Duplex) | undefined;
1410
+ /**
1411
+ * The protocol to connect with, if not set in the `authority`.
1412
+ * Value may be either `'http:'` or `'https:'`.
1413
+ * @default 'https:'
1414
+ */
1247
1415
  protocol?: "http:" | "https:" | undefined;
1248
1416
  }
1249
1417
  export interface ServerSessionOptions<
@@ -1310,7 +1478,12 @@ declare module "http2" {
1310
1478
  addListener(event: "sessionError", listener: (err: Error) => void): this;
1311
1479
  addListener(
1312
1480
  event: "stream",
1313
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1481
+ listener: (
1482
+ stream: ServerHttp2Stream,
1483
+ headers: IncomingHttpHeaders,
1484
+ flags: number,
1485
+ rawHeaders: string[],
1486
+ ) => void,
1314
1487
  ): this;
1315
1488
  addListener(event: "timeout", listener: () => void): this;
1316
1489
  addListener(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1325,7 +1498,13 @@ declare module "http2" {
1325
1498
  session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
1326
1499
  ): boolean;
1327
1500
  emit(event: "sessionError", err: Error): boolean;
1328
- emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;
1501
+ emit(
1502
+ event: "stream",
1503
+ stream: ServerHttp2Stream,
1504
+ headers: IncomingHttpHeaders,
1505
+ flags: number,
1506
+ rawHeaders: string[],
1507
+ ): boolean;
1329
1508
  emit(event: "timeout"): boolean;
1330
1509
  emit(event: string | symbol, ...args: any[]): boolean;
1331
1510
  on(
@@ -1343,7 +1522,12 @@ declare module "http2" {
1343
1522
  on(event: "sessionError", listener: (err: Error) => void): this;
1344
1523
  on(
1345
1524
  event: "stream",
1346
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1525
+ listener: (
1526
+ stream: ServerHttp2Stream,
1527
+ headers: IncomingHttpHeaders,
1528
+ flags: number,
1529
+ rawHeaders: string[],
1530
+ ) => void,
1347
1531
  ): this;
1348
1532
  on(event: "timeout", listener: () => void): this;
1349
1533
  on(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1362,7 +1546,12 @@ declare module "http2" {
1362
1546
  once(event: "sessionError", listener: (err: Error) => void): this;
1363
1547
  once(
1364
1548
  event: "stream",
1365
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1549
+ listener: (
1550
+ stream: ServerHttp2Stream,
1551
+ headers: IncomingHttpHeaders,
1552
+ flags: number,
1553
+ rawHeaders: string[],
1554
+ ) => void,
1366
1555
  ): this;
1367
1556
  once(event: "timeout", listener: () => void): this;
1368
1557
  once(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1381,7 +1570,12 @@ declare module "http2" {
1381
1570
  prependListener(event: "sessionError", listener: (err: Error) => void): this;
1382
1571
  prependListener(
1383
1572
  event: "stream",
1384
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1573
+ listener: (
1574
+ stream: ServerHttp2Stream,
1575
+ headers: IncomingHttpHeaders,
1576
+ flags: number,
1577
+ rawHeaders: string[],
1578
+ ) => void,
1385
1579
  ): this;
1386
1580
  prependListener(event: "timeout", listener: () => void): this;
1387
1581
  prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1400,7 +1594,12 @@ declare module "http2" {
1400
1594
  prependOnceListener(event: "sessionError", listener: (err: Error) => void): this;
1401
1595
  prependOnceListener(
1402
1596
  event: "stream",
1403
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1597
+ listener: (
1598
+ stream: ServerHttp2Stream,
1599
+ headers: IncomingHttpHeaders,
1600
+ flags: number,
1601
+ rawHeaders: string[],
1602
+ ) => void,
1404
1603
  ): this;
1405
1604
  prependOnceListener(event: "timeout", listener: () => void): this;
1406
1605
  prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1724,45 +1923,45 @@ declare module "http2" {
1724
1923
  * @since v8.4.0
1725
1924
  */
1726
1925
  setTimeout(msecs: number, callback?: () => void): void;
1727
- read(size?: number): Buffer | string | null;
1926
+ read(size?: number): NonSharedBuffer | string | null;
1728
1927
  addListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
1729
1928
  addListener(event: "close", listener: () => void): this;
1730
- addListener(event: "data", listener: (chunk: Buffer | string) => void): this;
1929
+ addListener(event: "data", listener: (chunk: NonSharedBuffer | string) => void): this;
1731
1930
  addListener(event: "end", listener: () => void): this;
1732
1931
  addListener(event: "readable", listener: () => void): this;
1733
1932
  addListener(event: "error", listener: (err: Error) => void): this;
1734
1933
  addListener(event: string | symbol, listener: (...args: any[]) => void): this;
1735
1934
  emit(event: "aborted", hadError: boolean, code: number): boolean;
1736
1935
  emit(event: "close"): boolean;
1737
- emit(event: "data", chunk: Buffer | string): boolean;
1936
+ emit(event: "data", chunk: NonSharedBuffer | string): boolean;
1738
1937
  emit(event: "end"): boolean;
1739
1938
  emit(event: "readable"): boolean;
1740
1939
  emit(event: "error", err: Error): boolean;
1741
1940
  emit(event: string | symbol, ...args: any[]): boolean;
1742
1941
  on(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
1743
1942
  on(event: "close", listener: () => void): this;
1744
- on(event: "data", listener: (chunk: Buffer | string) => void): this;
1943
+ on(event: "data", listener: (chunk: NonSharedBuffer | string) => void): this;
1745
1944
  on(event: "end", listener: () => void): this;
1746
1945
  on(event: "readable", listener: () => void): this;
1747
1946
  on(event: "error", listener: (err: Error) => void): this;
1748
1947
  on(event: string | symbol, listener: (...args: any[]) => void): this;
1749
1948
  once(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
1750
1949
  once(event: "close", listener: () => void): this;
1751
- once(event: "data", listener: (chunk: Buffer | string) => void): this;
1950
+ once(event: "data", listener: (chunk: NonSharedBuffer | string) => void): this;
1752
1951
  once(event: "end", listener: () => void): this;
1753
1952
  once(event: "readable", listener: () => void): this;
1754
1953
  once(event: "error", listener: (err: Error) => void): this;
1755
1954
  once(event: string | symbol, listener: (...args: any[]) => void): this;
1756
1955
  prependListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
1757
1956
  prependListener(event: "close", listener: () => void): this;
1758
- prependListener(event: "data", listener: (chunk: Buffer | string) => void): this;
1957
+ prependListener(event: "data", listener: (chunk: NonSharedBuffer | string) => void): this;
1759
1958
  prependListener(event: "end", listener: () => void): this;
1760
1959
  prependListener(event: "readable", listener: () => void): this;
1761
1960
  prependListener(event: "error", listener: (err: Error) => void): this;
1762
1961
  prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
1763
1962
  prependOnceListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
1764
1963
  prependOnceListener(event: "close", listener: () => void): this;
1765
- prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this;
1964
+ prependOnceListener(event: "data", listener: (chunk: NonSharedBuffer | string) => void): this;
1766
1965
  prependOnceListener(event: "end", listener: () => void): this;
1767
1966
  prependOnceListener(event: "readable", listener: () => void): this;
1768
1967
  prependOnceListener(event: "error", listener: (err: Error) => void): this;
@@ -1789,7 +1988,7 @@ declare module "http2" {
1789
1988
  * If there were no previous values for the header, this is equivalent to calling {@link setHeader}.
1790
1989
  *
1791
1990
  * Attempting to set a header field name or value that contains invalid characters will result in a
1792
- * [TypeError](https://nodejs.org/docs/latest-v22.x/api/errors.html#class-typeerror) being thrown.
1991
+ * [TypeError](https://nodejs.org/docs/latest-v24.x/api/errors.html#class-typeerror) being thrown.
1793
1992
  *
1794
1993
  * ```js
1795
1994
  * // Returns headers including "set-cookie: a" and "set-cookie: b"
@@ -2121,8 +2320,8 @@ declare module "http2" {
2121
2320
  * will result in a `TypeError` being thrown.
2122
2321
  * @since v8.4.0
2123
2322
  */
2124
- writeHead(statusCode: number, headers?: OutgoingHttpHeaders): this;
2125
- writeHead(statusCode: number, statusMessage: string, headers?: OutgoingHttpHeaders): this;
2323
+ writeHead(statusCode: number, headers?: OutgoingHttpHeaders | readonly string[]): this;
2324
+ writeHead(statusCode: number, statusMessage: string, headers?: OutgoingHttpHeaders | readonly string[]): this;
2126
2325
  /**
2127
2326
  * Call `http2stream.pushStream()` with the given headers, and wrap the
2128
2327
  * given `Http2Stream` on a newly created `Http2ServerResponse` as the callback
@@ -2422,7 +2621,7 @@ declare module "http2" {
2422
2621
  * ```
2423
2622
  * @since v8.4.0
2424
2623
  */
2425
- export function getPackedSettings(settings: Settings): Buffer;
2624
+ export function getPackedSettings(settings: Settings): NonSharedBuffer;
2426
2625
  /**
2427
2626
  * Returns a `HTTP/2 Settings Object` containing the deserialized settings from
2428
2627
  * the given `Buffer` as generated by `http2.getPackedSettings()`.