@types/node 16.4.2 → 16.4.6

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.
node/util.d.ts CHANGED
@@ -1,6 +1,15 @@
1
+ /**
2
+ * The `util` module supports the needs of Node.js internal APIs. Many of the
3
+ * utilities are useful for application and module developers as well. To access
4
+ * it:
5
+ *
6
+ * ```js
7
+ * const util = require('util');
8
+ * ```
9
+ * @see [source](https://github.com/nodejs/node/blob/v16.4.2/lib/util.js)
10
+ */
1
11
  declare module 'util' {
2
12
  import * as types from 'node:util/types';
3
-
4
13
  export interface InspectOptions {
5
14
  /**
6
15
  * If set to `true`, getters are going to be
@@ -41,24 +50,257 @@ declare module 'util' {
41
50
  compact?: boolean | number | undefined;
42
51
  sorted?: boolean | ((a: string, b: string) => number) | undefined;
43
52
  }
44
-
45
53
  export type Style = 'special' | 'number' | 'bigint' | 'boolean' | 'undefined' | 'null' | 'string' | 'symbol' | 'date' | 'regexp' | 'module';
46
54
  export type CustomInspectFunction = (depth: number, options: InspectOptionsStylized) => string;
47
55
  export interface InspectOptionsStylized extends InspectOptions {
48
56
  stylize(text: string, styleType: Style): string;
49
57
  }
58
+ /**
59
+ * The `util.format()` method returns a formatted string using the first argument
60
+ * as a `printf`\-like format string which can contain zero or more format
61
+ * specifiers. Each specifier is replaced with the converted value from the
62
+ * corresponding argument. Supported specifiers are:
63
+ *
64
+ * If a specifier does not have a corresponding argument, it is not replaced:
65
+ *
66
+ * ```js
67
+ * util.format('%s:%s', 'foo');
68
+ * // Returns: 'foo:%s'
69
+ * ```
70
+ *
71
+ * Values that are not part of the format string are formatted using`util.inspect()` if their type is not `string`.
72
+ *
73
+ * If there are more arguments passed to the `util.format()` method than the
74
+ * number of specifiers, the extra arguments are concatenated to the returned
75
+ * string, separated by spaces:
76
+ *
77
+ * ```js
78
+ * util.format('%s:%s', 'foo', 'bar', 'baz');
79
+ * // Returns: 'foo:bar baz'
80
+ * ```
81
+ *
82
+ * If the first argument does not contain a valid format specifier, `util.format()`returns a string that is the concatenation of all arguments separated by spaces:
83
+ *
84
+ * ```js
85
+ * util.format(1, 2, 3);
86
+ * // Returns: '1 2 3'
87
+ * ```
88
+ *
89
+ * If only one argument is passed to `util.format()`, it is returned as it is
90
+ * without any formatting:
91
+ *
92
+ * ```js
93
+ * util.format('%% %s');
94
+ * // Returns: '%% %s'
95
+ * ```
96
+ *
97
+ * `util.format()` is a synchronous method that is intended as a debugging tool.
98
+ * Some input values can have a significant performance overhead that can block the
99
+ * event loop. Use this function with care and never in a hot code path.
100
+ * @since v0.5.3
101
+ * @param format A `printf`-like format string.
102
+ */
50
103
  export function format(format?: any, ...param: any[]): string;
104
+ /**
105
+ * This function is identical to {@link format}, except in that it takes
106
+ * an `inspectOptions` argument which specifies options that are passed along to {@link inspect}.
107
+ *
108
+ * ```js
109
+ * util.formatWithOptions({ colors: true }, 'See object %O', { foo: 42 });
110
+ * // Returns 'See object { foo: 42 }', where `42` is colored as a number
111
+ * // when printed to a terminal.
112
+ * ```
113
+ * @since v10.0.0
114
+ */
51
115
  export function formatWithOptions(inspectOptions: InspectOptions, format?: any, ...param: any[]): string;
116
+ /**
117
+ * Returns a Map of all system error codes available from the Node.js API.
118
+ * The mapping between error codes and error names is platform-dependent.
119
+ * See `Common System Errors` for the names of common errors.
120
+ *
121
+ * ```js
122
+ * fs.access('file/that/does/not/exist', (err) => {
123
+ * const errorMap = util.getSystemErrorMap();
124
+ * const name = errorMap.get(err.errno);
125
+ * console.error(name); // ENOENT
126
+ * });
127
+ * ```
128
+ * @since v16.0.0
129
+ */
52
130
  export function getSystemErrorMap(): Map<number, [string, string]>;
53
-
54
- /** @deprecated since v0.11.3 - use a third party module instead. */
131
+ /**
132
+ * The `util.log()` method prints the given `string` to `stdout` with an included
133
+ * timestamp.
134
+ *
135
+ * ```js
136
+ * const util = require('util');
137
+ *
138
+ * util.log('Timestamped message.');
139
+ * ```
140
+ * @since v0.3.0
141
+ * @deprecated Since v6.0.0 - Use a third party module instead.
142
+ */
55
143
  export function log(string: string): void;
144
+ /**
145
+ * The `util.inspect()` method returns a string representation of `object` that is
146
+ * intended for debugging. The output of `util.inspect` may change at any time
147
+ * and should not be depended upon programmatically. Additional `options` may be
148
+ * passed that alter the result.`util.inspect()` will use the constructor's name and/or `@@toStringTag` to make
149
+ * an identifiable tag for an inspected value.
150
+ *
151
+ * ```js
152
+ * class Foo {
153
+ * get [Symbol.toStringTag]() {
154
+ * return 'bar';
155
+ * }
156
+ * }
157
+ *
158
+ * class Bar {}
159
+ *
160
+ * const baz = Object.create(null, { [Symbol.toStringTag]: { value: 'foo' } });
161
+ *
162
+ * util.inspect(new Foo()); // 'Foo [bar] {}'
163
+ * util.inspect(new Bar()); // 'Bar {}'
164
+ * util.inspect(baz); // '[foo] {}'
165
+ * ```
166
+ *
167
+ * Circular references point to their anchor by using a reference index:
168
+ *
169
+ * ```js
170
+ * const { inspect } = require('util');
171
+ *
172
+ * const obj = {};
173
+ * obj.a = [obj];
174
+ * obj.b = {};
175
+ * obj.b.inner = obj.b;
176
+ * obj.b.obj = obj;
177
+ *
178
+ * console.log(inspect(obj));
179
+ * // <ref *1> {
180
+ * // a: [ [Circular *1] ],
181
+ * // b: <ref *2> { inner: [Circular *2], obj: [Circular *1] }
182
+ * // }
183
+ * ```
184
+ *
185
+ * The following example inspects all properties of the `util` object:
186
+ *
187
+ * ```js
188
+ * const util = require('util');
189
+ *
190
+ * console.log(util.inspect(util, { showHidden: true, depth: null }));
191
+ * ```
192
+ *
193
+ * The following example highlights the effect of the `compact` option:
194
+ *
195
+ * ```js
196
+ * const util = require('util');
197
+ *
198
+ * const o = {
199
+ * a: [1, 2, [[
200
+ * 'Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit, sed do ' +
201
+ * 'eiusmod \ntempor incididunt ut labore et dolore magna aliqua.',
202
+ * 'test',
203
+ * 'foo']], 4],
204
+ * b: new Map([['za', 1], ['zb', 'test']])
205
+ * };
206
+ * console.log(util.inspect(o, { compact: true, depth: 5, breakLength: 80 }));
207
+ *
208
+ * // { a:
209
+ * // [ 1,
210
+ * // 2,
211
+ * // [ [ 'Lorem ipsum dolor sit amet,\nconsectetur [...]', // A long line
212
+ * // 'test',
213
+ * // 'foo' ] ],
214
+ * // 4 ],
215
+ * // b: Map(2) { 'za' => 1, 'zb' => 'test' } }
216
+ *
217
+ * // Setting `compact` to false or an integer creates more reader friendly output.
218
+ * console.log(util.inspect(o, { compact: false, depth: 5, breakLength: 80 }));
219
+ *
220
+ * // {
221
+ * // a: [
222
+ * // 1,
223
+ * // 2,
224
+ * // [
225
+ * // [
226
+ * // 'Lorem ipsum dolor sit amet,\n' +
227
+ * // 'consectetur adipiscing elit, sed do eiusmod \n' +
228
+ * // 'tempor incididunt ut labore et dolore magna aliqua.',
229
+ * // 'test',
230
+ * // 'foo'
231
+ * // ]
232
+ * // ],
233
+ * // 4
234
+ * // ],
235
+ * // b: Map(2) {
236
+ * // 'za' => 1,
237
+ * // 'zb' => 'test'
238
+ * // }
239
+ * // }
240
+ *
241
+ * // Setting `breakLength` to e.g. 150 will print the "Lorem ipsum" text in a
242
+ * // single line.
243
+ * ```
244
+ *
245
+ * The `showHidden` option allows [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) and
246
+ * [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) entries to be
247
+ * inspected. If there are more entries than `maxArrayLength`, there is no
248
+ * guarantee which entries are displayed. That means retrieving the same[`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) entries twice may
249
+ * result in different output. Furthermore, entries
250
+ * with no remaining strong references may be garbage collected at any time.
251
+ *
252
+ * ```js
253
+ * const { inspect } = require('util');
254
+ *
255
+ * const obj = { a: 1 };
256
+ * const obj2 = { b: 2 };
257
+ * const weakSet = new WeakSet([obj, obj2]);
258
+ *
259
+ * console.log(inspect(weakSet, { showHidden: true }));
260
+ * // WeakSet { { a: 1 }, { b: 2 } }
261
+ * ```
262
+ *
263
+ * The `sorted` option ensures that an object's property insertion order does not
264
+ * impact the result of `util.inspect()`.
265
+ *
266
+ * ```js
267
+ * const { inspect } = require('util');
268
+ * const assert = require('assert');
269
+ *
270
+ * const o1 = {
271
+ * b: [2, 3, 1],
272
+ * a: '`a` comes before `b`',
273
+ * c: new Set([2, 3, 1])
274
+ * };
275
+ * console.log(inspect(o1, { sorted: true }));
276
+ * // { a: '`a` comes before `b`', b: [ 2, 3, 1 ], c: Set(3) { 1, 2, 3 } }
277
+ * console.log(inspect(o1, { sorted: (a, b) => b.localeCompare(a) }));
278
+ * // { c: Set(3) { 3, 2, 1 }, b: [ 2, 3, 1 ], a: '`a` comes before `b`' }
279
+ *
280
+ * const o2 = {
281
+ * c: new Set([2, 1, 3]),
282
+ * a: '`a` comes before `b`',
283
+ * b: [2, 3, 1]
284
+ * };
285
+ * assert.strict.equal(
286
+ * inspect(o1, { sorted: true }),
287
+ * inspect(o2, { sorted: true })
288
+ * );
289
+ * ```
290
+ *
291
+ * `util.inspect()` is a synchronous method intended for debugging. Its maximum
292
+ * output length is approximately 128 MB. Inputs that result in longer output will
293
+ * be truncated.
294
+ * @since v0.3.0
295
+ * @param object Any JavaScript primitive or `Object`.
296
+ * @return The representation of `object`.
297
+ */
56
298
  export function inspect(object: any, showHidden?: boolean, depth?: number | null, color?: boolean): string;
57
299
  export function inspect(object: any, options: InspectOptions): string;
58
300
  export namespace inspect {
59
301
  let colors: NodeJS.Dict<[number, number]>;
60
302
  let styles: {
61
- [K in Style]: string
303
+ [K in Style]: string;
62
304
  };
63
305
  let defaultOptions: InspectOptions;
64
306
  /**
@@ -67,41 +309,528 @@ declare module 'util' {
67
309
  let replDefaults: InspectOptions;
68
310
  const custom: unique symbol;
69
311
  }
70
- /** @deprecated since v4.0.0 - use `Array.isArray()` instead. */
312
+ /**
313
+ * Alias for [`Array.isArray()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray).
314
+ *
315
+ * Returns `true` if the given `object` is an `Array`. Otherwise, returns `false`.
316
+ *
317
+ * ```js
318
+ * const util = require('util');
319
+ *
320
+ * util.isArray([]);
321
+ * // Returns: true
322
+ * util.isArray(new Array());
323
+ * // Returns: true
324
+ * util.isArray({});
325
+ * // Returns: false
326
+ * ```
327
+ * @since v0.6.0
328
+ * @deprecated Since v4.0.0 - Use `isArray` instead.
329
+ */
71
330
  export function isArray(object: unknown): object is unknown[];
72
- /** @deprecated since v4.0.0 - use `util.types.isRegExp()` instead. */
331
+ /**
332
+ * Returns `true` if the given `object` is a `RegExp`. Otherwise, returns `false`.
333
+ *
334
+ * ```js
335
+ * const util = require('util');
336
+ *
337
+ * util.isRegExp(/some regexp/);
338
+ * // Returns: true
339
+ * util.isRegExp(new RegExp('another regexp'));
340
+ * // Returns: true
341
+ * util.isRegExp({});
342
+ * // Returns: false
343
+ * ```
344
+ * @since v0.6.0
345
+ * @deprecated Since v4.0.0 - Deprecated
346
+ */
73
347
  export function isRegExp(object: unknown): object is RegExp;
74
- /** @deprecated since v4.0.0 - use `util.types.isDate()` instead. */
348
+ /**
349
+ * Returns `true` if the given `object` is a `Date`. Otherwise, returns `false`.
350
+ *
351
+ * ```js
352
+ * const util = require('util');
353
+ *
354
+ * util.isDate(new Date());
355
+ * // Returns: true
356
+ * util.isDate(Date());
357
+ * // false (without 'new' returns a String)
358
+ * util.isDate({});
359
+ * // Returns: false
360
+ * ```
361
+ * @since v0.6.0
362
+ * @deprecated Since v4.0.0 - Use {@link types.isDate} instead.
363
+ */
75
364
  export function isDate(object: unknown): object is Date;
76
- /** @deprecated since v4.0.0 - use `util.types.isNativeError()` instead. */
365
+ /**
366
+ * Returns `true` if the given `object` is an `Error`. Otherwise, returns`false`.
367
+ *
368
+ * ```js
369
+ * const util = require('util');
370
+ *
371
+ * util.isError(new Error());
372
+ * // Returns: true
373
+ * util.isError(new TypeError());
374
+ * // Returns: true
375
+ * util.isError({ name: 'Error', message: 'an error occurred' });
376
+ * // Returns: false
377
+ * ```
378
+ *
379
+ * This method relies on `Object.prototype.toString()` behavior. It is
380
+ * possible to obtain an incorrect result when the `object` argument manipulates`@@toStringTag`.
381
+ *
382
+ * ```js
383
+ * const util = require('util');
384
+ * const obj = { name: 'Error', message: 'an error occurred' };
385
+ *
386
+ * util.isError(obj);
387
+ * // Returns: false
388
+ * obj[Symbol.toStringTag] = 'Error';
389
+ * util.isError(obj);
390
+ * // Returns: true
391
+ * ```
392
+ * @since v0.6.0
393
+ * @deprecated Since v4.0.0 - Use {@link types.isNativeError} instead.
394
+ */
77
395
  export function isError(object: unknown): object is Error;
396
+ /**
397
+ * Usage of `util.inherits()` is discouraged. Please use the ES6 `class` and`extends` keywords to get language level inheritance support. Also note
398
+ * that the two styles are [semantically incompatible](https://github.com/nodejs/node/issues/4179).
399
+ *
400
+ * Inherit the prototype methods from one [constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor) into another. The
401
+ * prototype of `constructor` will be set to a new object created from`superConstructor`.
402
+ *
403
+ * This mainly adds some input validation on top of`Object.setPrototypeOf(constructor.prototype, superConstructor.prototype)`.
404
+ * As an additional convenience, `superConstructor` will be accessible
405
+ * through the `constructor.super_` property.
406
+ *
407
+ * ```js
408
+ * const util = require('util');
409
+ * const EventEmitter = require('events');
410
+ *
411
+ * function MyStream() {
412
+ * EventEmitter.call(this);
413
+ * }
414
+ *
415
+ * util.inherits(MyStream, EventEmitter);
416
+ *
417
+ * MyStream.prototype.write = function(data) {
418
+ * this.emit('data', data);
419
+ * };
420
+ *
421
+ * const stream = new MyStream();
422
+ *
423
+ * console.log(stream instanceof EventEmitter); // true
424
+ * console.log(MyStream.super_ === EventEmitter); // true
425
+ *
426
+ * stream.on('data', (data) => {
427
+ * console.log(`Received data: "${data}"`);
428
+ * });
429
+ * stream.write('It works!'); // Received data: "It works!"
430
+ * ```
431
+ *
432
+ * ES6 example using `class` and `extends`:
433
+ *
434
+ * ```js
435
+ * const EventEmitter = require('events');
436
+ *
437
+ * class MyStream extends EventEmitter {
438
+ * write(data) {
439
+ * this.emit('data', data);
440
+ * }
441
+ * }
442
+ *
443
+ * const stream = new MyStream();
444
+ *
445
+ * stream.on('data', (data) => {
446
+ * console.log(`Received data: "${data}"`);
447
+ * });
448
+ * stream.write('With ES6');
449
+ * ```
450
+ * @since v0.3.0
451
+ * @deprecated Legacy: Use ES2015 class syntax and `extends` keyword instead.
452
+ */
78
453
  export function inherits(constructor: unknown, superConstructor: unknown): void;
79
- export function debuglog(key: string): (msg: string, ...param: unknown[]) => void;
80
- /** @deprecated since v4.0.0 - use `typeof value === 'boolean'` instead. */
454
+ export type DebugLoggerFunction = (msg: string, ...param: unknown[]) => void;
455
+ export interface DebugLogger extends DebugLoggerFunction {
456
+ enabled: boolean;
457
+ }
458
+ /**
459
+ * The `util.debuglog()` method is used to create a function that conditionally
460
+ * writes debug messages to `stderr` based on the existence of the `NODE_DEBUG`environment variable. If the `section` name appears within the value of that
461
+ * environment variable, then the returned function operates similar to `console.error()`. If not, then the returned function is a no-op.
462
+ *
463
+ * ```js
464
+ * const util = require('util');
465
+ * const debuglog = util.debuglog('foo');
466
+ *
467
+ * debuglog('hello from foo [%d]', 123);
468
+ * ```
469
+ *
470
+ * If this program is run with `NODE_DEBUG=foo` in the environment, then
471
+ * it will output something like:
472
+ *
473
+ * ```console
474
+ * FOO 3245: hello from foo [123]
475
+ * ```
476
+ *
477
+ * where `3245` is the process id. If it is not run with that
478
+ * environment variable set, then it will not print anything.
479
+ *
480
+ * The `section` supports wildcard also:
481
+ *
482
+ * ```js
483
+ * const util = require('util');
484
+ * const debuglog = util.debuglog('foo-bar');
485
+ *
486
+ * debuglog('hi there, it\'s foo-bar [%d]', 2333);
487
+ * ```
488
+ *
489
+ * if it is run with `NODE_DEBUG=foo*` in the environment, then it will output
490
+ * something like:
491
+ *
492
+ * ```console
493
+ * FOO-BAR 3257: hi there, it's foo-bar [2333]
494
+ * ```
495
+ *
496
+ * Multiple comma-separated `section` names may be specified in the `NODE_DEBUG`environment variable: `NODE_DEBUG=fs,net,tls`.
497
+ *
498
+ * The optional `callback` argument can be used to replace the logging function
499
+ * with a different function that doesn't have any initialization or
500
+ * unnecessary wrapping.
501
+ *
502
+ * ```js
503
+ * const util = require('util');
504
+ * let debuglog = util.debuglog('internals', (debug) => {
505
+ * // Replace with a logging function that optimizes out
506
+ * // testing if the section is enabled
507
+ * debuglog = debug;
508
+ * });
509
+ * ```
510
+ * @since v0.11.3
511
+ * @param section A string identifying the portion of the application for which the `debuglog` function is being created.
512
+ * @param callback A callback invoked the first time the logging function is called with a function argument that is a more optimized logging function.
513
+ * @return The logging function
514
+ */
515
+ export function debuglog(section: string, callback?: (fn: DebugLoggerFunction) => void): DebugLogger;
516
+ /**
517
+ * Returns `true` if the given `object` is a `Boolean`. Otherwise, returns `false`.
518
+ *
519
+ * ```js
520
+ * const util = require('util');
521
+ *
522
+ * util.isBoolean(1);
523
+ * // Returns: false
524
+ * util.isBoolean(0);
525
+ * // Returns: false
526
+ * util.isBoolean(false);
527
+ * // Returns: true
528
+ * ```
529
+ * @since v0.11.5
530
+ * @deprecated Since v4.0.0 - Use `typeof value === 'boolean'` instead.
531
+ */
81
532
  export function isBoolean(object: unknown): object is boolean;
82
- /** @deprecated since v4.0.0 - use `Buffer.isBuffer()` instead. */
533
+ /**
534
+ * Returns `true` if the given `object` is a `Buffer`. Otherwise, returns `false`.
535
+ *
536
+ * ```js
537
+ * const util = require('util');
538
+ *
539
+ * util.isBuffer({ length: 0 });
540
+ * // Returns: false
541
+ * util.isBuffer([]);
542
+ * // Returns: false
543
+ * util.isBuffer(Buffer.from('hello world'));
544
+ * // Returns: true
545
+ * ```
546
+ * @since v0.11.5
547
+ * @deprecated Since v4.0.0 - Use `isBuffer` instead.
548
+ */
83
549
  export function isBuffer(object: unknown): object is Buffer;
84
- /** @deprecated since v4.0.0 - use `typeof value === 'function'` instead. */
550
+ /**
551
+ * Returns `true` if the given `object` is a `Function`. Otherwise, returns`false`.
552
+ *
553
+ * ```js
554
+ * const util = require('util');
555
+ *
556
+ * function Foo() {}
557
+ * const Bar = () => {};
558
+ *
559
+ * util.isFunction({});
560
+ * // Returns: false
561
+ * util.isFunction(Foo);
562
+ * // Returns: true
563
+ * util.isFunction(Bar);
564
+ * // Returns: true
565
+ * ```
566
+ * @since v0.11.5
567
+ * @deprecated Since v4.0.0 - Use `typeof value === 'function'` instead.
568
+ */
85
569
  export function isFunction(object: unknown): boolean;
86
- /** @deprecated since v4.0.0 - use `value === null` instead. */
570
+ /**
571
+ * Returns `true` if the given `object` is strictly `null`. Otherwise, returns`false`.
572
+ *
573
+ * ```js
574
+ * const util = require('util');
575
+ *
576
+ * util.isNull(0);
577
+ * // Returns: false
578
+ * util.isNull(undefined);
579
+ * // Returns: false
580
+ * util.isNull(null);
581
+ * // Returns: true
582
+ * ```
583
+ * @since v0.11.5
584
+ * @deprecated Since v4.0.0 - Use `value === null` instead.
585
+ */
87
586
  export function isNull(object: unknown): object is null;
88
- /** @deprecated since v4.0.0 - use `value === null || value === undefined` instead. */
587
+ /**
588
+ * Returns `true` if the given `object` is `null` or `undefined`. Otherwise,
589
+ * returns `false`.
590
+ *
591
+ * ```js
592
+ * const util = require('util');
593
+ *
594
+ * util.isNullOrUndefined(0);
595
+ * // Returns: false
596
+ * util.isNullOrUndefined(undefined);
597
+ * // Returns: true
598
+ * util.isNullOrUndefined(null);
599
+ * // Returns: true
600
+ * ```
601
+ * @since v0.11.5
602
+ * @deprecated Since v4.0.0 - Use `value === undefined || value === null` instead.
603
+ */
89
604
  export function isNullOrUndefined(object: unknown): object is null | undefined;
90
- /** @deprecated since v4.0.0 - use `typeof value === 'number'` instead. */
605
+ /**
606
+ * Returns `true` if the given `object` is a `Number`. Otherwise, returns `false`.
607
+ *
608
+ * ```js
609
+ * const util = require('util');
610
+ *
611
+ * util.isNumber(false);
612
+ * // Returns: false
613
+ * util.isNumber(Infinity);
614
+ * // Returns: true
615
+ * util.isNumber(0);
616
+ * // Returns: true
617
+ * util.isNumber(NaN);
618
+ * // Returns: true
619
+ * ```
620
+ * @since v0.11.5
621
+ * @deprecated Since v4.0.0 - Use `typeof value === 'number'` instead.
622
+ */
91
623
  export function isNumber(object: unknown): object is number;
92
- /** @deprecated since v4.0.0 - use `value !== null && typeof value === 'object'` instead. */
624
+ /**
625
+ * Returns `true` if the given `object` is strictly an `Object`**and** not a`Function` (even though functions are objects in JavaScript).
626
+ * Otherwise, returns `false`.
627
+ *
628
+ * ```js
629
+ * const util = require('util');
630
+ *
631
+ * util.isObject(5);
632
+ * // Returns: false
633
+ * util.isObject(null);
634
+ * // Returns: false
635
+ * util.isObject({});
636
+ * // Returns: true
637
+ * util.isObject(() => {});
638
+ * // Returns: false
639
+ * ```
640
+ * @since v0.11.5
641
+ * @deprecated Since v4.0.0 - Deprecated: Use `value !== null && typeof value === 'object'` instead.
642
+ */
93
643
  export function isObject(object: unknown): boolean;
94
- /** @deprecated since v4.0.0 - use `(typeof value !== 'object' && typeof value !== 'function') || value === null` instead. */
644
+ /**
645
+ * Returns `true` if the given `object` is a primitive type. Otherwise, returns`false`.
646
+ *
647
+ * ```js
648
+ * const util = require('util');
649
+ *
650
+ * util.isPrimitive(5);
651
+ * // Returns: true
652
+ * util.isPrimitive('foo');
653
+ * // Returns: true
654
+ * util.isPrimitive(false);
655
+ * // Returns: true
656
+ * util.isPrimitive(null);
657
+ * // Returns: true
658
+ * util.isPrimitive(undefined);
659
+ * // Returns: true
660
+ * util.isPrimitive({});
661
+ * // Returns: false
662
+ * util.isPrimitive(() => {});
663
+ * // Returns: false
664
+ * util.isPrimitive(/^$/);
665
+ * // Returns: false
666
+ * util.isPrimitive(new Date());
667
+ * // Returns: false
668
+ * ```
669
+ * @since v0.11.5
670
+ * @deprecated Since v4.0.0 - Use `(typeof value !== 'object' && typeof value !== 'function') || value === null` instead.
671
+ */
95
672
  export function isPrimitive(object: unknown): boolean;
96
- /** @deprecated since v4.0.0 - use `typeof value === 'string'` instead. */
673
+ /**
674
+ * Returns `true` if the given `object` is a `string`. Otherwise, returns `false`.
675
+ *
676
+ * ```js
677
+ * const util = require('util');
678
+ *
679
+ * util.isString('');
680
+ * // Returns: true
681
+ * util.isString('foo');
682
+ * // Returns: true
683
+ * util.isString(String('foo'));
684
+ * // Returns: true
685
+ * util.isString(5);
686
+ * // Returns: false
687
+ * ```
688
+ * @since v0.11.5
689
+ * @deprecated Since v4.0.0 - Use `typeof value === 'string'` instead.
690
+ */
97
691
  export function isString(object: unknown): object is string;
98
- /** @deprecated since v4.0.0 - use `typeof value === 'symbol'` instead. */
692
+ /**
693
+ * Returns `true` if the given `object` is a `Symbol`. Otherwise, returns `false`.
694
+ *
695
+ * ```js
696
+ * const util = require('util');
697
+ *
698
+ * util.isSymbol(5);
699
+ * // Returns: false
700
+ * util.isSymbol('foo');
701
+ * // Returns: false
702
+ * util.isSymbol(Symbol('foo'));
703
+ * // Returns: true
704
+ * ```
705
+ * @since v0.11.5
706
+ * @deprecated Since v4.0.0 - Use `typeof value === 'symbol'` instead.
707
+ */
99
708
  export function isSymbol(object: unknown): object is symbol;
100
- /** @deprecated since v4.0.0 - use `value === undefined` instead. */
709
+ /**
710
+ * Returns `true` if the given `object` is `undefined`. Otherwise, returns `false`.
711
+ *
712
+ * ```js
713
+ * const util = require('util');
714
+ *
715
+ * const foo = undefined;
716
+ * util.isUndefined(5);
717
+ * // Returns: false
718
+ * util.isUndefined(foo);
719
+ * // Returns: true
720
+ * util.isUndefined(null);
721
+ * // Returns: false
722
+ * ```
723
+ * @since v0.11.5
724
+ * @deprecated Since v4.0.0 - Use `value === undefined` instead.
725
+ */
101
726
  export function isUndefined(object: unknown): object is undefined;
102
- export function deprecate<T extends Function>(fn: T, message: string, code?: string): T;
727
+ /**
728
+ * The `util.deprecate()` method wraps `fn` (which may be a function or class) in
729
+ * such a way that it is marked as deprecated.
730
+ *
731
+ * ```js
732
+ * const util = require('util');
733
+ *
734
+ * exports.obsoleteFunction = util.deprecate(() => {
735
+ * // Do something here.
736
+ * }, 'obsoleteFunction() is deprecated. Use newShinyFunction() instead.');
737
+ * ```
738
+ *
739
+ * When called, `util.deprecate()` will return a function that will emit a`DeprecationWarning` using the `'warning'` event. The warning will
740
+ * be emitted and printed to `stderr` the first time the returned function is
741
+ * called. After the warning is emitted, the wrapped function is called without
742
+ * emitting a warning.
743
+ *
744
+ * If the same optional `code` is supplied in multiple calls to `util.deprecate()`,
745
+ * the warning will be emitted only once for that `code`.
746
+ *
747
+ * ```js
748
+ * const util = require('util');
749
+ *
750
+ * const fn1 = util.deprecate(someFunction, someMessage, 'DEP0001');
751
+ * const fn2 = util.deprecate(someOtherFunction, someOtherMessage, 'DEP0001');
752
+ * fn1(); // Emits a deprecation warning with code DEP0001
753
+ * fn2(); // Does not emit a deprecation warning because it has the same code
754
+ * ```
755
+ *
756
+ * If either the `--no-deprecation` or `--no-warnings` command-line flags are
757
+ * used, or if the `process.noDeprecation` property is set to `true`_prior_ to
758
+ * the first deprecation warning, the `util.deprecate()` method does nothing.
759
+ *
760
+ * If the `--trace-deprecation` or `--trace-warnings` command-line flags are set,
761
+ * or the `process.traceDeprecation` property is set to `true`, a warning and a
762
+ * stack trace are printed to `stderr` the first time the deprecated function is
763
+ * called.
764
+ *
765
+ * If the `--throw-deprecation` command-line flag is set, or the`process.throwDeprecation` property is set to `true`, then an exception will be
766
+ * thrown when the deprecated function is called.
767
+ *
768
+ * The `--throw-deprecation` command-line flag and `process.throwDeprecation`property take precedence over `--trace-deprecation` and`process.traceDeprecation`.
769
+ * @since v0.8.0
770
+ * @param fn The function that is being deprecated.
771
+ * @param msg A warning message to display when the deprecated function is invoked.
772
+ * @param code A deprecation code. See the `list of deprecated APIs` for a list of codes.
773
+ * @return The deprecated function wrapped to emit a warning.
774
+ */
775
+ export function deprecate<T extends Function>(fn: T, msg: string, code?: string): T;
776
+ /**
777
+ * Returns `true` if there is deep strict equality between `val1` and `val2`.
778
+ * Otherwise, returns `false`.
779
+ *
780
+ * See `assert.deepStrictEqual()` for more information about deep strict
781
+ * equality.
782
+ * @since v9.0.0
783
+ */
103
784
  export function isDeepStrictEqual(val1: unknown, val2: unknown): boolean;
104
-
785
+ /**
786
+ * Takes an `async` function (or a function that returns a `Promise`) and returns a
787
+ * function following the error-first callback style, i.e. taking
788
+ * an `(err, value) => ...` callback as the last argument. In the callback, the
789
+ * first argument will be the rejection reason (or `null` if the `Promise`resolved), and the second argument will be the resolved value.
790
+ *
791
+ * ```js
792
+ * const util = require('util');
793
+ *
794
+ * async function fn() {
795
+ * return 'hello world';
796
+ * }
797
+ * const callbackFunction = util.callbackify(fn);
798
+ *
799
+ * callbackFunction((err, ret) => {
800
+ * if (err) throw err;
801
+ * console.log(ret);
802
+ * });
803
+ * ```
804
+ *
805
+ * Will print:
806
+ *
807
+ * ```text
808
+ * hello world
809
+ * ```
810
+ *
811
+ * The callback is executed asynchronously, and will have a limited stack trace.
812
+ * If the callback throws, the process will emit an `'uncaughtException'` event, and if not handled will exit.
813
+ *
814
+ * Since `null` has a special meaning as the first argument to a callback, if a
815
+ * wrapped function rejects a `Promise` with a falsy value as a reason, the value
816
+ * is wrapped in an `Error` with the original value stored in a field named`reason`.
817
+ *
818
+ * ```js
819
+ * function fn() {
820
+ * return Promise.reject(null);
821
+ * }
822
+ * const callbackFunction = util.callbackify(fn);
823
+ *
824
+ * callbackFunction((err, ret) => {
825
+ * // When the Promise was rejected with `null` it is wrapped with an Error and
826
+ * // the original value is stored in `reason`.
827
+ * err &#x26;&#x26; err.hasOwnProperty('reason') &#x26;&#x26; err.reason === null; // true
828
+ * });
829
+ * ```
830
+ * @since v8.2.0
831
+ * @param original An `async` function
832
+ * @return a callback style function
833
+ */
105
834
  export function callbackify(fn: () => Promise<void>): (callback: (err: NodeJS.ErrnoException) => void) => void;
106
835
  export function callbackify<TResult>(fn: () => Promise<TResult>): (callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void;
107
836
  export function callbackify<T1>(fn: (arg1: T1) => Promise<void>): (arg1: T1, callback: (err: NodeJS.ErrnoException) => void) => void;
@@ -110,33 +839,100 @@ declare module 'util' {
110
839
  export function callbackify<T1, T2, TResult>(fn: (arg1: T1, arg2: T2) => Promise<TResult>): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;
111
840
  export function callbackify<T1, T2, T3>(fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<void>): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException) => void) => void;
112
841
  export function callbackify<T1, T2, T3, TResult>(
113
- fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;
114
- export function callbackify<T1, T2, T3, T4>(
115
- fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException) => void) => void;
116
- export function callbackify<T1, T2, T3, T4, TResult>(
117
- fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;
118
- export function callbackify<T1, T2, T3, T4, T5>(
119
- fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException) => void) => void;
120
- export function callbackify<T1, T2, T3, T4, T5, TResult>(
121
- fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>,
842
+ fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>
843
+ ): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;
844
+ export function callbackify<T1, T2, T3, T4>(
845
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>
846
+ ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException) => void) => void;
847
+ export function callbackify<T1, T2, T3, T4, TResult>(
848
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>
849
+ ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;
850
+ export function callbackify<T1, T2, T3, T4, T5>(
851
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>
852
+ ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException) => void) => void;
853
+ export function callbackify<T1, T2, T3, T4, T5, TResult>(
854
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>
122
855
  ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;
123
856
  export function callbackify<T1, T2, T3, T4, T5, T6>(
124
- fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<void>,
857
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<void>
125
858
  ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException) => void) => void;
126
859
  export function callbackify<T1, T2, T3, T4, T5, T6, TResult>(
127
860
  fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<TResult>
128
861
  ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;
129
-
130
862
  export interface CustomPromisifyLegacy<TCustom extends Function> extends Function {
131
863
  __promisify__: TCustom;
132
864
  }
133
-
134
865
  export interface CustomPromisifySymbol<TCustom extends Function> extends Function {
135
866
  [promisify.custom]: TCustom;
136
867
  }
137
-
138
868
  export type CustomPromisify<TCustom extends Function> = CustomPromisifySymbol<TCustom> | CustomPromisifyLegacy<TCustom>;
139
-
869
+ /**
870
+ * Takes a function following the common error-first callback style, i.e. taking
871
+ * an `(err, value) => ...` callback as the last argument, and returns a version
872
+ * that returns promises.
873
+ *
874
+ * ```js
875
+ * const util = require('util');
876
+ * const fs = require('fs');
877
+ *
878
+ * const stat = util.promisify(fs.stat);
879
+ * stat('.').then((stats) => {
880
+ * // Do something with `stats`
881
+ * }).catch((error) => {
882
+ * // Handle the error.
883
+ * });
884
+ * ```
885
+ *
886
+ * Or, equivalently using `async function`s:
887
+ *
888
+ * ```js
889
+ * const util = require('util');
890
+ * const fs = require('fs');
891
+ *
892
+ * const stat = util.promisify(fs.stat);
893
+ *
894
+ * async function callStat() {
895
+ * const stats = await stat('.');
896
+ * console.log(`This directory is owned by ${stats.uid}`);
897
+ * }
898
+ * ```
899
+ *
900
+ * If there is an `original[util.promisify.custom]` property present, `promisify`will return its value, see `Custom promisified functions`.
901
+ *
902
+ * `promisify()` assumes that `original` is a function taking a callback as its
903
+ * final argument in all cases. If `original` is not a function, `promisify()`will throw an error. If `original` is a function but its last argument is not
904
+ * an error-first callback, it will still be passed an error-first
905
+ * callback as its last argument.
906
+ *
907
+ * Using `promisify()` on class methods or other methods that use `this` may not
908
+ * work as expected unless handled specially:
909
+ *
910
+ * ```js
911
+ * const util = require('util');
912
+ *
913
+ * class Foo {
914
+ * constructor() {
915
+ * this.a = 42;
916
+ * }
917
+ *
918
+ * bar(callback) {
919
+ * callback(null, this.a);
920
+ * }
921
+ * }
922
+ *
923
+ * const foo = new Foo();
924
+ *
925
+ * const naiveBar = util.promisify(foo.bar);
926
+ * // TypeError: Cannot read property 'a' of undefined
927
+ * // naiveBar().then(a => console.log(a));
928
+ *
929
+ * naiveBar.call(foo).then((a) => console.log(a)); // '42'
930
+ *
931
+ * const bindBar = naiveBar.bind(foo);
932
+ * bindBar().then((a) => console.log(a)); // '42'
933
+ * ```
934
+ * @since v8.0.0
935
+ */
140
936
  export function promisify<TCustom extends Function>(fn: CustomPromisify<TCustom>): TCustom;
141
937
  export function promisify<TResult>(fn: (callback: (err: any, result: TResult) => void) => void): () => Promise<TResult>;
142
938
  export function promisify(fn: (callback: (err?: any) => void) => void): () => Promise<void>;
@@ -144,125 +940,617 @@ declare module 'util' {
144
940
  export function promisify<T1>(fn: (arg1: T1, callback: (err?: any) => void) => void): (arg1: T1) => Promise<void>;
145
941
  export function promisify<T1, T2, TResult>(fn: (arg1: T1, arg2: T2, callback: (err: any, result: TResult) => void) => void): (arg1: T1, arg2: T2) => Promise<TResult>;
146
942
  export function promisify<T1, T2>(fn: (arg1: T1, arg2: T2, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2) => Promise<void>;
147
- export function promisify<T1, T2, T3, TResult>(fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => void) => void):
148
- (arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>;
943
+ export function promisify<T1, T2, T3, TResult>(fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => void) => void): (arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>;
149
944
  export function promisify<T1, T2, T3>(fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2, arg3: T3) => Promise<void>;
150
945
  export function promisify<T1, T2, T3, T4, TResult>(
151
- fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => void) => void,
946
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => void) => void
152
947
  ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>;
153
- export function promisify<T1, T2, T3, T4>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err?: any) => void) => void):
154
- (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>;
155
- export function promisify<T1, T2, T3, T4, T5, TResult>(
156
- fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => void) => void,
948
+ export function promisify<T1, T2, T3, T4>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>;
949
+ export function promisify<T1, T2, T3, T4, T5, TResult>(
950
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => void) => void
157
951
  ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>;
158
952
  export function promisify<T1, T2, T3, T4, T5>(
159
- fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err?: any) => void) => void,
953
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err?: any) => void) => void
160
954
  ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>;
