@types/node 22.15.21 → 22.19.3

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 (80) hide show
  1. node v22.19/README.md +15 -0
  2. node v22.19/assert/strict.d.ts +111 -0
  3. node/assert.d.ts → node v22.19/assert.d.ts +119 -95
  4. node/buffer.buffer.d.ts → node v22.19/buffer.buffer.d.ts +9 -0
  5. node/buffer.d.ts → node v22.19/buffer.d.ts +14 -6
  6. node/child_process.d.ts → node v22.19/child_process.d.ts +89 -162
  7. node/cluster.d.ts → node v22.19/cluster.d.ts +4 -5
  8. node/compatibility/disposable.d.ts → node v22.19/compatibility/disposable.d.ts +0 -2
  9. node/compatibility/indexable.d.ts → node v22.19/compatibility/indexable.d.ts +0 -3
  10. node/compatibility/iterators.d.ts → node v22.19/compatibility/iterators.d.ts +0 -1
  11. node/crypto.d.ts → node v22.19/crypto.d.ts +203 -167
  12. node/dgram.d.ts → node v22.19/dgram.d.ts +9 -8
  13. node/diagnostics_channel.d.ts → node v22.19/diagnostics_channel.d.ts +17 -12
  14. node/dns/promises.d.ts → node v22.19/dns/promises.d.ts +36 -9
  15. node/dns.d.ts → node v22.19/dns.d.ts +79 -21
  16. node/events.d.ts → node v22.19/events.d.ts +80 -35
  17. node/fs/promises.d.ts → node v22.19/fs/promises.d.ts +81 -58
  18. node/fs.d.ts → node v22.19/fs.d.ts +154 -130
  19. node v22.19/globals.d.ts +172 -0
  20. node v22.19/globals.typedarray.d.ts +38 -0
  21. node/http.d.ts → node v22.19/http.d.ts +140 -35
  22. node/http2.d.ts → node v22.19/http2.d.ts +114 -27
  23. node/https.d.ts → node v22.19/https.d.ts +96 -62
  24. node/index.d.ts → node v22.19/index.d.ts +7 -2
  25. node v22.19/inspector.d.ts +253 -0
  26. node/inspector.d.ts → node v22.19/inspector.generated.d.ts +880 -830
  27. node/module.d.ts → node v22.19/module.d.ts +136 -17
  28. node/net.d.ts → node v22.19/net.d.ts +33 -11
  29. node/os.d.ts → node v22.19/os.d.ts +14 -3
  30. node/package.json → node v22.19/package.json +3 -83
  31. node/path.d.ts → node v22.19/path.d.ts +1 -1
  32. node/perf_hooks.d.ts → node v22.19/perf_hooks.d.ts +8 -10
  33. node/process.d.ts → node v22.19/process.d.ts +39 -27
  34. node/readline/promises.d.ts → node v22.19/readline/promises.d.ts +1 -2
  35. node/repl.d.ts → node v22.19/repl.d.ts +3 -5
  36. node/sqlite.d.ts → node v22.19/sqlite.d.ts +219 -6
  37. node/stream/consumers.d.ts → node v22.19/stream/consumers.d.ts +2 -2
  38. node/stream/web.d.ts → node v22.19/stream/web.d.ts +8 -0
  39. node/stream.d.ts → node v22.19/stream.d.ts +34 -32
  40. node/string_decoder.d.ts → node v22.19/string_decoder.d.ts +2 -2
  41. node v22.19/test.d.ts +2162 -0
  42. node/tls.d.ts → node v22.19/tls.d.ts +122 -66
  43. node/ts5.6/buffer.buffer.d.ts → node v22.19/ts5.6/buffer.buffer.d.ts +10 -2
  44. node v22.19/ts5.6/globals.typedarray.d.ts +34 -0
  45. node/ts5.6/index.d.ts → node v22.19/ts5.6/index.d.ts +7 -2
  46. node/url.d.ts → node v22.19/url.d.ts +21 -9
  47. node/util.d.ts → node v22.19/util.d.ts +33 -11
  48. node/v8.d.ts → node v22.19/v8.d.ts +66 -35
  49. node/vm.d.ts → node v22.19/vm.d.ts +65 -56
  50. node/wasi.d.ts → node v22.19/wasi.d.ts +1 -1
  51. node v22.19/web-globals/abortcontroller.d.ts +34 -0
  52. node v22.19/web-globals/domexception.d.ts +68 -0
  53. node v22.19/web-globals/events.d.ts +97 -0
  54. node v22.19/web-globals/fetch.d.ts +46 -0
  55. node v22.19/web-globals/navigator.d.ts +22 -0
  56. node v22.19/web-globals/storage.d.ts +24 -0
  57. node/worker_threads.d.ts → node v22.19/worker_threads.d.ts +112 -74
  58. node/zlib.d.ts → node v22.19/zlib.d.ts +39 -26
  59. node/README.md +0 -15
  60. node/assert/strict.d.ts +0 -8
  61. node/dom-events.d.ts +0 -124
  62. node/globals.d.ts +0 -371
  63. node/globals.typedarray.d.ts +0 -21
  64. node/test.d.ts +0 -2280
  65. node/ts5.6/globals.typedarray.d.ts +0 -19
  66. {node → node v22.19}/LICENSE +0 -0
  67. node/async_hooks.d.ts → node v22.19/async_hooks.d.ts +1 -1
  68. {node → node v22.19}/compatibility/index.d.ts +0 -0
  69. {node → node v22.19}/console.d.ts +0 -0
  70. {node → node v22.19}/constants.d.ts +0 -0
  71. {node → node v22.19}/domain.d.ts +0 -0
  72. {node → node v22.19}/punycode.d.ts +0 -0
  73. {node → node v22.19}/querystring.d.ts +0 -0
  74. {node → node v22.19}/readline.d.ts +0 -0
  75. {node → node v22.19}/sea.d.ts +0 -0
  76. {node → node v22.19}/stream/promises.d.ts +0 -0
  77. {node → node v22.19}/timers/promises.d.ts +0 -0
  78. {node → node v22.19}/timers.d.ts +0 -0
  79. {node → node v22.19}/trace_events.d.ts +0 -0
  80. {node → node v22.19}/tty.d.ts +0 -0