161
955
  export function promisify(fn: Function): Function;
162
956
  export namespace promisify {
163
957
  const custom: unique symbol;
164
958
  }
959
+ /**
960
+ * An implementation of the [WHATWG Encoding Standard](https://encoding.spec.whatwg.org/)`TextDecoder` API.
961
+ *
962
+ * ```js
963
+ * const decoder = new TextDecoder('shift_jis');
964
+ * let string = '';
965
+ * let buffer;
966
+ * while (buffer = getNextChunkSomehow()) {
967
+ * string += decoder.decode(buffer, { stream: true });
968
+ * }
969
+ * string += decoder.decode(); // end-of-stream
970
+ * ```
971
+ * @since v8.3.0
972
+ */
165
973
  export class TextDecoder {
974
+ /**
975
+ * The encoding supported by the `TextDecoder` instance.
976
+ */
166
977
  readonly encoding: string;
978
+ /**
979
+ * The value will be `true` if decoding errors result in a `TypeError` being
980
+ * thrown.
981
+ */
167
982
  readonly fatal: boolean;
983
+ /**
984
+ * The value will be `true` if the decoding result will include the byte order
985
+ * mark.
986
+ */
168
987
  readonly ignoreBOM: boolean;
169
988
  constructor(
170
- encoding?: string,
171
- options?: { fatal?: boolean | undefined; ignoreBOM?: boolean | undefined }
989
+ encoding?: string,
990
+ options?: {
991
+ fatal?: boolean | undefined;
992
+ ignoreBOM?: boolean | undefined;
993
+ }
172
994
  );
995
+ /**
996
+ * Decodes the `input` and returns a string. If `options.stream` is `true`, any
997
+ * incomplete byte sequences occurring at the end of the `input` are buffered
998
+ * internally and emitted after the next call to `textDecoder.decode()`.
999
+ *
1000
+ * If `textDecoder.fatal` is `true`, decoding errors that occur will result in a`TypeError` being thrown.
1001
+ * @param input An `ArrayBuffer`, `DataView` or `TypedArray` instance containing the encoded data.
1002
+ */
173
1003
  decode(
174
- input?: NodeJS.ArrayBufferView | ArrayBuffer | null,
175
- options?: { stream?: boolean | undefined }
1004
+ input?: NodeJS.ArrayBufferView | ArrayBuffer | null,
1005
+ options?: {
1006
+ stream?: boolean | undefined;
1007
+ }
176
1008
  ): string;
177
1009
  }
178
-
179
1010
  export interface EncodeIntoResult {
180
1011
  /**
181
1012
  * The read Unicode code units of input.
182
1013
  */
183
-
184
1014
  read: number;
185
1015
  /**
186
1016
  * The written UTF-8 bytes of output.
187
1017
  */
188
1018
  written: number;
189
1019
  }
190
-
191
1020
  export { types };
192
-
1021
+ /**
1022
+ * An implementation of the [WHATWG Encoding Standard](https://encoding.spec.whatwg.org/)`TextEncoder` API. All
1023
+ * instances of `TextEncoder` only support UTF-8 encoding.
1024
+ *
1025
+ * ```js
1026
+ * const encoder = new TextEncoder();
1027
+ * const uint8array = encoder.encode('this is some data');
1028
+ * ```
1029
+ *
1030
+ * The `TextEncoder` class is also available on the global object.
1031
+ * @since v8.3.0
1032
+ */
193
1033
  export class TextEncoder {
1034
+ /**
1035
+ * The encoding supported by the `TextEncoder` instance. Always set to `'utf-8'`.
1036
+ */
194
1037
  readonly encoding: string;
1038
+ /**
1039
+ * UTF-8 encodes the `input` string and returns a `Uint8Array` containing the
1040
+ * encoded bytes.
1041
+ * @param input The text to encode.
1042
+ */
195
1043
  encode(input?: string): Uint8Array;
196
- encodeInto(input: string, output: Uint8Array): EncodeIntoResult;
1044
+ /**
1045
+ * UTF-8 encodes the `src` string to the `dest` Uint8Array and returns an object
1046
+ * containing the read Unicode code units and written UTF-8 bytes.
1047
+ *
1048
+ * ```js
1049
+ * const encoder = new TextEncoder();
1050
+ * const src = 'this is some data';
1051
+ * const dest = new Uint8Array(10);
1052
+ * const { read, written } = encoder.encodeInto(src, dest);
1053
+ * ```
1054
+ * @param src The text to encode.
1055
+ * @param dest The array to hold the encode result.
1056
+ */
1057
+ encodeInto(src: string, dest: Uint8Array): EncodeIntoResult;
197
1058
  }