@@ -0,0 +1,172 @@
1
+ declare var global: typeof globalThis;
2
+
3
+ declare var process: NodeJS.Process;
4
+ declare var console: Console;
5
+
6
+ interface ErrorConstructor {
7
+ /**
8
+ * Creates a `.stack` property on `targetObject`, which when accessed returns
9
+ * a string representing the location in the code at which
10
+ * `Error.captureStackTrace()` was called.
11
+ *
12
+ * ```js
13
+ * const myObject = {};
14
+ * Error.captureStackTrace(myObject);
15
+ * myObject.stack; // Similar to `new Error().stack`
16
+ * ```
17
+ *
18
+ * The first line of the trace will be prefixed with
19
+ * `${myObject.name}: ${myObject.message}`.
20
+ *
21
+ * The optional `constructorOpt` argument accepts a function. If given, all frames
22
+ * above `constructorOpt`, including `constructorOpt`, will be omitted from the
23
+ * generated stack trace.
24
+ *
25
+ * The `constructorOpt` argument is useful for hiding implementation
26
+ * details of error generation from the user. For instance:
27
+ *
28
+ * ```js
29
+ * function a() {
30
+ * b();
31
+ * }
32
+ *
33
+ * function b() {
34
+ * c();
35
+ * }
36
+ *
37
+ * function c() {
38
+ * // Create an error without stack trace to avoid calculating the stack trace twice.
39
+ * const { stackTraceLimit } = Error;
40
+ * Error.stackTraceLimit = 0;
41
+ * const error = new Error();
42
+ * Error.stackTraceLimit = stackTraceLimit;
43
+ *
44
+ * // Capture the stack trace above function b
45
+ * Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
46
+ * throw error;
47
+ * }
48
+ *
49
+ * a();
50
+ * ```
51
+ */
52
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
53
+ /**
54
+ * @see https://v8.dev/docs/stack-trace-api#customizing-stack-traces
55
+ */
56
+ prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
57
+ /**
58
+ * The `Error.stackTraceLimit` property specifies the number of stack frames
59
+ * collected by a stack trace (whether generated by `new Error().stack` or
60
+ * `Error.captureStackTrace(obj)`).
61
+ *
62
+ * The default value is `10` but may be set to any valid JavaScript number. Changes
63
+ * will affect any stack trace captured _after_ the value has been changed.
64
+ *
65
+ * If set to a non-number value, or set to a negative number, stack traces will
66
+ * not capture any frames.
67
+ */
68
+ stackTraceLimit: number;
69
+ }
70
+
71
+ /**
72
+ * Enable this API with the `--expose-gc` CLI flag.
73
+ */
74
+ declare var gc: NodeJS.GCFunction | undefined;
75
+
76
+ declare namespace NodeJS {
77
+ interface CallSite {
78
+ getColumnNumber(): number | null;
79
+ getEnclosingColumnNumber(): number | null;
80
+ getEnclosingLineNumber(): number | null;
81
+ getEvalOrigin(): string | undefined;
82
+ getFileName(): string | null;
83
+ getFunction(): Function | undefined;
84
+ getFunctionName(): string | null;
85
+ getLineNumber(): number | null;
86
+ getMethodName(): string | null;
87
+ getPosition(): number;
88
+ getPromiseIndex(): number | null;
89
+ getScriptHash(): string;
90
+ getScriptNameOrSourceURL(): string | null;
91
+ getThis(): unknown;
92
+ getTypeName(): string | null;
93
+ isAsync(): boolean;
94
+ isConstructor(): boolean;
95
+ isEval(): boolean;
96
+ isNative(): boolean;
97
+ isPromiseAll(): boolean;
98
+ isToplevel(): boolean;
99
+ }
100
+
101
+ interface ErrnoException extends Error {
102
+ errno?: number | undefined;
103
+ code?: string | undefined;
104
+ path?: string | undefined;
105
+ syscall?: string | undefined;
106
+ }
107
+
108
+ interface ReadableStream extends EventEmitter {
109
+ readable: boolean;
110
+ read(size?: number): string | Buffer;
111
+ setEncoding(encoding: BufferEncoding): this;
112
+ pause(): this;
113
+ resume(): this;
114
+ isPaused(): boolean;
115
+ pipe<T extends WritableStream>(destination: T, options?: { end?: boolean | undefined }): T;
116
+ unpipe(destination?: WritableStream): this;
117
+ unshift(chunk: string | Uint8Array, encoding?: BufferEncoding): void;
118
+ wrap(oldStream: ReadableStream): this;
119
+ [Symbol.asyncIterator](): AsyncIterableIterator<string | Buffer>;
120
+ }
121
+
122
+ interface WritableStream extends EventEmitter {
123
+ writable: boolean;
124
+ write(buffer: Uint8Array | string, cb?: (err?: Error | null) => void): boolean;
125
+ write(str: string, encoding?: BufferEncoding, cb?: (err?: Error | null) => void): boolean;
126
+ end(cb?: () => void): this;
127
+ end(data: string | Uint8Array, cb?: () => void): this;
128
+ end(str: string, encoding?: BufferEncoding, cb?: () => void): this;
129
+ }
130
+
131
+ interface ReadWriteStream extends ReadableStream, WritableStream {}
132
+
133
+ interface RefCounted {
134
+ ref(): this;
135
+ unref(): this;
136
+ }
137
+
138
+ interface Dict<T> {
139
+ [key: string]: T | undefined;
140
+ }
141
+
142
+ interface ReadOnlyDict<T> {
143
+ readonly [key: string]: T | undefined;
144
+ }
145
+
146
+ type PartialOptions<T> = { [K in keyof T]?: T[K] | undefined };
147
+
148
+ interface GCFunction {
149
+ (minor?: boolean): void;
150
+ (options: NodeJS.GCOptions & { execution: "async" }): Promise<void>;
151
+ (options: NodeJS.GCOptions): void;
152
+ }
153
+
154
+ interface GCOptions {
155
+ execution?: "sync" | "async" | undefined;
156
+ flavor?: "regular" | "last-resort" | undefined;
157
+ type?: "major-snapshot" | "major" | "minor" | undefined;
158
+ filename?: string | undefined;
159
+ }
160
+
161
+ /** An iterable iterator returned by the Node.js API. */
162
+ // Default TReturn/TNext in v22 is `any`, for compatibility with the previously-used IterableIterator.
163
+ interface Iterator<T, TReturn = any, TNext = any> extends IteratorObject<T, TReturn, TNext> {
164
+ [Symbol.iterator](): NodeJS.Iterator<T, TReturn, TNext>;
165
+ }
166
+
167
+ /** An async iterable iterator returned by the Node.js API. */
168
+ // Default TReturn/TNext in v22 is `any`, for compatibility with the previously-used AsyncIterableIterator.
169
+ interface AsyncIterator<T, TReturn = any, TNext = any> extends AsyncIteratorObject<T, TReturn, TNext> {
170
+ [Symbol.asyncIterator](): NodeJS.AsyncIterator<T, TReturn, TNext>;
171
+ }
172
+ }
@@ -0,0 +1,38 @@
1
+ export {}; // Make this a module
2
+
3
+ declare global {
4
+ namespace NodeJS {
5
+ type TypedArray<TArrayBuffer extends ArrayBufferLike = ArrayBufferLike> =
6
+ | Uint8Array<TArrayBuffer>
7
+ | Uint8ClampedArray<TArrayBuffer>
8
+ | Uint16Array<TArrayBuffer>
9
+ | Uint32Array<TArrayBuffer>
10
+ | Int8Array<TArrayBuffer>
11
+ | Int16Array<TArrayBuffer>
12
+ | Int32Array<TArrayBuffer>
13
+ | BigUint64Array<TArrayBuffer>
14
+ | BigInt64Array<TArrayBuffer>
15
+ | Float32Array<TArrayBuffer>
16
+ | Float64Array<TArrayBuffer>;
17
+ type ArrayBufferView<TArrayBuffer extends ArrayBufferLike = ArrayBufferLike> =
18
+ | TypedArray<TArrayBuffer>
19
+ | DataView<TArrayBuffer>;
20
+
21
+ // The following aliases are required to allow use of non-shared ArrayBufferViews in @types/node
22
+ // while maintaining compatibility with TS <=5.6.
23
+ type NonSharedUint8Array = Uint8Array<ArrayBuffer>;
24
+ type NonSharedUint8ClampedArray = Uint8ClampedArray<ArrayBuffer>;
25
+ type NonSharedUint16Array = Uint16Array<ArrayBuffer>;
26
+ type NonSharedUint32Array = Uint32Array<ArrayBuffer>;
27
+ type NonSharedInt8Array = Int8Array<ArrayBuffer>;
28
+ type NonSharedInt16Array = Int16Array<ArrayBuffer>;
29
+ type NonSharedInt32Array = Int32Array<ArrayBuffer>;
30
+ type NonSharedBigUint64Array = BigUint64Array<ArrayBuffer>;
31
+ type NonSharedBigInt64Array = BigInt64Array<ArrayBuffer>;
32
+ type NonSharedFloat32Array = Float32Array<ArrayBuffer>;
33
+ type NonSharedFloat64Array = Float64Array<ArrayBuffer>;
34
+ type NonSharedDataView = DataView<ArrayBuffer>;
35
+ type NonSharedTypedArray = TypedArray<ArrayBuffer>;
36
+ type NonSharedArrayBufferView = ArrayBufferView<ArrayBuffer>;
37
+ }
38
+ }
@@ -40,6 +40,7 @@
40
40
  * @see [source](https://github.com/nodejs/node/blob/v22.x/lib/http.js)
41
41
  */
42
42
  declare module "http" {
43
+ import { NonSharedBuffer } from "node:buffer";
43
44
  import * as stream from "node:stream";
44
45
  import { URL } from "node:url";
45
46
  import { LookupOptions } from "node:dns";
@@ -200,7 +201,7 @@ declare module "http" {
200
201
  "x-frame-options"?: string | undefined;
201
202
  "x-xss-protection"?: string | undefined;
202
203
  }
203
- interface ClientRequestArgs {
204
+ interface ClientRequestArgs extends Pick<LookupOptions, "hints"> {
204
205
  _defaultAgent?: Agent | undefined;
205
206
  agent?: Agent | boolean | undefined;
206
207
  auth?: string | null | undefined;
@@ -213,7 +214,6 @@ declare module "http" {
213
214
  defaultPort?: number | string | undefined;
214
215
  family?: number | undefined;
215
216
  headers?: OutgoingHttpHeaders | readonly string[] | undefined;
216
- hints?: LookupOptions["hints"];
217
217
  host?: string | null | undefined;
218
218
  hostname?: string | null | undefined;
219
219
  insecureHTTPParser?: boolean | undefined;
@@ -234,7 +234,7 @@ declare module "http" {
234
234
  socketPath?: string | undefined;
235
235
  timeout?: number | undefined;
236
236
  uniqueHeaders?: Array<string | string[]> | undefined;
237
- joinDuplicateHeaders?: boolean;
237
+ joinDuplicateHeaders?: boolean | undefined;
238
238
  }
239
239
  interface ServerOptions<
240
240
  Request extends typeof IncomingMessage = typeof IncomingMessage,
@@ -260,7 +260,7 @@ declare module "http" {
260
260
  * @default false
261
261
  * @since v18.14.0
262
262
  */
263
- joinDuplicateHeaders?: boolean;
263
+ joinDuplicateHeaders?: boolean | undefined;
264
264
  /**
265
265
  * The number of milliseconds of inactivity a server needs to wait for additional incoming data,
266
266
  * after it has finished writing the last response, before a socket will be destroyed.
@@ -269,6 +269,13 @@ declare module "http" {
269
269
  * @since v18.0.0
270
270
  */
271
271
  keepAliveTimeout?: number | undefined;
272
+ /**
273
+ * An additional buffer time added to the
274
+ * `server.keepAliveTimeout` to extend the internal socket timeout.
275
+ * @since 22.19.0
276
+ * @default 1000
277
+ */
278
+ keepAliveTimeoutBuffer?: number | undefined;
272
279
  /**
273
280
  * Sets the interval value in milliseconds to check for request and headers timeout in incomplete requests.
274
281
  * @default 30000
@@ -413,12 +420,18 @@ declare module "http" {
413
420
  /**
414
421
  * The number of milliseconds of inactivity a server needs to wait for additional
415
422
  * incoming data, after it has finished writing the last response, before a socket
416
- * will be destroyed. If the server receives new data before the keep-alive
417
- * timeout has fired, it will reset the regular inactivity timeout, i.e., `server.timeout`.
423
+ * will be destroyed.
424
+ *
425
+ * This timeout value is combined with the
426
+ * `server.keepAliveTimeoutBuffer` option to determine the actual socket
427
+ * timeout, calculated as:
428
+ * socketTimeout = keepAliveTimeout + keepAliveTimeoutBuffer
429
+ * If the server receives new data before the keep-alive timeout has fired, it
430
+ * will reset the regular inactivity timeout, i.e., `server.timeout`.
418
431
  *
419
432
  * A value of `0` will disable the keep-alive timeout behavior on incoming
420
433
  * connections.
421
- * A value of `0` makes the http server behave similarly to Node.js versions prior
434
+ * A value of `0` makes the HTTP server behave similarly to Node.js versions prior
422
435
  * to 8.0.0, which did not have a keep-alive timeout.
423
436
  *
424
437
  * The socket timeout logic is set up on connection, so changing this value only
@@ -426,6 +439,18 @@ declare module "http" {
426
439
  * @since v8.0.0
427
440
  */
428
441
  keepAliveTimeout: number;
442
+ /**
443
+ * An additional buffer time added to the
444
+ * `server.keepAliveTimeout` to extend the internal socket timeout.
445
+ *
446
+ * This buffer helps reduce connection reset (`ECONNRESET`) errors by increasing
447
+ * the socket timeout slightly beyond the advertised keep-alive timeout.
448
+ *
449
+ * This option applies only to new incoming connections.
450
+ * @since v22.19.0
451
+ * @default 1000
452
+ */
453
+ keepAliveTimeoutBuffer: number;
429
454
  /**
430
455
  * Sets the timeout value in milliseconds for receiving the entire request from
431
456
  * the client.
@@ -460,13 +485,13 @@ declare module "http" {
460
485
  addListener(event: "clientError", listener: (err: Error, socket: stream.Duplex) => void): this;
461
486
  addListener(
462
487
  event: "connect",
463
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
488
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
464
489
  ): this;
465
490
  addListener(event: "dropRequest", listener: (req: InstanceType<Request>, socket: stream.Duplex) => void): this;
466
491
  addListener(event: "request", listener: RequestListener<Request, Response>): this;
467
492
  addListener(
468
493
  event: "upgrade",
469
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
494
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
470
495
  ): this;
471
496
  emit(event: string, ...args: any[]): boolean;
472
497
  emit(event: "close"): boolean;
@@ -484,14 +509,14 @@ declare module "http" {
484
509
  res: InstanceType<Response> & { req: InstanceType<Request> },
485
510
  ): boolean;
486
511
  emit(event: "clientError", err: Error, socket: stream.Duplex): boolean;
487
- emit(event: "connect", req: InstanceType<Request>, socket: stream.Duplex, head: Buffer): boolean;
512
+ emit(event: "connect", req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer): boolean;
488
513
  emit(event: "dropRequest", req: InstanceType<Request>, socket: stream.Duplex): boolean;
489
514
  emit(
490
515
  event: "request",
491
516
  req: InstanceType<Request>,
492
517
  res: InstanceType<Response> & { req: InstanceType<Request> },
493
518
  ): boolean;
494
- emit(event: "upgrade", req: InstanceType<Request>, socket: stream.Duplex, head: Buffer): boolean;
519
+ emit(event: "upgrade", req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer): boolean;
495
520
  on(event: string, listener: (...args: any[]) => void): this;
496
521
  on(event: "close", listener: () => void): this;
497
522
  on(event: "connection", listener: (socket: Socket) => void): this;
@@ -500,10 +525,16 @@ declare module "http" {
500
525
  on(event: "checkContinue", listener: RequestListener<Request, Response>): this;
501
526
  on(event: "checkExpectation", listener: RequestListener<Request, Response>): this;
502
527
  on(event: "clientError", listener: (err: Error, socket: stream.Duplex) => void): this;
503
- on(event: "connect", listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void): this;
528
+ on(
529
+ event: "connect",
530
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
531
+ ): this;
504
532
  on(event: "dropRequest", listener: (req: InstanceType<Request>, socket: stream.Duplex) => void): this;
505
533
  on(event: "request", listener: RequestListener<Request, Response>): this;
506
- on(event: "upgrade", listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void): this;
534
+ on(
535
+ event: "upgrade",
536
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
537
+ ): this;
507
538
  once(event: string, listener: (...args: any[]) => void): this;
508
539
  once(event: "close", listener: () => void): this;
509
540
  once(event: "connection", listener: (socket: Socket) => void): this;
@@ -514,13 +545,13 @@ declare module "http" {
514
545
  once(event: "clientError", listener: (err: Error, socket: stream.Duplex) => void): this;
515
546
  once(
516
547
  event: "connect",
517
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
548
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
518
549
  ): this;
519
550
  once(event: "dropRequest", listener: (req: InstanceType<Request>, socket: stream.Duplex) => void): this;
520
551
  once(event: "request", listener: RequestListener<Request, Response>): this;
521
552
  once(
522
553
  event: "upgrade",
523
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
554
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
524
555
  ): this;
525
556
  prependListener(event: string, listener: (...args: any[]) => void): this;
526
557
  prependListener(event: "close", listener: () => void): this;
@@ -532,7 +563,7 @@ declare module "http" {
532
563
  prependListener(event: "clientError", listener: (err: Error, socket: stream.Duplex) => void): this;
533
564
  prependListener(
534
565
  event: "connect",
535
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
566
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
536
567
  ): this;
537
568
  prependListener(
538
569
  event: "dropRequest",
@@ -541,7 +572,7 @@ declare module "http" {
541
572
  prependListener(event: "request", listener: RequestListener<Request, Response>): this;
542
573
  prependListener(
543
574
  event: "upgrade",
544
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
575
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
545
576
  ): this;
546
577
  prependOnceListener(event: string, listener: (...args: any[]) => void): this;
547
578
  prependOnceListener(event: "close", listener: () => void): this;
@@ -553,7 +584,7 @@ declare module "http" {
553
584
  prependOnceListener(event: "clientError", listener: (err: Error, socket: stream.Duplex) => void): this;
554
585
  prependOnceListener(
555
586
  event: "connect",
556
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
587
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
557
588
  ): this;
558
589
  prependOnceListener(
559
590
  event: "dropRequest",
@@ -562,7 +593,7 @@ declare module "http" {
562
593
  prependOnceListener(event: "request", listener: RequestListener<Request, Response>): this;
563
594
  prependOnceListener(
564
595
  event: "upgrade",
565
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
596
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
566
597
  ): this;
567
598
  }
568
599
  /**
@@ -911,7 +942,7 @@ declare module "http" {
911
942
  * the request body should be sent.
912
943
  * @since v10.0.0
913
944
  */
914
- writeProcessing(): void;
945
+ writeProcessing(callback?: () => void): void;
915
946
  }
916
947
  interface InformationEvent {
917
948
  statusCode: number;
@@ -1082,7 +1113,7 @@ declare module "http" {
1082
1113
  addListener(event: "abort", listener: () => void): this;
1083
1114
  addListener(
1084
1115
  event: "connect",
1085
- listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,
1116
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1086
1117
  ): this;
1087
1118
  addListener(event: "continue", listener: () => void): this;
1088
1119
  addListener(event: "information", listener: (info: InformationEvent) => void): this;
@@ -1091,7 +1122,7 @@ declare module "http" {
1091
1122
  addListener(event: "timeout", listener: () => void): this;
1092
1123
  addListener(
1093
1124
  event: "upgrade",
1094
- listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,
1125
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1095
1126
  ): this;
1096
1127
  addListener(event: "close", listener: () => void): this;
1097
1128
  addListener(event: "drain", listener: () => void): this;
@@ -1104,13 +1135,19 @@ declare module "http" {
1104
1135
  * @deprecated
1105
1136
  */
1106
1137
  on(event: "abort", listener: () => void): this;
1107
- on(event: "connect", listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this;
1138
+ on(
1139
+ event: "connect",
1140
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1141
+ ): this;
1108
1142
  on(event: "continue", listener: () => void): this;
1109
1143
  on(event: "information", listener: (info: InformationEvent) => void): this;
1110
1144
  on(event: "response", listener: (response: IncomingMessage) => void): this;
1111
1145
  on(event: "socket", listener: (socket: Socket) => void): this;
1112
1146
  on(event: "timeout", listener: () => void): this;
1113
- on(event: "upgrade", listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this;
1147
+ on(
1148
+ event: "upgrade",
1149
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1150
+ ): this;
1114
1151
  on(event: "close", listener: () => void): this;
1115
1152
  on(event: "drain", listener: () => void): this;
1116
1153
  on(event: "error", listener: (err: Error) => void): this;
@@ -1122,13 +1159,19 @@ declare module "http" {
1122
1159
  * @deprecated
1123
1160
  */
1124
1161
  once(event: "abort", listener: () => void): this;
1125
- once(event: "connect", listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this;
1162
+ once(
1163
+ event: "connect",
1164
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1165
+ ): this;
1126
1166
  once(event: "continue", listener: () => void): this;
1127
1167
  once(event: "information", listener: (info: InformationEvent) => void): this;
1128
1168
  once(event: "response", listener: (response: IncomingMessage) => void): this;
1129
1169
  once(event: "socket", listener: (socket: Socket) => void): this;
1130
1170
  once(event: "timeout", listener: () => void): this;
1131
- once(event: "upgrade", listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this;
1171
+ once(
1172
+ event: "upgrade",
1173
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1174
+ ): this;
1132
1175
  once(event: "close", listener: () => void): this;
1133
1176
  once(event: "drain", listener: () => void): this;
1134
1177
  once(event: "error", listener: (err: Error) => void): this;
@@ -1142,7 +1185,7 @@ declare module "http" {
1142
1185
  prependListener(event: "abort", listener: () => void): this;
1143
1186
  prependListener(
1144
1187
  event: "connect",
1145
- listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,
1188
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1146
1189
  ): this;
1147
1190
  prependListener(event: "continue", listener: () => void): this;
1148
1191
  prependListener(event: "information", listener: (info: InformationEvent) => void): this;
@@ -1151,7 +1194,7 @@ declare module "http" {
1151
1194
  prependListener(event: "timeout", listener: () => void): this;
1152
1195
  prependListener(
1153
1196
  event: "upgrade",
1154
- listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,
1197
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1155
1198
  ): this;
1156
1199
  prependListener(event: "close", listener: () => void): this;
1157
1200
  prependListener(event: "drain", listener: () => void): this;
@@ -1166,7 +1209,7 @@ declare module "http" {
1166
1209
  prependOnceListener(event: "abort", listener: () => void): this;
1167
1210
  prependOnceListener(
1168
1211
  event: "connect",
1169
- listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,
1212
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1170
1213
  ): this;
1171
1214
  prependOnceListener(event: "continue", listener: () => void): this;
1172
1215
  prependOnceListener(event: "information", listener: (info: InformationEvent) => void): this;
@@ -1175,7 +1218,7 @@ declare module "http" {
1175
1218
  prependOnceListener(event: "timeout", listener: () => void): this;
1176
1219
  prependOnceListener(
1177
1220
  event: "upgrade",
1178
- listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,
1221
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1179
1222
  ): this;
1180
1223
  prependOnceListener(event: "close", listener: () => void): this;
1181
1224
  prependOnceListener(event: "drain", listener: () => void): this;
@@ -1419,7 +1462,7 @@ declare module "http" {
1419
1462
  */
1420
1463
  destroy(error?: Error): this;
1421
1464
  }
1422
- interface AgentOptions extends Partial<TcpSocketConnectOpts> {
1465
+ interface AgentOptions extends NodeJS.PartialOptions<TcpSocketConnectOpts> {
1423
1466
  /**
1424
1467
  * Keep sockets around in a pool to be used by other requests in the future. Default = false
1425
1468
  */
@@ -1570,6 +1613,68 @@ declare module "http" {
1570
1613
  * @since v0.11.4
1571
1614
  */
1572
1615
  destroy(): void;
1616
+ /**
1617
+ * Produces a socket/stream to be used for HTTP requests.
1618
+ *
1619
+ * By default, this function is the same as `net.createConnection()`. However,
1620
+ * custom agents may override this method in case greater flexibility is desired.
1621
+ *
1622
+ * A socket/stream can be supplied in one of two ways: by returning the
1623
+ * socket/stream from this function, or by passing the socket/stream to `callback`.
1624
+ *
1625
+ * This method is guaranteed to return an instance of the `net.Socket` class,
1626
+ * a subclass of `stream.Duplex`, unless the user specifies a socket
1627
+ * type other than `net.Socket`.
1628
+ *
1629
+ * `callback` has a signature of `(err, stream)`.
1630
+ * @since v0.11.4
1631
+ * @param options Options containing connection details. Check `createConnection` for the format of the options
1632
+ * @param callback Callback function that receives the created socket
1633
+ */
1634
+ createConnection(
1635
+ options: ClientRequestArgs,
1636
+ callback?: (err: Error | null, stream: stream.Duplex) => void,
1637
+ ): stream.Duplex | null | undefined;
1638
+ /**
1639
+ * Called when `socket` is detached from a request and could be persisted by the`Agent`. Default behavior is to:
1640
+ *
1641
+ * ```js
1642
+ * socket.setKeepAlive(true, this.keepAliveMsecs);
1643
+ * socket.unref();
1644
+ * return true;
1645
+ * ```
1646
+ *
1647
+ * This method can be overridden by a particular `Agent` subclass. If this
1648
+ * method returns a falsy value, the socket will be destroyed instead of persisting
1649
+ * it for use with the next request.
1650
+ *
1651
+ * The `socket` argument can be an instance of `net.Socket`, a subclass of `stream.Duplex`.
1652
+ * @since v8.1.0
1653
+ */
1654
+ keepSocketAlive(socket: stream.Duplex): void;
1655
+ /**
1656
+ * Called when `socket` is attached to `request` after being persisted because of
1657
+ * the keep-alive options. Default behavior is to:
1658
+ *
1659
+ * ```js
1660
+ * socket.ref();
1661
+ * ```
1662
+ *
1663
+ * This method can be overridden by a particular `Agent` subclass.
1664
+ *
1665
+ * The `socket` argument can be an instance of `net.Socket`, a subclass of `stream.Duplex`.
1666
+ * @since v8.1.0
1667
+ */
1668
+ reuseSocket(socket: stream.Duplex, request: ClientRequest): void;
1669
+ /**
1670
+ * Get a unique name for a set of request options, to determine whether a
1671
+ * connection can be reused. For an HTTP agent, this returns`host:port:localAddress` or `host:port:localAddress:family`. For an HTTPS agent,
1672
+ * the name includes the CA, cert, ciphers, and other HTTPS/TLS-specific options
1673
+ * that determine socket reusability.
1674
+ * @since v0.11.4
1675
+ * @param options A set of options providing information for name generation
1676
+ */
1677
+ getName(options?: ClientRequestArgs): string;
1573
1678
  }
1574
1679
  const METHODS: string[];
1575
1680
  const STATUS_CODES: {
@@ -1966,18 +2071,18 @@ declare module "http" {
1966
2071
  */
1967
2072
  const maxHeaderSize: number;
1968
2073
  /**
1969
- * A browser-compatible implementation of [WebSocket](https://nodejs.org/docs/latest/api/http.html#websocket).
2074
+ * A browser-compatible implementation of `WebSocket`.
1970
2075
  * @since v22.5.0
1971
2076
  */
1972
- const WebSocket: import("undici-types").WebSocket;
2077
+ const WebSocket: typeof import("undici-types").WebSocket;
1973
2078
  /**
1974
2079
  * @since v22.5.0
1975
2080
  */
1976
- const CloseEvent: import("undici-types").CloseEvent;
2081
+ const CloseEvent: typeof import("undici-types").CloseEvent;
1977
2082
  /**
1978
2083
  * @since v22.5.0
1979
2084
  */
1980
- const MessageEvent: import("undici-types").MessageEvent;
2085
+ const MessageEvent: typeof import("undici-types").MessageEvent;
1981
2086
  }
1982
2087
  declare module "node:http" {
1983
2088
  export * from "http";