198
1059
  }
199
-
200
1060
  declare module 'util/types' {
201
1061
  export * from 'util/types';
202
1062
  }
203
-
204
1063
  declare module 'util/types' {
205
1064
  import { KeyObject, webcrypto } from 'node:crypto';
206
-
1065
+ /**
1066
+ * Returns `true` if the value is a built-in [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)
1067
+ * or[`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instance.
1068
+ *
1069
+ * See also `util.types.isArrayBuffer()` and `util.types.isSharedArrayBuffer()`.
1070
+ *
1071
+ * ```js
1072
+ * util.types.isAnyArrayBuffer(new ArrayBuffer()); // Returns true
1073
+ * util.types.isAnyArrayBuffer(new SharedArrayBuffer()); // Returns true
1074
+ * ```
1075
+ * @since v10.0.0
1076
+ */
207
1077
  function isAnyArrayBuffer(object: unknown): object is ArrayBufferLike;
1078
+ /**
1079
+ * Returns `true` if the value is an `arguments` object.
1080
+ *
1081
+ * ```js
1082
+ * function foo() {
1083
+ * util.types.isArgumentsObject(arguments); // Returns true
1084
+ * }
1085
+ * ```
1086
+ * @since v10.0.0
1087
+ */
208
1088
  function isArgumentsObject(object: unknown): object is IArguments;
1089
+ /**
1090
+ * Returns `true` if the value is a built-in [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) instance.
1091
+ * This does _not_ include [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instances. Usually, it is
1092
+ * desirable to test for both; See `util.types.isAnyArrayBuffer()` for that.
1093
+ *
1094
+ * ```js
1095
+ * util.types.isArrayBuffer(new ArrayBuffer()); // Returns true
1096
+ * util.types.isArrayBuffer(new SharedArrayBuffer()); // Returns false
1097
+ * ```
1098
+ * @since v10.0.0
1099
+ */
209
1100
  function isArrayBuffer(object: unknown): object is ArrayBuffer;
1101
+ /**
1102
+ * Returns `true` if the value is an instance of one of the [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)views, such as typed array
1103
+ * objects or [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView). Equivalent
1104
+ * to[`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView).
1105
+ *
1106
+ * ```js
1107
+ * util.types.isArrayBufferView(new Int8Array()); // true
1108
+ * util.types.isArrayBufferView(Buffer.from('hello world')); // true
1109
+ * util.types.isArrayBufferView(new DataView(new ArrayBuffer(16))); // true
1110
+ * util.types.isArrayBufferView(new ArrayBuffer()); // false
1111
+ * ```
1112
+ * @since v10.0.0
1113
+ */
210
1114
  function isArrayBufferView(object: unknown): object is NodeJS.ArrayBufferView;
1115
+ /**
1116
+ * Returns `true` if the value is an [async function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function).
1117
+ * This only reports back what the JavaScript engine is seeing;
1118
+ * in particular, the return value may not match the original source code if
1119
+ * a transpilation tool was used.
1120
+ *
1121
+ * ```js
1122
+ * util.types.isAsyncFunction(function foo() {}); // Returns false
1123
+ * util.types.isAsyncFunction(async function foo() {}); // Returns true
1124
+ * ```
1125
+ * @since v10.0.0
1126
+ */
211
1127
  function isAsyncFunction(object: unknown): boolean;
1128
+ /**
1129
+ * Returns `true` if the value is a `BigInt64Array` instance.
1130
+ *
1131
+ * ```js
1132
+ * util.types.isBigInt64Array(new BigInt64Array()); // Returns true
1133
+ * util.types.isBigInt64Array(new BigUint64Array()); // Returns false
1134
+ * ```
1135
+ * @since v10.0.0
1136
+ */
212
1137
  function isBigInt64Array(value: unknown): value is BigInt64Array;
1138
+ /**
1139
+ * Returns `true` if the value is a `BigUint64Array` instance.
1140
+ *
1141
+ * ```js
1142
+ * util.types.isBigUint64Array(new BigInt64Array()); // Returns false
1143
+ * util.types.isBigUint64Array(new BigUint64Array()); // Returns true
1144
+ * ```
1145
+ * @since v10.0.0
1146
+ */
213
1147
  function isBigUint64Array(value: unknown): value is BigUint64Array;
1148
+ /**
1149
+ * Returns `true` if the value is a boolean object, e.g. created
1150
+ * by `new Boolean()`.
1151
+ *
1152
+ * ```js
1153
+ * util.types.isBooleanObject(false); // Returns false
1154
+ * util.types.isBooleanObject(true); // Returns false
1155
+ * util.types.isBooleanObject(new Boolean(false)); // Returns true
1156
+ * util.types.isBooleanObject(new Boolean(true)); // Returns true
1157
+ * util.types.isBooleanObject(Boolean(false)); // Returns false
1158
+ * util.types.isBooleanObject(Boolean(true)); // Returns false
1159
+ * ```
1160
+ * @since v10.0.0
1161
+ */
214
1162
  function isBooleanObject(object: unknown): object is Boolean;
1163
+ /**
1164
+ * Returns `true` if the value is any boxed primitive object, e.g. created
1165
+ * by `new Boolean()`, `new String()` or `Object(Symbol())`.
1166
+ *
1167
+ * For example:
1168
+ *
1169
+ * ```js
1170
+ * util.types.isBoxedPrimitive(false); // Returns false
1171
+ * util.types.isBoxedPrimitive(new Boolean(false)); // Returns true
1172
+ * util.types.isBoxedPrimitive(Symbol('foo')); // Returns false
1173
+ * util.types.isBoxedPrimitive(Object(Symbol('foo'))); // Returns true
1174
+ * util.types.isBoxedPrimitive(Object(BigInt(5))); // Returns true
1175
+ * ```
1176
+ * @since v10.11.0
1177
+ */
215
1178
  function isBoxedPrimitive(object: unknown): object is String | Number | BigInt | Boolean | Symbol;
1179
+ /**
1180
+ * Returns `true` if the value is a built-in [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView) instance.
1181
+ *
1182
+ * ```js
1183
+ * const ab = new ArrayBuffer(20);
1184
+ * util.types.isDataView(new DataView(ab)); // Returns true
1185
+ * util.types.isDataView(new Float64Array()); // Returns false
1186
+ * ```
1187
+ *
1188
+ * See also [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView).
1189
+ * @since v10.0.0
1190
+ */
216
1191
  function isDataView(object: unknown): object is DataView;
1192
+ /**
1193
+ * Returns `true` if the value is a built-in [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) instance.
1194
+ *
1195
+ * ```js
1196
+ * util.types.isDate(new Date()); // Returns true
1197
+ * ```
1198
+ * @since v10.0.0
1199
+ */
217
1200
  function isDate(object: unknown): object is Date;
1201
+ /**
1202
+ * Returns `true` if the value is a native `External` value.
1203
+ *
1204
+ * A native `External` value is a special type of object that contains a
1205
+ * raw C++ pointer (`void*`) for access from native code, and has no other
1206
+ * properties. Such objects are created either by Node.js internals or native
1207
+ * addons. In JavaScript, they are [frozen](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze) objects with a`null` prototype.
1208
+ *
1209
+ * ```c
1210
+ * #include <js_native_api.h>
1211
+ * #include <stdlib.h>
1212
+ * napi_value result;
1213
+ * static napi_value MyNapi(napi_env env, napi_callback_info info) {
1214
+ * int* raw = (int*) malloc(1024);
1215
+ * napi_status status = napi_create_external(env, (void*) raw, NULL, NULL, &#x26;result);
1216
+ * if (status != napi_ok) {
1217
+ * napi_throw_error(env, NULL, "napi_create_external failed");
1218
+ * return NULL;
1219
+ * }
1220
+ * return result;
1221
+ * }
1222
+ * ...
1223
+ * DECLARE_NAPI_PROPERTY("myNapi", MyNapi)
1224
+ * ...
1225
+ * ```
1226
+ *
1227
+ * ```js
1228
+ * const native = require('napi_addon.node');
1229
+ * const data = native.myNapi();
1230
+ * util.types.isExternal(data); // returns true
1231
+ * util.types.isExternal(0); // returns false
1232
+ * util.types.isExternal(new String('foo')); // returns false
1233
+ * ```
1234
+ *
1235
+ * For further information on `napi_create_external`, refer to `napi_create_external()`.
1236
+ * @since v10.0.0
1237
+ */
218
1238
  function isExternal(object: unknown): boolean;
1239
+ /**
1240
+ * Returns `true` if the value is a built-in [`Float32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array) instance.
1241
+ *
1242
+ * ```js
1243
+ * util.types.isFloat32Array(new ArrayBuffer()); // Returns false
1244
+ * util.types.isFloat32Array(new Float32Array()); // Returns true
1245
+ * util.types.isFloat32Array(new Float64Array()); // Returns false
1246
+ * ```
1247
+ * @since v10.0.0
1248
+ */
219
1249
  function isFloat32Array(object: unknown): object is Float32Array;
1250
+ /**
1251
+ * Returns `true` if the value is a built-in [`Float64Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array) instance.
1252
+ *
1253
+ * ```js
1254
+ * util.types.isFloat64Array(new ArrayBuffer()); // Returns false
1255
+ * util.types.isFloat64Array(new Uint8Array()); // Returns false
1256
+ * util.types.isFloat64Array(new Float64Array()); // Returns true
1257
+ * ```
1258
+ * @since v10.0.0
1259
+ */
220
1260
  function isFloat64Array(object: unknown): object is Float64Array;
1261
+ /**
1262
+ * Returns `true` if the value is a generator function.
1263
+ * This only reports back what the JavaScript engine is seeing;
1264
+ * in particular, the return value may not match the original source code if
1265
+ * a transpilation tool was used.
1266
+ *
1267
+ * ```js
1268
+ * util.types.isGeneratorFunction(function foo() {}); // Returns false
1269
+ * util.types.isGeneratorFunction(function* foo() {}); // Returns true
1270
+ * ```
1271
+ * @since v10.0.0
1272
+ */
221
1273
  function isGeneratorFunction(object: unknown): object is GeneratorFunction;
1274
+ /**
1275
+ * Returns `true` if the value is a generator object as returned from a
1276
+ * built-in generator function.
1277
+ * This only reports back what the JavaScript engine is seeing;
1278
+ * in particular, the return value may not match the original source code if
1279
+ * a transpilation tool was used.
1280
+ *
1281
+ * ```js
1282
+ * function* foo() {}
1283
+ * const generator = foo();
1284
+ * util.types.isGeneratorObject(generator); // Returns true
1285
+ * ```
1286
+ * @since v10.0.0
1287
+ */
222
1288
  function isGeneratorObject(object: unknown): object is Generator;
1289
+ /**
1290
+ * Returns `true` if the value is a built-in [`Int8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array) instance.
1291
+ *
1292
+ * ```js
1293
+ * util.types.isInt8Array(new ArrayBuffer()); // Returns false
1294
+ * util.types.isInt8Array(new Int8Array()); // Returns true
1295
+ * util.types.isInt8Array(new Float64Array()); // Returns false
1296
+ * ```
1297
+ * @since v10.0.0
1298
+ */
223
1299
  function isInt8Array(object: unknown): object is Int8Array;
1300
+ /**
1301
+ * Returns `true` if the value is a built-in [`Int16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int16Array) instance.
1302
+ *
1303
+ * ```js
1304
+ * util.types.isInt16Array(new ArrayBuffer()); // Returns false
1305
+ * util.types.isInt16Array(new Int16Array()); // Returns true
1306
+ * util.types.isInt16Array(new Float64Array()); // Returns false
1307
+ * ```
1308
+ * @since v10.0.0
1309
+ */
224
1310
  function isInt16Array(object: unknown): object is Int16Array;
1311
+ /**
1312
+ * Returns `true` if the value is a built-in [`Int32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array) instance.
1313
+ *
1314
+ * ```js
1315
+ * util.types.isInt32Array(new ArrayBuffer()); // Returns false
1316
+ * util.types.isInt32Array(new Int32Array()); // Returns true
1317
+ * util.types.isInt32Array(new Float64Array()); // Returns false
1318
+ * ```
1319
+ * @since v10.0.0
1320
+ */
225
1321
  function isInt32Array(object: unknown): object is Int32Array;
226
- function isMap<T>(
227
- object: T | {},
228
- ): object is T extends ReadonlyMap<any, any>
229
- ? unknown extends T
230
- ? never
231
- : ReadonlyMap<any, any>
232
- : Map<unknown, unknown>;
1322
+ /**
1323
+ * Returns `true` if the value is a built-in [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) instance.
1324
+ *
1325
+ * ```js
1326
+ * util.types.isMap(new Map()); // Returns true
1327
+ * ```
1328
+ * @since v10.0.0
1329
+ */
1330
+ function isMap<T>(object: T | {}): object is T extends ReadonlyMap<any, any> ? (unknown extends T ? never : ReadonlyMap<any, any>) : Map<unknown, unknown>;
1331
+ /**
1332
+ * Returns `true` if the value is an iterator returned for a built-in[`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) instance.
1333
+ *
1334
+ * ```js
1335
+ * const map = new Map();
1336
+ * util.types.isMapIterator(map.keys()); // Returns true
1337
+ * util.types.isMapIterator(map.values()); // Returns true
1338
+ * util.types.isMapIterator(map.entries()); // Returns true
1339
+ * util.types.isMapIterator(map[Symbol.iterator]()); // Returns true
1340
+ * ```
1341
+ * @since v10.0.0
1342
+ */
233
1343
  function isMapIterator(object: unknown): boolean;
1344
+ /**
1345
+ * Returns `true` if the value is an instance of a [Module Namespace Object](https://tc39.github.io/ecma262/#sec-module-namespace-exotic-objects).
1346
+ *
1347
+ * ```js
1348
+ * import * as ns from './a.js';
1349
+ *
1350
+ * util.types.isModuleNamespaceObject(ns); // Returns true
1351
+ * ```
1352
+ * @since v10.0.0
1353
+ */
234
1354
  function isModuleNamespaceObject(value: unknown): boolean;
1355
+ /**
1356
+ * Returns `true` if the value is an instance of a built-in `Error` type.
1357
+ *
1358
+ * ```js
1359
+ * util.types.isNativeError(new Error()); // Returns true
1360
+ * util.types.isNativeError(new TypeError()); // Returns true
1361
+ * util.types.isNativeError(new RangeError()); // Returns true
1362
+ * ```
1363
+ * @since v10.0.0
1364
+ */
235
1365
  function isNativeError(object: unknown): object is Error;
1366
+ /**
1367
+ * Returns `true` if the value is a number object, e.g. created
1368
+ * by `new Number()`.
1369
+ *
1370
+ * ```js
1371
+ * util.types.isNumberObject(0); // Returns false
1372
+ * util.types.isNumberObject(new Number(0)); // Returns true
1373
+ * ```
1374
+ * @since v10.0.0
1375
+ */
236
1376
  function isNumberObject(object: unknown): object is Number;
1377
+ /**
1378
+ * Returns `true` if the value is a built-in [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).
1379
+ *
1380
+ * ```js
1381
+ * util.types.isPromise(Promise.resolve(42)); // Returns true
1382
+ * ```
1383
+ * @since v10.0.0
1384
+ */
237
1385
  function isPromise(object: unknown): object is Promise<unknown>;
1386
+ /**
1387
+ * Returns `true` if the value is a [`Proxy`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) instance.
1388
+ *
1389
+ * ```js
1390
+ * const target = {};
1391
+ * const proxy = new Proxy(target, {});
1392
+ * util.types.isProxy(target); // Returns false
1393
+ * util.types.isProxy(proxy); // Returns true
1394
+ * ```
1395
+ * @since v10.0.0
1396
+ */
238
1397
  function isProxy(object: unknown): boolean;
1398
+ /**
1399
+ * Returns `true` if the value is a regular expression object.
1400
+ *
1401
+ * ```js
1402
+ * util.types.isRegExp(/abc/); // Returns true
1403
+ * util.types.isRegExp(new RegExp('abc')); // Returns true
1404
+ * ```
1405
+ * @since v10.0.0
1406
+ */
239
1407
  function isRegExp(object: unknown): object is RegExp;
240
- function isSet<T>(
241
- object: T | {},
242
- ): object is T extends ReadonlySet<any>
243
- ? unknown extends T
244
- ? never
245
- : ReadonlySet<any>
246
- : Set<unknown>;
1408
+ /**
1409
+ * Returns `true` if the value is a built-in [`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) instance.
1410
+ *
1411
+ * ```js
1412
+ * util.types.isSet(new Set()); // Returns true
1413
+ * ```
1414
+ * @since v10.0.0
1415
+ */
1416
+ function isSet<T>(object: T | {}): object is T extends ReadonlySet<any> ? (unknown extends T ? never : ReadonlySet<any>) : Set<unknown>;
1417
+ /**
1418
+ * Returns `true` if the value is an iterator returned for a built-in[`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) instance.
1419
+ *
1420
+ * ```js
1421
+ * const set = new Set();
1422
+ * util.types.isSetIterator(set.keys()); // Returns true
1423
+ * util.types.isSetIterator(set.values()); // Returns true
1424
+ * util.types.isSetIterator(set.entries()); // Returns true
1425
+ * util.types.isSetIterator(set[Symbol.iterator]()); // Returns true
1426
+ * ```
1427
+ * @since v10.0.0
1428
+ */
247
1429
  function isSetIterator(object: unknown): boolean;
1430
+ /**
1431
+ * Returns `true` if the value is a built-in [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instance.
1432
+ * This does _not_ include [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) instances. Usually, it is
1433
+ * desirable to test for both; See `util.types.isAnyArrayBuffer()` for that.
1434
+ *
1435
+ * ```js
1436
+ * util.types.isSharedArrayBuffer(new ArrayBuffer()); // Returns false
1437
+ * util.types.isSharedArrayBuffer(new SharedArrayBuffer()); // Returns true
1438
+ * ```
1439
+ * @since v10.0.0
1440
+ */
248
1441
  function isSharedArrayBuffer(object: unknown): object is SharedArrayBuffer;
1442
+ /**
1443
+ * Returns `true` if the value is a string object, e.g. created
1444
+ * by `new String()`.
1445
+ *
1446
+ * ```js
1447
+ * util.types.isStringObject('foo'); // Returns false
1448
+ * util.types.isStringObject(new String('foo')); // Returns true
1449
+ * ```
1450
+ * @since v10.0.0
1451
+ */
249
1452
  function isStringObject(object: unknown): object is String;
1453
+ /**
1454
+ * Returns `true` if the value is a symbol object, created
1455
+ * by calling `Object()` on a `Symbol` primitive.
1456
+ *
1457
+ * ```js
1458
+ * const symbol = Symbol('foo');
1459
+ * util.types.isSymbolObject(symbol); // Returns false
1460
+ * util.types.isSymbolObject(Object(symbol)); // Returns true
1461
+ * ```
1462
+ * @since v10.0.0
1463
+ */
250
1464
  function isSymbolObject(object: unknown): object is Symbol;
1465
+ /**
1466
+ * Returns `true` if the value is a built-in [`TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray) instance.
1467
+ *
1468
+ * ```js
1469
+ * util.types.isTypedArray(new ArrayBuffer()); // Returns false
1470
+ * util.types.isTypedArray(new Uint8Array()); // Returns true
1471
+ * util.types.isTypedArray(new Float64Array()); // Returns true
1472
+ * ```
1473
+ *
1474
+ * See also [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView).
1475
+ * @since v10.0.0
1476
+ */
251
1477
  function isTypedArray(object: unknown): object is NodeJS.TypedArray;
1478
+ /**
1479
+ * Returns `true` if the value is a built-in [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) instance.
1480
+ *
1481
+ * ```js
1482
+ * util.types.isUint8Array(new ArrayBuffer()); // Returns false
1483
+ * util.types.isUint8Array(new Uint8Array()); // Returns true
1484
+ * util.types.isUint8Array(new Float64Array()); // Returns false
1485
+ * ```
1486
+ * @since v10.0.0
1487
+ */
252
1488
  function isUint8Array(object: unknown): object is Uint8Array;
1489
+ /**
1490
+ * Returns `true` if the value is a built-in [`Uint8ClampedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray) instance.
1491
+ *
1492
+ * ```js
1493
+ * util.types.isUint8ClampedArray(new ArrayBuffer()); // Returns false
1494
+ * util.types.isUint8ClampedArray(new Uint8ClampedArray()); // Returns true
1495
+ * util.types.isUint8ClampedArray(new Float64Array()); // Returns false
1496
+ * ```
1497
+ * @since v10.0.0
1498
+ */
253
1499
  function isUint8ClampedArray(object: unknown): object is Uint8ClampedArray;
1500
+ /**
1501
+ * Returns `true` if the value is a built-in [`Uint16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array) instance.
1502
+ *
1503
+ * ```js
1504
+ * util.types.isUint16Array(new ArrayBuffer()); // Returns false
1505
+ * util.types.isUint16Array(new Uint16Array()); // Returns true
1506
+ * util.types.isUint16Array(new Float64Array()); // Returns false
1507
+ * ```
1508
+ * @since v10.0.0
1509
+ */
254
1510
  function isUint16Array(object: unknown): object is Uint16Array;
1511
+ /**
1512
+ * Returns `true` if the value is a built-in [`Uint32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint32Array) instance.
1513
+ *
1514
+ * ```js
1515
+ * util.types.isUint32Array(new ArrayBuffer()); // Returns false
1516
+ * util.types.isUint32Array(new Uint32Array()); // Returns true
1517
+ * util.types.isUint32Array(new Float64Array()); // Returns false
1518
+ * ```
1519
+ * @since v10.0.0
1520
+ */
255
1521
  function isUint32Array(object: unknown): object is Uint32Array;
1522
+ /**
1523
+ * Returns `true` if the value is a built-in [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) instance.
1524
+ *
1525
+ * ```js
1526
+ * util.types.isWeakMap(new WeakMap()); // Returns true
1527
+ * ```
1528
+ * @since v10.0.0
1529
+ */
256
1530
  function isWeakMap(object: unknown): object is WeakMap<object, unknown>;
1531
+ /**
1532
+ * Returns `true` if the value is a built-in [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) instance.
1533
+ *
1534
+ * ```js
1535
+ * util.types.isWeakSet(new WeakSet()); // Returns true
1536
+ * ```
1537
+ * @since v10.0.0
1538
+ */
257
1539
  function isWeakSet(object: unknown): object is WeakSet<object>;
1540
+ /**
1541
+ * Returns `true` if `value` is a `<KeyObject>`, `false` otherwise.
1542
+ * @since v16.2.0
1543
+ */
258
1544
  function isKeyObject(object: unknown): object is KeyObject;
1545
+ /**
1546
+ * Returns `true` if `value` is a `<CryptoKey>`, `false` otherwise.
1547
+ * @since v16.2.0
1548
+ */
259
1549
  function isCryptoKey(object: unknown): object is webcrypto.CryptoKey;
260
1550
  }
261
-
262
1551
  declare module 'node:util' {
263
1552
  export * from 'util';
264
1553
  }
265
-
266
1554
  declare module 'node:util/types' {
267
1555
  export * from 'util/types';
268
1556
  }