rahad-media-downloader 2.1.12 → 2.1.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (232) hide show
  1. package/.cache/replit/modules/nodejs-20.res +1 -0
  2. package/.cache/replit/modules/replit.res +1 -0
  3. package/.cache/typescript/5.4/node_modules/.package-lock.json +185 -0
  4. package/.cache/typescript/5.4/node_modules/@types/caseless/LICENSE +21 -0
  5. package/.cache/typescript/5.4/node_modules/@types/caseless/README.md +48 -0
  6. package/.cache/typescript/5.4/node_modules/@types/caseless/index.d.ts +29 -0
  7. package/.cache/typescript/5.4/node_modules/@types/caseless/package.json +35 -0
  8. package/.cache/typescript/5.4/node_modules/@types/domhandler/LICENSE +21 -0
  9. package/.cache/typescript/5.4/node_modules/@types/domhandler/README.md +92 -0
  10. package/.cache/typescript/5.4/node_modules/@types/domhandler/index.d.ts +73 -0
  11. package/.cache/typescript/5.4/node_modules/@types/domhandler/package.json +25 -0
  12. package/.cache/typescript/5.4/node_modules/@types/domutils/LICENSE +21 -0
  13. package/.cache/typescript/5.4/node_modules/@types/domutils/README.md +15 -0
  14. package/.cache/typescript/5.4/node_modules/@types/domutils/index.d.ts +124 -0
  15. package/.cache/typescript/5.4/node_modules/@types/domutils/package.json +27 -0
  16. package/.cache/typescript/5.4/node_modules/@types/htmlparser2/LICENSE +21 -0
  17. package/.cache/typescript/5.4/node_modules/@types/htmlparser2/README.md +15 -0
  18. package/.cache/typescript/5.4/node_modules/@types/htmlparser2/index.d.ts +120 -0
  19. package/.cache/typescript/5.4/node_modules/@types/htmlparser2/package.json +45 -0
  20. package/.cache/typescript/5.4/node_modules/@types/node/LICENSE +21 -0
  21. package/.cache/typescript/5.4/node_modules/@types/node/README.md +15 -0
  22. package/.cache/typescript/5.4/node_modules/@types/node/assert/strict.d.ts +8 -0
  23. package/.cache/typescript/5.4/node_modules/@types/node/assert.d.ts +1040 -0
  24. package/.cache/typescript/5.4/node_modules/@types/node/async_hooks.d.ts +541 -0
  25. package/.cache/typescript/5.4/node_modules/@types/node/buffer.d.ts +2363 -0
  26. package/.cache/typescript/5.4/node_modules/@types/node/child_process.d.ts +1542 -0
  27. package/.cache/typescript/5.4/node_modules/@types/node/cluster.d.ts +578 -0
  28. package/.cache/typescript/5.4/node_modules/@types/node/console.d.ts +452 -0
  29. package/.cache/typescript/5.4/node_modules/@types/node/constants.d.ts +19 -0
  30. package/.cache/typescript/5.4/node_modules/@types/node/crypto.d.ts +4522 -0
  31. package/.cache/typescript/5.4/node_modules/@types/node/dgram.d.ts +596 -0
  32. package/.cache/typescript/5.4/node_modules/@types/node/diagnostics_channel.d.ts +545 -0
  33. package/.cache/typescript/5.4/node_modules/@types/node/dns/promises.d.ts +473 -0
  34. package/.cache/typescript/5.4/node_modules/@types/node/dns.d.ts +853 -0
  35. package/.cache/typescript/5.4/node_modules/@types/node/dom-events.d.ts +124 -0
  36. package/.cache/typescript/5.4/node_modules/@types/node/domain.d.ts +170 -0
  37. package/.cache/typescript/5.4/node_modules/@types/node/events.d.ts +884 -0
  38. package/.cache/typescript/5.4/node_modules/@types/node/fs/promises.d.ts +1245 -0
  39. package/.cache/typescript/5.4/node_modules/@types/node/fs.d.ts +4317 -0
  40. package/.cache/typescript/5.4/node_modules/@types/node/globals.d.ts +411 -0
  41. package/.cache/typescript/5.4/node_modules/@types/node/globals.global.d.ts +1 -0
  42. package/.cache/typescript/5.4/node_modules/@types/node/http.d.ts +1889 -0
  43. package/.cache/typescript/5.4/node_modules/@types/node/http2.d.ts +2418 -0
  44. package/.cache/typescript/5.4/node_modules/@types/node/https.d.ts +550 -0
  45. package/.cache/typescript/5.4/node_modules/@types/node/index.d.ts +89 -0
  46. package/.cache/typescript/5.4/node_modules/@types/node/inspector.d.ts +2746 -0
  47. package/.cache/typescript/5.4/node_modules/@types/node/module.d.ts +315 -0
  48. package/.cache/typescript/5.4/node_modules/@types/node/net.d.ts +996 -0
  49. package/.cache/typescript/5.4/node_modules/@types/node/os.d.ts +495 -0
  50. package/.cache/typescript/5.4/node_modules/@types/node/package.json +217 -0
  51. package/.cache/typescript/5.4/node_modules/@types/node/path.d.ts +191 -0
  52. package/.cache/typescript/5.4/node_modules/@types/node/perf_hooks.d.ts +645 -0
  53. package/.cache/typescript/5.4/node_modules/@types/node/process.d.ts +1747 -0
  54. package/.cache/typescript/5.4/node_modules/@types/node/punycode.d.ts +117 -0
  55. package/.cache/typescript/5.4/node_modules/@types/node/querystring.d.ts +153 -0
  56. package/.cache/typescript/5.4/node_modules/@types/node/readline/promises.d.ts +150 -0
  57. package/.cache/typescript/5.4/node_modules/@types/node/readline.d.ts +540 -0
  58. package/.cache/typescript/5.4/node_modules/@types/node/repl.d.ts +430 -0
  59. package/.cache/typescript/5.4/node_modules/@types/node/sea.d.ts +153 -0
  60. package/.cache/typescript/5.4/node_modules/@types/node/stream/consumers.d.ts +12 -0
  61. package/.cache/typescript/5.4/node_modules/@types/node/stream/promises.d.ts +83 -0
  62. package/.cache/typescript/5.4/node_modules/@types/node/stream/web.d.ts +367 -0
  63. package/.cache/typescript/5.4/node_modules/@types/node/stream.d.ts +1707 -0
  64. package/.cache/typescript/5.4/node_modules/@types/node/string_decoder.d.ts +67 -0
  65. package/.cache/typescript/5.4/node_modules/@types/node/test.d.ts +1470 -0
  66. package/.cache/typescript/5.4/node_modules/@types/node/timers/promises.d.ts +97 -0
  67. package/.cache/typescript/5.4/node_modules/@types/node/timers.d.ts +240 -0
  68. package/.cache/typescript/5.4/node_modules/@types/node/tls.d.ts +1217 -0
  69. package/.cache/typescript/5.4/node_modules/@types/node/trace_events.d.ts +197 -0
  70. package/.cache/typescript/5.4/node_modules/@types/node/tty.d.ts +208 -0
  71. package/.cache/typescript/5.4/node_modules/@types/node/url.d.ts +944 -0
  72. package/.cache/typescript/5.4/node_modules/@types/node/util.d.ts +2276 -0
  73. package/.cache/typescript/5.4/node_modules/@types/node/v8.d.ts +764 -0
  74. package/.cache/typescript/5.4/node_modules/@types/node/vm.d.ts +921 -0
  75. package/.cache/typescript/5.4/node_modules/@types/node/wasi.d.ts +181 -0
  76. package/.cache/typescript/5.4/node_modules/@types/node/worker_threads.d.ts +691 -0
  77. package/.cache/typescript/5.4/node_modules/@types/node/zlib.d.ts +530 -0
  78. package/.cache/typescript/5.4/node_modules/@types/node-fetch/LICENSE +21 -0
  79. package/.cache/typescript/5.4/node_modules/@types/node-fetch/README.md +15 -0
  80. package/.cache/typescript/5.4/node_modules/@types/node-fetch/externals.d.ts +32 -0
  81. package/.cache/typescript/5.4/node_modules/@types/node-fetch/index.d.ts +238 -0
  82. package/.cache/typescript/5.4/node_modules/@types/node-fetch/package.json +83 -0
  83. package/.cache/typescript/5.4/node_modules/@types/qs/LICENSE +21 -0
  84. package/.cache/typescript/5.4/node_modules/@types/qs/README.md +15 -0
  85. package/.cache/typescript/5.4/node_modules/@types/qs/index.d.ts +79 -0
  86. package/.cache/typescript/5.4/node_modules/@types/qs/package.json +65 -0
  87. package/.cache/typescript/5.4/node_modules/@types/request/LICENSE +21 -0
  88. package/.cache/typescript/5.4/node_modules/@types/request/README.md +15 -0
  89. package/.cache/typescript/5.4/node_modules/@types/request/index.d.ts +395 -0
  90. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/License +19 -0
  91. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md +350 -0
  92. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md.bak +350 -0
  93. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/index.d.ts +51 -0
  94. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/browser.js +2 -0
  95. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/form_data.js +483 -0
  96. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/populate.js +10 -0
  97. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/package.json +68 -0
  98. package/.cache/typescript/5.4/node_modules/@types/request/package.json +70 -0
  99. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/LICENSE +21 -0
  100. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/README.md +15 -0
  101. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/index.d.ts +321 -0
  102. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/package.json +35 -0
  103. package/.cache/typescript/5.4/node_modules/asynckit/LICENSE +21 -0
  104. package/.cache/typescript/5.4/node_modules/asynckit/README.md +233 -0
  105. package/.cache/typescript/5.4/node_modules/asynckit/bench.js +76 -0
  106. package/.cache/typescript/5.4/node_modules/asynckit/index.js +6 -0
  107. package/.cache/typescript/5.4/node_modules/asynckit/lib/abort.js +29 -0
  108. package/.cache/typescript/5.4/node_modules/asynckit/lib/async.js +34 -0
  109. package/.cache/typescript/5.4/node_modules/asynckit/lib/defer.js +26 -0
  110. package/.cache/typescript/5.4/node_modules/asynckit/lib/iterate.js +75 -0
  111. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  112. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_parallel.js +25 -0
  113. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial.js +25 -0
  114. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  115. package/.cache/typescript/5.4/node_modules/asynckit/lib/state.js +37 -0
  116. package/.cache/typescript/5.4/node_modules/asynckit/lib/streamify.js +141 -0
  117. package/.cache/typescript/5.4/node_modules/asynckit/lib/terminator.js +29 -0
  118. package/.cache/typescript/5.4/node_modules/asynckit/package.json +63 -0
  119. package/.cache/typescript/5.4/node_modules/asynckit/parallel.js +43 -0
  120. package/.cache/typescript/5.4/node_modules/asynckit/serial.js +17 -0
  121. package/.cache/typescript/5.4/node_modules/asynckit/serialOrdered.js +75 -0
  122. package/.cache/typescript/5.4/node_modules/asynckit/stream.js +21 -0
  123. package/.cache/typescript/5.4/node_modules/combined-stream/License +19 -0
  124. package/.cache/typescript/5.4/node_modules/combined-stream/Readme.md +138 -0
  125. package/.cache/typescript/5.4/node_modules/combined-stream/lib/combined_stream.js +208 -0
  126. package/.cache/typescript/5.4/node_modules/combined-stream/package.json +25 -0
  127. package/.cache/typescript/5.4/node_modules/combined-stream/yarn.lock +17 -0
  128. package/.cache/typescript/5.4/node_modules/delayed-stream/License +19 -0
  129. package/.cache/typescript/5.4/node_modules/delayed-stream/Makefile +7 -0
  130. package/.cache/typescript/5.4/node_modules/delayed-stream/Readme.md +141 -0
  131. package/.cache/typescript/5.4/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  132. package/.cache/typescript/5.4/node_modules/delayed-stream/package.json +27 -0
  133. package/.cache/typescript/5.4/node_modules/domelementtype/LICENSE +11 -0
  134. package/.cache/typescript/5.4/node_modules/domelementtype/index.js +15 -0
  135. package/.cache/typescript/5.4/node_modules/domelementtype/package.json +16 -0
  136. package/.cache/typescript/5.4/node_modules/domelementtype/readme.md +1 -0
  137. package/.cache/typescript/5.4/node_modules/domhandler/.travis.yml +6 -0
  138. package/.cache/typescript/5.4/node_modules/domhandler/LICENSE +11 -0
  139. package/.cache/typescript/5.4/node_modules/domhandler/index.js +217 -0
  140. package/.cache/typescript/5.4/node_modules/domhandler/lib/element.js +20 -0
  141. package/.cache/typescript/5.4/node_modules/domhandler/lib/node.js +44 -0
  142. package/.cache/typescript/5.4/node_modules/domhandler/package.json +41 -0
  143. package/.cache/typescript/5.4/node_modules/domhandler/readme.md +116 -0
  144. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/01-basic.json +57 -0
  145. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/02-single_tag_1.json +21 -0
  146. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/03-single_tag_2.json +21 -0
  147. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/04-unescaped_in_script.json +27 -0
  148. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/05-tags_in_comment.json +18 -0
  149. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/06-comment_in_script.json +18 -0
  150. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/07-unescaped_in_style.json +20 -0
  151. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/08-extra_spaces_in_tag.json +20 -0
  152. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/09-unquoted_attrib.json +20 -0
  153. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/10-singular_attribute.json +15 -0
  154. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/11-text_outside_tags.json +40 -0
  155. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/12-text_only.json +11 -0
  156. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/13-comment_in_text.json +19 -0
  157. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/14-comment_in_text_in_script.json +18 -0
  158. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/15-non-verbose.json +22 -0
  159. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/16-normalize_whitespace.json +47 -0
  160. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/17-xml_namespace.json +18 -0
  161. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/18-enforce_empty_tags.json +16 -0
  162. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/19-ignore_empty_tags.json +20 -0
  163. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/20-template_script_tags.json +20 -0
  164. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/21-conditional_comments.json +15 -0
  165. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/22-lowercase_tags.json +41 -0
  166. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/23-dom-lvl1.json +131 -0
  167. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/24-with-start-indices.json +85 -0
  168. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/25-with-end-indices.json +86 -0
  169. package/.cache/typescript/5.4/node_modules/domhandler/test/tests.js +60 -0
  170. package/.cache/typescript/5.4/node_modules/form-data/License +19 -0
  171. package/.cache/typescript/5.4/node_modules/form-data/README.md.bak +358 -0
  172. package/.cache/typescript/5.4/node_modules/form-data/Readme.md +358 -0
  173. package/.cache/typescript/5.4/node_modules/form-data/index.d.ts +62 -0
  174. package/.cache/typescript/5.4/node_modules/form-data/lib/browser.js +2 -0
  175. package/.cache/typescript/5.4/node_modules/form-data/lib/form_data.js +501 -0
  176. package/.cache/typescript/5.4/node_modules/form-data/lib/populate.js +10 -0
  177. package/.cache/typescript/5.4/node_modules/form-data/package.json +68 -0
  178. package/.cache/typescript/5.4/node_modules/mime-db/HISTORY.md +507 -0
  179. package/.cache/typescript/5.4/node_modules/mime-db/LICENSE +23 -0
  180. package/.cache/typescript/5.4/node_modules/mime-db/README.md +100 -0
  181. package/.cache/typescript/5.4/node_modules/mime-db/db.json +8519 -0
  182. package/.cache/typescript/5.4/node_modules/mime-db/index.js +12 -0
  183. package/.cache/typescript/5.4/node_modules/mime-db/package.json +60 -0
  184. package/.cache/typescript/5.4/node_modules/mime-types/HISTORY.md +397 -0
  185. package/.cache/typescript/5.4/node_modules/mime-types/LICENSE +23 -0
  186. package/.cache/typescript/5.4/node_modules/mime-types/README.md +113 -0
  187. package/.cache/typescript/5.4/node_modules/mime-types/index.js +188 -0
  188. package/.cache/typescript/5.4/node_modules/mime-types/package.json +44 -0
  189. package/.cache/typescript/5.4/node_modules/types-registry/README.md +2 -0
  190. package/.cache/typescript/5.4/node_modules/types-registry/index.json +1 -0
  191. package/.cache/typescript/5.4/node_modules/types-registry/package.json +20 -0
  192. package/.cache/typescript/5.4/node_modules/undici-types/README.md +6 -0
  193. package/.cache/typescript/5.4/node_modules/undici-types/agent.d.ts +31 -0
  194. package/.cache/typescript/5.4/node_modules/undici-types/api.d.ts +43 -0
  195. package/.cache/typescript/5.4/node_modules/undici-types/balanced-pool.d.ts +18 -0
  196. package/.cache/typescript/5.4/node_modules/undici-types/cache.d.ts +36 -0
  197. package/.cache/typescript/5.4/node_modules/undici-types/client.d.ts +97 -0
  198. package/.cache/typescript/5.4/node_modules/undici-types/connector.d.ts +34 -0
  199. package/.cache/typescript/5.4/node_modules/undici-types/content-type.d.ts +21 -0
  200. package/.cache/typescript/5.4/node_modules/undici-types/cookies.d.ts +28 -0
  201. package/.cache/typescript/5.4/node_modules/undici-types/diagnostics-channel.d.ts +67 -0
  202. package/.cache/typescript/5.4/node_modules/undici-types/dispatcher.d.ts +241 -0
  203. package/.cache/typescript/5.4/node_modules/undici-types/errors.d.ts +128 -0
  204. package/.cache/typescript/5.4/node_modules/undici-types/fetch.d.ts +209 -0
  205. package/.cache/typescript/5.4/node_modules/undici-types/file.d.ts +39 -0
  206. package/.cache/typescript/5.4/node_modules/undici-types/filereader.d.ts +54 -0
  207. package/.cache/typescript/5.4/node_modules/undici-types/formdata.d.ts +108 -0
  208. package/.cache/typescript/5.4/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  209. package/.cache/typescript/5.4/node_modules/undici-types/global-origin.d.ts +7 -0
  210. package/.cache/typescript/5.4/node_modules/undici-types/handlers.d.ts +9 -0
  211. package/.cache/typescript/5.4/node_modules/undici-types/header.d.ts +4 -0
  212. package/.cache/typescript/5.4/node_modules/undici-types/index.d.ts +63 -0
  213. package/.cache/typescript/5.4/node_modules/undici-types/interceptors.d.ts +5 -0
  214. package/.cache/typescript/5.4/node_modules/undici-types/mock-agent.d.ts +50 -0
  215. package/.cache/typescript/5.4/node_modules/undici-types/mock-client.d.ts +25 -0
  216. package/.cache/typescript/5.4/node_modules/undici-types/mock-errors.d.ts +12 -0
  217. package/.cache/typescript/5.4/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  218. package/.cache/typescript/5.4/node_modules/undici-types/mock-pool.d.ts +25 -0
  219. package/.cache/typescript/5.4/node_modules/undici-types/package.json +55 -0
  220. package/.cache/typescript/5.4/node_modules/undici-types/patch.d.ts +71 -0
  221. package/.cache/typescript/5.4/node_modules/undici-types/pool-stats.d.ts +19 -0
  222. package/.cache/typescript/5.4/node_modules/undici-types/pool.d.ts +28 -0
  223. package/.cache/typescript/5.4/node_modules/undici-types/proxy-agent.d.ts +30 -0
  224. package/.cache/typescript/5.4/node_modules/undici-types/readable.d.ts +61 -0
  225. package/.cache/typescript/5.4/node_modules/undici-types/webidl.d.ts +220 -0
  226. package/.cache/typescript/5.4/node_modules/undici-types/websocket.d.ts +131 -0
  227. package/.cache/typescript/5.4/package-lock.json +197 -0
  228. package/.cache/typescript/5.4/package.json +1 -0
  229. package/index.js +1 -1
  230. package/package.json +8 -2
  231. package/.cache/replit/modules/nodejs-20:v36-20240502-f4453db.res +0 -1
  232. package/.cache/replit/modules/replit:v9-20240429-0325cbb.res +0 -1
@@ -0,0 +1,2276 @@
1
+ /**
2
+ * The `node: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('node:util');
8
+ * ```
9
+ * @see [source](https://github.com/nodejs/node/blob/v20.12.2/lib/util.js)
10
+ */
11
+ declare module "util" {
12
+ import * as types from "node:util/types";
13
+ export interface InspectOptions {
14
+ /**
15
+ * If `true`, object's non-enumerable symbols and properties are included in the formatted result.
16
+ * `WeakMap` and `WeakSet` entries are also included as well as user defined prototype properties (excluding method properties).
17
+ * @default false
18
+ */
19
+ showHidden?: boolean | undefined;
20
+ /**
21
+ * Specifies the number of times to recurse while formatting object.
22
+ * This is useful for inspecting large objects.
23
+ * To recurse up to the maximum call stack size pass `Infinity` or `null`.
24
+ * @default 2
25
+ */
26
+ depth?: number | null | undefined;
27
+ /**
28
+ * If `true`, the output is styled with ANSI color codes. Colors are customizable.
29
+ */
30
+ colors?: boolean | undefined;
31
+ /**
32
+ * If `false`, `[util.inspect.custom](depth, opts, inspect)` functions are not invoked.
33
+ * @default true
34
+ */
35
+ customInspect?: boolean | undefined;
36
+ /**
37
+ * If `true`, `Proxy` inspection includes the target and handler objects.
38
+ * @default false
39
+ */
40
+ showProxy?: boolean | undefined;
41
+ /**
42
+ * Specifies the maximum number of `Array`, `TypedArray`, `WeakMap`, and `WeakSet` elements
43
+ * to include when formatting. Set to `null` or `Infinity` to show all elements.
44
+ * Set to `0` or negative to show no elements.
45
+ * @default 100
46
+ */
47
+ maxArrayLength?: number | null | undefined;
48
+ /**
49
+ * Specifies the maximum number of characters to
50
+ * include when formatting. Set to `null` or `Infinity` to show all elements.
51
+ * Set to `0` or negative to show no characters.
52
+ * @default 10000
53
+ */
54
+ maxStringLength?: number | null | undefined;
55
+ /**
56
+ * The length at which input values are split across multiple lines.
57
+ * Set to `Infinity` to format the input as a single line
58
+ * (in combination with `compact` set to `true` or any number >= `1`).
59
+ * @default 80
60
+ */
61
+ breakLength?: number | undefined;
62
+ /**
63
+ * Setting this to `false` causes each object key
64
+ * to be displayed on a new line. It will also add new lines to text that is
65
+ * longer than `breakLength`. If set to a number, the most `n` inner elements
66
+ * are united on a single line as long as all properties fit into
67
+ * `breakLength`. Short array elements are also grouped together. Note that no
68
+ * text will be reduced below 16 characters, no matter the `breakLength` size.
69
+ * For more information, see the example below.
70
+ * @default true
71
+ */
72
+ compact?: boolean | number | undefined;
73
+ /**
74
+ * If set to `true` or a function, all properties of an object, and `Set` and `Map`
75
+ * entries are sorted in the resulting string.
76
+ * If set to `true` the default sort is used.
77
+ * If set to a function, it is used as a compare function.
78
+ */
79
+ sorted?: boolean | ((a: string, b: string) => number) | undefined;
80
+ /**
81
+ * If set to `true`, getters are going to be
82
+ * inspected as well. If set to `'get'` only getters without setter are going
83
+ * to be inspected. If set to `'set'` only getters having a corresponding
84
+ * setter are going to be inspected. This might cause side effects depending on
85
+ * the getter function.
86
+ * @default false
87
+ */
88
+ getters?: "get" | "set" | boolean | undefined;
89
+ /**
90
+ * If set to `true`, an underscore is used to separate every three digits in all bigints and numbers.
91
+ * @default false
92
+ */
93
+ numericSeparator?: boolean | undefined;
94
+ }
95
+ export type Style =
96
+ | "special"
97
+ | "number"
98
+ | "bigint"
99
+ | "boolean"
100
+ | "undefined"
101
+ | "null"
102
+ | "string"
103
+ | "symbol"
104
+ | "date"
105
+ | "regexp"
106
+ | "module";
107
+ export type CustomInspectFunction = (depth: number, options: InspectOptionsStylized) => any; // TODO: , inspect: inspect
108
+ export interface InspectOptionsStylized extends InspectOptions {
109
+ stylize(text: string, styleType: Style): string;
110
+ }
111
+ /**
112
+ * The `util.format()` method returns a formatted string using the first argument
113
+ * as a `printf`-like format string which can contain zero or more format
114
+ * specifiers. Each specifier is replaced with the converted value from the
115
+ * corresponding argument. Supported specifiers are:
116
+ *
117
+ * If a specifier does not have a corresponding argument, it is not replaced:
118
+ *
119
+ * ```js
120
+ * util.format('%s:%s', 'foo');
121
+ * // Returns: 'foo:%s'
122
+ * ```
123
+ *
124
+ * Values that are not part of the format string are formatted using `util.inspect()` if their type is not `string`.
125
+ *
126
+ * If there are more arguments passed to the `util.format()` method than the
127
+ * number of specifiers, the extra arguments are concatenated to the returned
128
+ * string, separated by spaces:
129
+ *
130
+ * ```js
131
+ * util.format('%s:%s', 'foo', 'bar', 'baz');
132
+ * // Returns: 'foo:bar baz'
133
+ * ```
134
+ *
135
+ * 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:
136
+ *
137
+ * ```js
138
+ * util.format(1, 2, 3);
139
+ * // Returns: '1 2 3'
140
+ * ```
141
+ *
142
+ * If only one argument is passed to `util.format()`, it is returned as it is
143
+ * without any formatting:
144
+ *
145
+ * ```js
146
+ * util.format('%% %s');
147
+ * // Returns: '%% %s'
148
+ * ```
149
+ *
150
+ * `util.format()` is a synchronous method that is intended as a debugging tool.
151
+ * Some input values can have a significant performance overhead that can block the
152
+ * event loop. Use this function with care and never in a hot code path.
153
+ * @since v0.5.3
154
+ * @param format A `printf`-like format string.
155
+ */
156
+ export function format(format?: any, ...param: any[]): string;
157
+ /**
158
+ * This function is identical to {@link format}, except in that it takes
159
+ * an `inspectOptions` argument which specifies options that are passed along to {@link inspect}.
160
+ *
161
+ * ```js
162
+ * util.formatWithOptions({ colors: true }, 'See object %O', { foo: 42 });
163
+ * // Returns 'See object { foo: 42 }', where `42` is colored as a number
164
+ * // when printed to a terminal.
165
+ * ```
166
+ * @since v10.0.0
167
+ */
168
+ export function formatWithOptions(inspectOptions: InspectOptions, format?: any, ...param: any[]): string;
169
+ /**
170
+ * Returns the string name for a numeric error code that comes from a Node.js API.
171
+ * The mapping between error codes and error names is platform-dependent.
172
+ * See `Common System Errors` for the names of common errors.
173
+ *
174
+ * ```js
175
+ * fs.access('file/that/does/not/exist', (err) => {
176
+ * const name = util.getSystemErrorName(err.errno);
177
+ * console.error(name); // ENOENT
178
+ * });
179
+ * ```
180
+ * @since v9.7.0
181
+ */
182
+ export function getSystemErrorName(err: number): string;
183
+ /**
184
+ * Returns a Map of all system error codes available from the Node.js API.
185
+ * The mapping between error codes and error names is platform-dependent.
186
+ * See `Common System Errors` for the names of common errors.
187
+ *
188
+ * ```js
189
+ * fs.access('file/that/does/not/exist', (err) => {
190
+ * const errorMap = util.getSystemErrorMap();
191
+ * const name = errorMap.get(err.errno);
192
+ * console.error(name); // ENOENT
193
+ * });
194
+ * ```
195
+ * @since v16.0.0, v14.17.0
196
+ */
197
+ export function getSystemErrorMap(): Map<number, [string, string]>;
198
+ /**
199
+ * The `util.log()` method prints the given `string` to `stdout` with an included
200
+ * timestamp.
201
+ *
202
+ * ```js
203
+ * const util = require('node:util');
204
+ *
205
+ * util.log('Timestamped message.');
206
+ * ```
207
+ * @since v0.3.0
208
+ * @deprecated Since v6.0.0 - Use a third party module instead.
209
+ */
210
+ export function log(string: string): void;
211
+ /**
212
+ * Returns the `string` after replacing any surrogate code points
213
+ * (or equivalently, any unpaired surrogate code units) with the
214
+ * Unicode "replacement character" U+FFFD.
215
+ * @since v16.8.0, v14.18.0
216
+ */
217
+ export function toUSVString(string: string): string;
218
+ /**
219
+ * Creates and returns an `AbortController` instance whose `AbortSignal` is marked
220
+ * as transferable and can be used with `structuredClone()` or `postMessage()`.
221
+ * @since v18.11.0
222
+ * @experimental
223
+ * @returns A transferable AbortController
224
+ */
225
+ export function transferableAbortController(): AbortController;
226
+ /**
227
+ * Marks the given `AbortSignal` as transferable so that it can be used with`structuredClone()` and `postMessage()`.
228
+ *
229
+ * ```js
230
+ * const signal = transferableAbortSignal(AbortSignal.timeout(100));
231
+ * const channel = new MessageChannel();
232
+ * channel.port2.postMessage(signal, [signal]);
233
+ * ```
234
+ * @since v18.11.0
235
+ * @experimental
236
+ * @param signal The AbortSignal
237
+ * @returns The same AbortSignal
238
+ */
239
+ export function transferableAbortSignal(signal: AbortSignal): AbortSignal;
240
+ /**
241
+ * Listens to abort event on the provided `signal` and
242
+ * returns a promise that is fulfilled when the `signal` is
243
+ * aborted. If the passed `resource` is garbage collected before the `signal` is
244
+ * aborted, the returned promise shall remain pending indefinitely.
245
+ *
246
+ * ```js
247
+ * import { aborted } from 'node:util';
248
+ *
249
+ * const dependent = obtainSomethingAbortable();
250
+ *
251
+ * aborted(dependent.signal, dependent).then(() => {
252
+ * // Do something when dependent is aborted.
253
+ * });
254
+ *
255
+ * dependent.on('event', () => {
256
+ * dependent.abort();
257
+ * });
258
+ * ```
259
+ * @since v19.7.0
260
+ * @experimental
261
+ * @param resource Any non-null entity, reference to which is held weakly.
262
+ */
263
+ export function aborted(signal: AbortSignal, resource: any): Promise<void>;
264
+ /**
265
+ * The `util.inspect()` method returns a string representation of `object` that is
266
+ * intended for debugging. The output of `util.inspect` may change at any time
267
+ * and should not be depended upon programmatically. Additional `options` may be
268
+ * passed that alter the result. `util.inspect()` will use the constructor's name and/or `@@toStringTag` to make
269
+ * an identifiable tag for an inspected value.
270
+ *
271
+ * ```js
272
+ * class Foo {
273
+ * get [Symbol.toStringTag]() {
274
+ * return 'bar';
275
+ * }
276
+ * }
277
+ *
278
+ * class Bar {}
279
+ *
280
+ * const baz = Object.create(null, { [Symbol.toStringTag]: { value: 'foo' } });
281
+ *
282
+ * util.inspect(new Foo()); // 'Foo [bar] {}'
283
+ * util.inspect(new Bar()); // 'Bar {}'
284
+ * util.inspect(baz); // '[foo] {}'
285
+ * ```
286
+ *
287
+ * Circular references point to their anchor by using a reference index:
288
+ *
289
+ * ```js
290
+ * const { inspect } = require('node:util');
291
+ *
292
+ * const obj = {};
293
+ * obj.a = [obj];
294
+ * obj.b = {};
295
+ * obj.b.inner = obj.b;
296
+ * obj.b.obj = obj;
297
+ *
298
+ * console.log(inspect(obj));
299
+ * // <ref *1> {
300
+ * // a: [ [Circular *1] ],
301
+ * // b: <ref *2> { inner: [Circular *2], obj: [Circular *1] }
302
+ * // }
303
+ * ```
304
+ *
305
+ * The following example inspects all properties of the `util` object:
306
+ *
307
+ * ```js
308
+ * const util = require('node:util');
309
+ *
310
+ * console.log(util.inspect(util, { showHidden: true, depth: null }));
311
+ * ```
312
+ *
313
+ * The following example highlights the effect of the `compact` option:
314
+ *
315
+ * ```js
316
+ * const util = require('node:util');
317
+ *
318
+ * const o = {
319
+ * a: [1, 2, [[
320
+ * 'Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit, sed do ' +
321
+ * 'eiusmod \ntempor incididunt ut labore et dolore magna aliqua.',
322
+ * 'test',
323
+ * 'foo']], 4],
324
+ * b: new Map([['za', 1], ['zb', 'test']]),
325
+ * };
326
+ * console.log(util.inspect(o, { compact: true, depth: 5, breakLength: 80 }));
327
+ *
328
+ * // { a:
329
+ * // [ 1,
330
+ * // 2,
331
+ * // [ [ 'Lorem ipsum dolor sit amet,\nconsectetur [...]', // A long line
332
+ * // 'test',
333
+ * // 'foo' ] ],
334
+ * // 4 ],
335
+ * // b: Map(2) { 'za' => 1, 'zb' => 'test' } }
336
+ *
337
+ * // Setting `compact` to false or an integer creates more reader friendly output.
338
+ * console.log(util.inspect(o, { compact: false, depth: 5, breakLength: 80 }));
339
+ *
340
+ * // {
341
+ * // a: [
342
+ * // 1,
343
+ * // 2,
344
+ * // [
345
+ * // [
346
+ * // 'Lorem ipsum dolor sit amet,\n' +
347
+ * // 'consectetur adipiscing elit, sed do eiusmod \n' +
348
+ * // 'tempor incididunt ut labore et dolore magna aliqua.',
349
+ * // 'test',
350
+ * // 'foo'
351
+ * // ]
352
+ * // ],
353
+ * // 4
354
+ * // ],
355
+ * // b: Map(2) {
356
+ * // 'za' => 1,
357
+ * // 'zb' => 'test'
358
+ * // }
359
+ * // }
360
+ *
361
+ * // Setting `breakLength` to e.g. 150 will print the "Lorem ipsum" text in a
362
+ * // single line.
363
+ * ```
364
+ *
365
+ * The `showHidden` option allows [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) and
366
+ * [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) entries to be
367
+ * inspected. If there are more entries than `maxArrayLength`, there is no
368
+ * 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
369
+ * result in different output. Furthermore, entries
370
+ * with no remaining strong references may be garbage collected at any time.
371
+ *
372
+ * ```js
373
+ * const { inspect } = require('node:util');
374
+ *
375
+ * const obj = { a: 1 };
376
+ * const obj2 = { b: 2 };
377
+ * const weakSet = new WeakSet([obj, obj2]);
378
+ *
379
+ * console.log(inspect(weakSet, { showHidden: true }));
380
+ * // WeakSet { { a: 1 }, { b: 2 } }
381
+ * ```
382
+ *
383
+ * The `sorted` option ensures that an object's property insertion order does not
384
+ * impact the result of `util.inspect()`.
385
+ *
386
+ * ```js
387
+ * const { inspect } = require('node:util');
388
+ * const assert = require('node:assert');
389
+ *
390
+ * const o1 = {
391
+ * b: [2, 3, 1],
392
+ * a: '`a` comes before `b`',
393
+ * c: new Set([2, 3, 1]),
394
+ * };
395
+ * console.log(inspect(o1, { sorted: true }));
396
+ * // { a: '`a` comes before `b`', b: [ 2, 3, 1 ], c: Set(3) { 1, 2, 3 } }
397
+ * console.log(inspect(o1, { sorted: (a, b) => b.localeCompare(a) }));
398
+ * // { c: Set(3) { 3, 2, 1 }, b: [ 2, 3, 1 ], a: '`a` comes before `b`' }
399
+ *
400
+ * const o2 = {
401
+ * c: new Set([2, 1, 3]),
402
+ * a: '`a` comes before `b`',
403
+ * b: [2, 3, 1],
404
+ * };
405
+ * assert.strict.equal(
406
+ * inspect(o1, { sorted: true }),
407
+ * inspect(o2, { sorted: true }),
408
+ * );
409
+ * ```
410
+ *
411
+ * The `numericSeparator` option adds an underscore every three digits to all
412
+ * numbers.
413
+ *
414
+ * ```js
415
+ * const { inspect } = require('node:util');
416
+ *
417
+ * const thousand = 1_000;
418
+ * const million = 1_000_000;
419
+ * const bigNumber = 123_456_789n;
420
+ * const bigDecimal = 1_234.123_45;
421
+ *
422
+ * console.log(inspect(thousand, { numericSeparator: true }));
423
+ * // 1_000
424
+ * console.log(inspect(million, { numericSeparator: true }));
425
+ * // 1_000_000
426
+ * console.log(inspect(bigNumber, { numericSeparator: true }));
427
+ * // 123_456_789n
428
+ * console.log(inspect(bigDecimal, { numericSeparator: true }));
429
+ * // 1_234.123_45
430
+ * ```
431
+ *
432
+ * `util.inspect()` is a synchronous method intended for debugging. Its maximum
433
+ * output length is approximately 128 MiB. Inputs that result in longer output will
434
+ * be truncated.
435
+ * @since v0.3.0
436
+ * @param object Any JavaScript primitive or `Object`.
437
+ * @return The representation of `object`.
438
+ */
439
+ export function inspect(object: any, showHidden?: boolean, depth?: number | null, color?: boolean): string;
440
+ export function inspect(object: any, options?: InspectOptions): string;
441
+ export namespace inspect {
442
+ let colors: NodeJS.Dict<[number, number]>;
443
+ let styles: {
444
+ [K in Style]: string;
445
+ };
446
+ let defaultOptions: InspectOptions;
447
+ /**
448
+ * Allows changing inspect settings from the repl.
449
+ */
450
+ let replDefaults: InspectOptions;
451
+ /**
452
+ * That can be used to declare custom inspect functions.
453
+ */
454
+ const custom: unique symbol;
455
+ }
456
+ /**
457
+ * Alias for [`Array.isArray()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray).
458
+ *
459
+ * Returns `true` if the given `object` is an `Array`. Otherwise, returns `false`.
460
+ *
461
+ * ```js
462
+ * const util = require('node:util');
463
+ *
464
+ * util.isArray([]);
465
+ * // Returns: true
466
+ * util.isArray(new Array());
467
+ * // Returns: true
468
+ * util.isArray({});
469
+ * // Returns: false
470
+ * ```
471
+ * @since v0.6.0
472
+ * @deprecated Since v4.0.0 - Use `isArray` instead.
473
+ */
474
+ export function isArray(object: unknown): object is unknown[];
475
+ /**
476
+ * Returns `true` if the given `object` is a `RegExp`. Otherwise, returns `false`.
477
+ *
478
+ * ```js
479
+ * const util = require('node:util');
480
+ *
481
+ * util.isRegExp(/some regexp/);
482
+ * // Returns: true
483
+ * util.isRegExp(new RegExp('another regexp'));
484
+ * // Returns: true
485
+ * util.isRegExp({});
486
+ * // Returns: false
487
+ * ```
488
+ * @since v0.6.0
489
+ * @deprecated Since v4.0.0 - Deprecated
490
+ */
491
+ export function isRegExp(object: unknown): object is RegExp;
492
+ /**
493
+ * Returns `true` if the given `object` is a `Date`. Otherwise, returns `false`.
494
+ *
495
+ * ```js
496
+ * const util = require('node:util');
497
+ *
498
+ * util.isDate(new Date());
499
+ * // Returns: true
500
+ * util.isDate(Date());
501
+ * // false (without 'new' returns a String)
502
+ * util.isDate({});
503
+ * // Returns: false
504
+ * ```
505
+ * @since v0.6.0
506
+ * @deprecated Since v4.0.0 - Use {@link types.isDate} instead.
507
+ */
508
+ export function isDate(object: unknown): object is Date;
509
+ /**
510
+ * Returns `true` if the given `object` is an `Error`. Otherwise, returns `false`.
511
+ *
512
+ * ```js
513
+ * const util = require('node:util');
514
+ *
515
+ * util.isError(new Error());
516
+ * // Returns: true
517
+ * util.isError(new TypeError());
518
+ * // Returns: true
519
+ * util.isError({ name: 'Error', message: 'an error occurred' });
520
+ * // Returns: false
521
+ * ```
522
+ *
523
+ * This method relies on `Object.prototype.toString()` behavior. It is
524
+ * possible to obtain an incorrect result when the `object` argument manipulates `@@toStringTag`.
525
+ *
526
+ * ```js
527
+ * const util = require('node:util');
528
+ * const obj = { name: 'Error', message: 'an error occurred' };
529
+ *
530
+ * util.isError(obj);
531
+ * // Returns: false
532
+ * obj[Symbol.toStringTag] = 'Error';
533
+ * util.isError(obj);
534
+ * // Returns: true
535
+ * ```
536
+ * @since v0.6.0
537
+ * @deprecated Since v4.0.0 - Use {@link types.isNativeError} instead.
538
+ */
539
+ export function isError(object: unknown): object is Error;
540
+ /**
541
+ * Usage of `util.inherits()` is discouraged. Please use the ES6 `class` and `extends` keywords to get language level inheritance support. Also note
542
+ * that the two styles are [semantically incompatible](https://github.com/nodejs/node/issues/4179).
543
+ *
544
+ * Inherit the prototype methods from one [constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor) into another. The
545
+ * prototype of `constructor` will be set to a new object created from `superConstructor`.
546
+ *
547
+ * This mainly adds some input validation on top of`Object.setPrototypeOf(constructor.prototype, superConstructor.prototype)`.
548
+ * As an additional convenience, `superConstructor` will be accessible
549
+ * through the `constructor.super_` property.
550
+ *
551
+ * ```js
552
+ * const util = require('node:util');
553
+ * const EventEmitter = require('node:events');
554
+ *
555
+ * function MyStream() {
556
+ * EventEmitter.call(this);
557
+ * }
558
+ *
559
+ * util.inherits(MyStream, EventEmitter);
560
+ *
561
+ * MyStream.prototype.write = function(data) {
562
+ * this.emit('data', data);
563
+ * };
564
+ *
565
+ * const stream = new MyStream();
566
+ *
567
+ * console.log(stream instanceof EventEmitter); // true
568
+ * console.log(MyStream.super_ === EventEmitter); // true
569
+ *
570
+ * stream.on('data', (data) => {
571
+ * console.log(`Received data: "${data}"`);
572
+ * });
573
+ * stream.write('It works!'); // Received data: "It works!"
574
+ * ```
575
+ *
576
+ * ES6 example using `class` and `extends`:
577
+ *
578
+ * ```js
579
+ * const EventEmitter = require('node:events');
580
+ *
581
+ * class MyStream extends EventEmitter {
582
+ * write(data) {
583
+ * this.emit('data', data);
584
+ * }
585
+ * }
586
+ *
587
+ * const stream = new MyStream();
588
+ *
589
+ * stream.on('data', (data) => {
590
+ * console.log(`Received data: "${data}"`);
591
+ * });
592
+ * stream.write('With ES6');
593
+ * ```
594
+ * @since v0.3.0
595
+ * @legacy Use ES2015 class syntax and `extends` keyword instead.
596
+ */
597
+ export function inherits(constructor: unknown, superConstructor: unknown): void;
598
+ export type DebugLoggerFunction = (msg: string, ...param: unknown[]) => void;
599
+ export interface DebugLogger extends DebugLoggerFunction {
600
+ enabled: boolean;
601
+ }
602
+ /**
603
+ * The `util.debuglog()` method is used to create a function that conditionally
604
+ * 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
605
+ * environment variable, then the returned function operates similar to `console.error()`. If not, then the returned function is a no-op.
606
+ *
607
+ * ```js
608
+ * const util = require('node:util');
609
+ * const debuglog = util.debuglog('foo');
610
+ *
611
+ * debuglog('hello from foo [%d]', 123);
612
+ * ```
613
+ *
614
+ * If this program is run with `NODE_DEBUG=foo` in the environment, then
615
+ * it will output something like:
616
+ *
617
+ * ```console
618
+ * FOO 3245: hello from foo [123]
619
+ * ```
620
+ *
621
+ * where `3245` is the process id. If it is not run with that
622
+ * environment variable set, then it will not print anything.
623
+ *
624
+ * The `section` supports wildcard also:
625
+ *
626
+ * ```js
627
+ * const util = require('node:util');
628
+ * const debuglog = util.debuglog('foo-bar');
629
+ *
630
+ * debuglog('hi there, it\'s foo-bar [%d]', 2333);
631
+ * ```
632
+ *
633
+ * if it is run with `NODE_DEBUG=foo*` in the environment, then it will output
634
+ * something like:
635
+ *
636
+ * ```console
637
+ * FOO-BAR 3257: hi there, it's foo-bar [2333]
638
+ * ```
639
+ *
640
+ * Multiple comma-separated `section` names may be specified in the `NODE_DEBUG`environment variable: `NODE_DEBUG=fs,net,tls`.
641
+ *
642
+ * The optional `callback` argument can be used to replace the logging function
643
+ * with a different function that doesn't have any initialization or
644
+ * unnecessary wrapping.
645
+ *
646
+ * ```js
647
+ * const util = require('node:util');
648
+ * let debuglog = util.debuglog('internals', (debug) => {
649
+ * // Replace with a logging function that optimizes out
650
+ * // testing if the section is enabled
651
+ * debuglog = debug;
652
+ * });
653
+ * ```
654
+ * @since v0.11.3
655
+ * @param section A string identifying the portion of the application for which the `debuglog` function is being created.
656
+ * @param callback A callback invoked the first time the logging function is called with a function argument that is a more optimized logging function.
657
+ * @return The logging function
658
+ */
659
+ export function debuglog(section: string, callback?: (fn: DebugLoggerFunction) => void): DebugLogger;
660
+ export const debug: typeof debuglog;
661
+ /**
662
+ * Returns `true` if the given `object` is a `Boolean`. Otherwise, returns `false`.
663
+ *
664
+ * ```js
665
+ * const util = require('node:util');
666
+ *
667
+ * util.isBoolean(1);
668
+ * // Returns: false
669
+ * util.isBoolean(0);
670
+ * // Returns: false
671
+ * util.isBoolean(false);
672
+ * // Returns: true
673
+ * ```
674
+ * @since v0.11.5
675
+ * @deprecated Since v4.0.0 - Use `typeof value === 'boolean'` instead.
676
+ */
677
+ export function isBoolean(object: unknown): object is boolean;
678
+ /**
679
+ * Returns `true` if the given `object` is a `Buffer`. Otherwise, returns `false`.
680
+ *
681
+ * ```js
682
+ * const util = require('node:util');
683
+ *
684
+ * util.isBuffer({ length: 0 });
685
+ * // Returns: false
686
+ * util.isBuffer([]);
687
+ * // Returns: false
688
+ * util.isBuffer(Buffer.from('hello world'));
689
+ * // Returns: true
690
+ * ```
691
+ * @since v0.11.5
692
+ * @deprecated Since v4.0.0 - Use `isBuffer` instead.
693
+ */
694
+ export function isBuffer(object: unknown): object is Buffer;
695
+ /**
696
+ * Returns `true` if the given `object` is a `Function`. Otherwise, returns `false`.
697
+ *
698
+ * ```js
699
+ * const util = require('node:util');
700
+ *
701
+ * function Foo() {}
702
+ * const Bar = () => {};
703
+ *
704
+ * util.isFunction({});
705
+ * // Returns: false
706
+ * util.isFunction(Foo);
707
+ * // Returns: true
708
+ * util.isFunction(Bar);
709
+ * // Returns: true
710
+ * ```
711
+ * @since v0.11.5
712
+ * @deprecated Since v4.0.0 - Use `typeof value === 'function'` instead.
713
+ */
714
+ export function isFunction(object: unknown): boolean;
715
+ /**
716
+ * Returns `true` if the given `object` is strictly `null`. Otherwise, returns`false`.
717
+ *
718
+ * ```js
719
+ * const util = require('node:util');
720
+ *
721
+ * util.isNull(0);
722
+ * // Returns: false
723
+ * util.isNull(undefined);
724
+ * // Returns: false
725
+ * util.isNull(null);
726
+ * // Returns: true
727
+ * ```
728
+ * @since v0.11.5
729
+ * @deprecated Since v4.0.0 - Use `value === null` instead.
730
+ */
731
+ export function isNull(object: unknown): object is null;
732
+ /**
733
+ * Returns `true` if the given `object` is `null` or `undefined`. Otherwise,
734
+ * returns `false`.
735
+ *
736
+ * ```js
737
+ * const util = require('node:util');
738
+ *
739
+ * util.isNullOrUndefined(0);
740
+ * // Returns: false
741
+ * util.isNullOrUndefined(undefined);
742
+ * // Returns: true
743
+ * util.isNullOrUndefined(null);
744
+ * // Returns: true
745
+ * ```
746
+ * @since v0.11.5
747
+ * @deprecated Since v4.0.0 - Use `value === undefined || value === null` instead.
748
+ */
749
+ export function isNullOrUndefined(object: unknown): object is null | undefined;
750
+ /**
751
+ * Returns `true` if the given `object` is a `Number`. Otherwise, returns `false`.
752
+ *
753
+ * ```js
754
+ * const util = require('node:util');
755
+ *
756
+ * util.isNumber(false);
757
+ * // Returns: false
758
+ * util.isNumber(Infinity);
759
+ * // Returns: true
760
+ * util.isNumber(0);
761
+ * // Returns: true
762
+ * util.isNumber(NaN);
763
+ * // Returns: true
764
+ * ```
765
+ * @since v0.11.5
766
+ * @deprecated Since v4.0.0 - Use `typeof value === 'number'` instead.
767
+ */
768
+ export function isNumber(object: unknown): object is number;
769
+ /**
770
+ * Returns `true` if the given `object` is strictly an `Object`**and** not a`Function` (even though functions are objects in JavaScript).
771
+ * Otherwise, returns `false`.
772
+ *
773
+ * ```js
774
+ * const util = require('node:util');
775
+ *
776
+ * util.isObject(5);
777
+ * // Returns: false
778
+ * util.isObject(null);
779
+ * // Returns: false
780
+ * util.isObject({});
781
+ * // Returns: true
782
+ * util.isObject(() => {});
783
+ * // Returns: false
784
+ * ```
785
+ * @since v0.11.5
786
+ * @deprecated Since v4.0.0 - Use `value !== null && typeof value === 'object'` instead.
787
+ */
788
+ export function isObject(object: unknown): boolean;
789
+ /**
790
+ * Returns `true` if the given `object` is a primitive type. Otherwise, returns`false`.
791
+ *
792
+ * ```js
793
+ * const util = require('node:util');
794
+ *
795
+ * util.isPrimitive(5);
796
+ * // Returns: true
797
+ * util.isPrimitive('foo');
798
+ * // Returns: true
799
+ * util.isPrimitive(false);
800
+ * // Returns: true
801
+ * util.isPrimitive(null);
802
+ * // Returns: true
803
+ * util.isPrimitive(undefined);
804
+ * // Returns: true
805
+ * util.isPrimitive({});
806
+ * // Returns: false
807
+ * util.isPrimitive(() => {});
808
+ * // Returns: false
809
+ * util.isPrimitive(/^$/);
810
+ * // Returns: false
811
+ * util.isPrimitive(new Date());
812
+ * // Returns: false
813
+ * ```
814
+ * @since v0.11.5
815
+ * @deprecated Since v4.0.0 - Use `(typeof value !== 'object' && typeof value !== 'function') || value === null` instead.
816
+ */
817
+ export function isPrimitive(object: unknown): boolean;
818
+ /**
819
+ * Returns `true` if the given `object` is a `string`. Otherwise, returns `false`.
820
+ *
821
+ * ```js
822
+ * const util = require('node:util');
823
+ *
824
+ * util.isString('');
825
+ * // Returns: true
826
+ * util.isString('foo');
827
+ * // Returns: true
828
+ * util.isString(String('foo'));
829
+ * // Returns: true
830
+ * util.isString(5);
831
+ * // Returns: false
832
+ * ```
833
+ * @since v0.11.5
834
+ * @deprecated Since v4.0.0 - Use `typeof value === 'string'` instead.
835
+ */
836
+ export function isString(object: unknown): object is string;
837
+ /**
838
+ * Returns `true` if the given `object` is a `Symbol`. Otherwise, returns `false`.
839
+ *
840
+ * ```js
841
+ * const util = require('node:util');
842
+ *
843
+ * util.isSymbol(5);
844
+ * // Returns: false
845
+ * util.isSymbol('foo');
846
+ * // Returns: false
847
+ * util.isSymbol(Symbol('foo'));
848
+ * // Returns: true
849
+ * ```
850
+ * @since v0.11.5
851
+ * @deprecated Since v4.0.0 - Use `typeof value === 'symbol'` instead.
852
+ */
853
+ export function isSymbol(object: unknown): object is symbol;
854
+ /**
855
+ * Returns `true` if the given `object` is `undefined`. Otherwise, returns `false`.
856
+ *
857
+ * ```js
858
+ * const util = require('node:util');
859
+ *
860
+ * const foo = undefined;
861
+ * util.isUndefined(5);
862
+ * // Returns: false
863
+ * util.isUndefined(foo);
864
+ * // Returns: true
865
+ * util.isUndefined(null);
866
+ * // Returns: false
867
+ * ```
868
+ * @since v0.11.5
869
+ * @deprecated Since v4.0.0 - Use `value === undefined` instead.
870
+ */
871
+ export function isUndefined(object: unknown): object is undefined;
872
+ /**
873
+ * The `util.deprecate()` method wraps `fn` (which may be a function or class) in
874
+ * such a way that it is marked as deprecated.
875
+ *
876
+ * ```js
877
+ * const util = require('node:util');
878
+ *
879
+ * exports.obsoleteFunction = util.deprecate(() => {
880
+ * // Do something here.
881
+ * }, 'obsoleteFunction() is deprecated. Use newShinyFunction() instead.');
882
+ * ```
883
+ *
884
+ * When called, `util.deprecate()` will return a function that will emit a `DeprecationWarning` using the `'warning'` event. The warning will
885
+ * be emitted and printed to `stderr` the first time the returned function is
886
+ * called. After the warning is emitted, the wrapped function is called without
887
+ * emitting a warning.
888
+ *
889
+ * If the same optional `code` is supplied in multiple calls to `util.deprecate()`,
890
+ * the warning will be emitted only once for that `code`.
891
+ *
892
+ * ```js
893
+ * const util = require('node:util');
894
+ *
895
+ * const fn1 = util.deprecate(someFunction, someMessage, 'DEP0001');
896
+ * const fn2 = util.deprecate(someOtherFunction, someOtherMessage, 'DEP0001');
897
+ * fn1(); // Emits a deprecation warning with code DEP0001
898
+ * fn2(); // Does not emit a deprecation warning because it has the same code
899
+ * ```
900
+ *
901
+ * If either the `--no-deprecation` or `--no-warnings` command-line flags are
902
+ * used, or if the `process.noDeprecation` property is set to `true`_prior_ to
903
+ * the first deprecation warning, the `util.deprecate()` method does nothing.
904
+ *
905
+ * If the `--trace-deprecation` or `--trace-warnings` command-line flags are set,
906
+ * or the `process.traceDeprecation` property is set to `true`, a warning and a
907
+ * stack trace are printed to `stderr` the first time the deprecated function is
908
+ * called.
909
+ *
910
+ * If the `--throw-deprecation` command-line flag is set, or the `process.throwDeprecation` property is set to `true`, then an exception will be
911
+ * thrown when the deprecated function is called.
912
+ *
913
+ * The `--throw-deprecation` command-line flag and `process.throwDeprecation` property take precedence over `--trace-deprecation` and `process.traceDeprecation`.
914
+ * @since v0.8.0
915
+ * @param fn The function that is being deprecated.
916
+ * @param msg A warning message to display when the deprecated function is invoked.
917
+ * @param code A deprecation code. See the `list of deprecated APIs` for a list of codes.
918
+ * @return The deprecated function wrapped to emit a warning.
919
+ */
920
+ export function deprecate<T extends Function>(fn: T, msg: string, code?: string): T;
921
+ /**
922
+ * Returns `true` if there is deep strict equality between `val1` and `val2`.
923
+ * Otherwise, returns `false`.
924
+ *
925
+ * See `assert.deepStrictEqual()` for more information about deep strict
926
+ * equality.
927
+ * @since v9.0.0
928
+ */
929
+ export function isDeepStrictEqual(val1: unknown, val2: unknown): boolean;
930
+ /**
931
+ * Returns `str` with any ANSI escape codes removed.
932
+ *
933
+ * ```js
934
+ * console.log(util.stripVTControlCharacters('\u001B[4mvalue\u001B[0m'));
935
+ * // Prints "value"
936
+ * ```
937
+ * @since v16.11.0
938
+ */
939
+ export function stripVTControlCharacters(str: string): string;
940
+ /**
941
+ * Takes an `async` function (or a function that returns a `Promise`) and returns a
942
+ * function following the error-first callback style, i.e. taking
943
+ * an `(err, value) => ...` callback as the last argument. In the callback, the
944
+ * first argument will be the rejection reason (or `null` if the `Promise` resolved), and the second argument will be the resolved value.
945
+ *
946
+ * ```js
947
+ * const util = require('node:util');
948
+ *
949
+ * async function fn() {
950
+ * return 'hello world';
951
+ * }
952
+ * const callbackFunction = util.callbackify(fn);
953
+ *
954
+ * callbackFunction((err, ret) => {
955
+ * if (err) throw err;
956
+ * console.log(ret);
957
+ * });
958
+ * ```
959
+ *
960
+ * Will print:
961
+ *
962
+ * ```text
963
+ * hello world
964
+ * ```
965
+ *
966
+ * The callback is executed asynchronously, and will have a limited stack trace.
967
+ * If the callback throws, the process will emit an `'uncaughtException'` event, and if not handled will exit.
968
+ *
969
+ * Since `null` has a special meaning as the first argument to a callback, if a
970
+ * wrapped function rejects a `Promise` with a falsy value as a reason, the value
971
+ * is wrapped in an `Error` with the original value stored in a field named `reason`.
972
+ *
973
+ * ```js
974
+ * function fn() {
975
+ * return Promise.reject(null);
976
+ * }
977
+ * const callbackFunction = util.callbackify(fn);
978
+ *
979
+ * callbackFunction((err, ret) => {
980
+ * // When the Promise was rejected with `null` it is wrapped with an Error and
981
+ * // the original value is stored in `reason`.
982
+ * err &#x26;&#x26; Object.hasOwn(err, 'reason') &#x26;&#x26; err.reason === null; // true
983
+ * });
984
+ * ```
985
+ * @since v8.2.0
986
+ * @param fn An `async` function
987
+ * @return a callback style function
988
+ */
989
+ export function callbackify(fn: () => Promise<void>): (callback: (err: NodeJS.ErrnoException) => void) => void;
990
+ export function callbackify<TResult>(
991
+ fn: () => Promise<TResult>,
992
+ ): (callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void;
993
+ export function callbackify<T1>(
994
+ fn: (arg1: T1) => Promise<void>,
995
+ ): (arg1: T1, callback: (err: NodeJS.ErrnoException) => void) => void;
996
+ export function callbackify<T1, TResult>(
997
+ fn: (arg1: T1) => Promise<TResult>,
998
+ ): (arg1: T1, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void;
999
+ export function callbackify<T1, T2>(
1000
+ fn: (arg1: T1, arg2: T2) => Promise<void>,
1001
+ ): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException) => void) => void;
1002
+ export function callbackify<T1, T2, TResult>(
1003
+ fn: (arg1: T1, arg2: T2) => Promise<TResult>,
1004
+ ): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;
1005
+ export function callbackify<T1, T2, T3>(
1006
+ fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<void>,
1007
+ ): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException) => void) => void;
1008
+ export function callbackify<T1, T2, T3, TResult>(
1009
+ fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>,
1010
+ ): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;
1011
+ export function callbackify<T1, T2, T3, T4>(
1012
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>,
1013
+ ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException) => void) => void;
1014
+ export function callbackify<T1, T2, T3, T4, TResult>(
1015
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>,
1016
+ ): (
1017
+ arg1: T1,
1018
+ arg2: T2,
1019
+ arg3: T3,
1020
+ arg4: T4,
1021
+ callback: (err: NodeJS.ErrnoException | null, result: TResult) => void,
1022
+ ) => void;
1023
+ export function callbackify<T1, T2, T3, T4, T5>(
1024
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>,
1025
+ ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException) => void) => void;
1026
+ export function callbackify<T1, T2, T3, T4, T5, TResult>(
1027
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>,
1028
+ ): (
1029
+ arg1: T1,
1030
+ arg2: T2,
1031
+ arg3: T3,
1032
+ arg4: T4,
1033
+ arg5: T5,
1034
+ callback: (err: NodeJS.ErrnoException | null, result: TResult) => void,
1035
+ ) => void;
1036
+ export function callbackify<T1, T2, T3, T4, T5, T6>(
1037
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<void>,
1038
+ ): (
1039
+ arg1: T1,
1040
+ arg2: T2,
1041
+ arg3: T3,
1042
+ arg4: T4,
1043
+ arg5: T5,
1044
+ arg6: T6,
1045
+ callback: (err: NodeJS.ErrnoException) => void,
1046
+ ) => void;
1047
+ export function callbackify<T1, T2, T3, T4, T5, T6, TResult>(
1048
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<TResult>,
1049
+ ): (
1050
+ arg1: T1,
1051
+ arg2: T2,
1052
+ arg3: T3,
1053
+ arg4: T4,
1054
+ arg5: T5,
1055
+ arg6: T6,
1056
+ callback: (err: NodeJS.ErrnoException | null, result: TResult) => void,
1057
+ ) => void;
1058
+ export interface CustomPromisifyLegacy<TCustom extends Function> extends Function {
1059
+ __promisify__: TCustom;
1060
+ }
1061
+ export interface CustomPromisifySymbol<TCustom extends Function> extends Function {
1062
+ [promisify.custom]: TCustom;
1063
+ }
1064
+ export type CustomPromisify<TCustom extends Function> =
1065
+ | CustomPromisifySymbol<TCustom>
1066
+ | CustomPromisifyLegacy<TCustom>;
1067
+ /**
1068
+ * Takes a function following the common error-first callback style, i.e. taking
1069
+ * an `(err, value) => ...` callback as the last argument, and returns a version
1070
+ * that returns promises.
1071
+ *
1072
+ * ```js
1073
+ * const util = require('node:util');
1074
+ * const fs = require('node:fs');
1075
+ *
1076
+ * const stat = util.promisify(fs.stat);
1077
+ * stat('.').then((stats) => {
1078
+ * // Do something with `stats`
1079
+ * }).catch((error) => {
1080
+ * // Handle the error.
1081
+ * });
1082
+ * ```
1083
+ *
1084
+ * Or, equivalently using `async function`s:
1085
+ *
1086
+ * ```js
1087
+ * const util = require('node:util');
1088
+ * const fs = require('node:fs');
1089
+ *
1090
+ * const stat = util.promisify(fs.stat);
1091
+ *
1092
+ * async function callStat() {
1093
+ * const stats = await stat('.');
1094
+ * console.log(`This directory is owned by ${stats.uid}`);
1095
+ * }
1096
+ *
1097
+ * callStat();
1098
+ * ```
1099
+ *
1100
+ * If there is an `original[util.promisify.custom]` property present, `promisify` will return its value, see `Custom promisified functions`.
1101
+ *
1102
+ * `promisify()` assumes that `original` is a function taking a callback as its
1103
+ * 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
1104
+ * an error-first callback, it will still be passed an error-first
1105
+ * callback as its last argument.
1106
+ *
1107
+ * Using `promisify()` on class methods or other methods that use `this` may not
1108
+ * work as expected unless handled specially:
1109
+ *
1110
+ * ```js
1111
+ * const util = require('node:util');
1112
+ *
1113
+ * class Foo {
1114
+ * constructor() {
1115
+ * this.a = 42;
1116
+ * }
1117
+ *
1118
+ * bar(callback) {
1119
+ * callback(null, this.a);
1120
+ * }
1121
+ * }
1122
+ *
1123
+ * const foo = new Foo();
1124
+ *
1125
+ * const naiveBar = util.promisify(foo.bar);
1126
+ * // TypeError: Cannot read property 'a' of undefined
1127
+ * // naiveBar().then(a => console.log(a));
1128
+ *
1129
+ * naiveBar.call(foo).then((a) => console.log(a)); // '42'
1130
+ *
1131
+ * const bindBar = naiveBar.bind(foo);
1132
+ * bindBar().then((a) => console.log(a)); // '42'
1133
+ * ```
1134
+ * @since v8.0.0
1135
+ */
1136
+ export function promisify<TCustom extends Function>(fn: CustomPromisify<TCustom>): TCustom;
1137
+ export function promisify<TResult>(
1138
+ fn: (callback: (err: any, result: TResult) => void) => void,
1139
+ ): () => Promise<TResult>;
1140
+ export function promisify(fn: (callback: (err?: any) => void) => void): () => Promise<void>;
1141
+ export function promisify<T1, TResult>(
1142
+ fn: (arg1: T1, callback: (err: any, result: TResult) => void) => void,
1143
+ ): (arg1: T1) => Promise<TResult>;
1144
+ export function promisify<T1>(fn: (arg1: T1, callback: (err?: any) => void) => void): (arg1: T1) => Promise<void>;
1145
+ export function promisify<T1, T2, TResult>(
1146
+ fn: (arg1: T1, arg2: T2, callback: (err: any, result: TResult) => void) => void,
1147
+ ): (arg1: T1, arg2: T2) => Promise<TResult>;
1148
+ export function promisify<T1, T2>(
1149
+ fn: (arg1: T1, arg2: T2, callback: (err?: any) => void) => void,
1150
+ ): (arg1: T1, arg2: T2) => Promise<void>;
1151
+ export function promisify<T1, T2, T3, TResult>(
1152
+ fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => void) => void,
1153
+ ): (arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>;
1154
+ export function promisify<T1, T2, T3>(
1155
+ fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err?: any) => void) => void,
1156
+ ): (arg1: T1, arg2: T2, arg3: T3) => Promise<void>;
1157
+ export function promisify<T1, T2, T3, T4, TResult>(
1158
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => void) => void,
1159
+ ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>;
1160
+ export function promisify<T1, T2, T3, T4>(
1161
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err?: any) => void) => void,
1162
+ ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>;
1163
+ export function promisify<T1, T2, T3, T4, T5, TResult>(
1164
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => void) => void,
1165
+ ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>;
1166
+ export function promisify<T1, T2, T3, T4, T5>(
1167
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err?: any) => void) => void,
1168
+ ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>;
1169
+ export function promisify(fn: Function): Function;
1170
+ export namespace promisify {
1171
+ /**
1172
+ * That can be used to declare custom promisified variants of functions.
1173
+ */
1174
+ const custom: unique symbol;
1175
+ }
1176
+ /**
1177
+ * Stability: 1.1 - Active development
1178
+ * Given an example `.env` file:
1179
+ *
1180
+ * ```js
1181
+ * const { parseEnv } = require('node:util');
1182
+ *
1183
+ * parseEnv('HELLO=world\nHELLO=oh my\n');
1184
+ * // Returns: { HELLO: 'oh my' }
1185
+ * ```
1186
+ * @param content The raw contents of a `.env` file.
1187
+ * @since v20.12.0
1188
+ */
1189
+ export function parseEnv(content: string): object;
1190
+ // https://nodejs.org/docs/latest/api/util.html#foreground-colors
1191
+ type ForegroundColors =
1192
+ | "black"
1193
+ | "blackBright"
1194
+ | "blue"
1195
+ | "blueBright"
1196
+ | "cyan"
1197
+ | "cyanBright"
1198
+ | "gray"
1199
+ | "green"
1200
+ | "greenBright"
1201
+ | "grey"
1202
+ | "magenta"
1203
+ | "magentaBright"
1204
+ | "red"
1205
+ | "redBright"
1206
+ | "white"
1207
+ | "whiteBright"
1208
+ | "yellow"
1209
+ | "yellowBright";
1210
+ // https://nodejs.org/docs/latest/api/util.html#background-colors
1211
+ type BackgroundColors =
1212
+ | "bgBlack"
1213
+ | "bgBlackBright"
1214
+ | "bgBlue"
1215
+ | "bgBlueBright"
1216
+ | "bgCyan"
1217
+ | "bgCyanBright"
1218
+ | "bgGray"
1219
+ | "bgGreen"
1220
+ | "bgGreenBright"
1221
+ | "bgGrey"
1222
+ | "bgMagenta"
1223
+ | "bgMagentaBright"
1224
+ | "bgRed"
1225
+ | "bgRedBright"
1226
+ | "bgWhite"
1227
+ | "bgWhiteBright"
1228
+ | "bgYellow"
1229
+ | "bgYellowBright";
1230
+ // https://nodejs.org/docs/latest/api/util.html#modifiers
1231
+ type Modifiers =
1232
+ | "blink"
1233
+ | "bold"
1234
+ | "dim"
1235
+ | "doubleunderline"
1236
+ | "framed"
1237
+ | "hidden"
1238
+ | "inverse"
1239
+ | "italic"
1240
+ | "overlined"
1241
+ | "reset"
1242
+ | "strikethrough"
1243
+ | "underline";
1244
+ /**
1245
+ * Stability: 1.1 - Active development
1246
+ *
1247
+ * This function returns a formatted text considering the `format` passed.
1248
+ *
1249
+ * ```js
1250
+ * const { styleText } = require('node:util');
1251
+ * const errorMessage = styleText('red', 'Error! Error!');
1252
+ * console.log(errorMessage);
1253
+ * ```
1254
+ *
1255
+ * `util.inspect.colors` also provides text formats such as `italic`, and `underline` and you can combine both:
1256
+ *
1257
+ * ```js
1258
+ * console.log(
1259
+ * util.styleText('underline', util.styleText('italic', 'My italic underlined message')),
1260
+ * );
1261
+ * ```
1262
+ *
1263
+ * The full list of formats can be found in [modifiers](https://nodejs.org/docs/latest-v20.x/api/util.html#modifiers).
1264
+ * @param format A text format defined in `util.inspect.colors`.
1265
+ * @param text The text to to be formatted.
1266
+ * @since v20.12.0
1267
+ */
1268
+ export function styleText(format: ForegroundColors | BackgroundColors | Modifiers, text: string): string;
1269
+ /**
1270
+ * An implementation of the [WHATWG Encoding Standard](https://encoding.spec.whatwg.org/) `TextDecoder` API.
1271
+ *
1272
+ * ```js
1273
+ * const decoder = new TextDecoder();
1274
+ * const u8arr = new Uint8Array([72, 101, 108, 108, 111]);
1275
+ * console.log(decoder.decode(u8arr)); // Hello
1276
+ * ```
1277
+ * @since v8.3.0
1278
+ */
1279
+ export class TextDecoder {
1280
+ /**
1281
+ * The encoding supported by the `TextDecoder` instance.
1282
+ */
1283
+ readonly encoding: string;
1284
+ /**
1285
+ * The value will be `true` if decoding errors result in a `TypeError` being
1286
+ * thrown.
1287
+ */
1288
+ readonly fatal: boolean;
1289
+ /**
1290
+ * The value will be `true` if the decoding result will include the byte order
1291
+ * mark.
1292
+ */
1293
+ readonly ignoreBOM: boolean;
1294
+ constructor(
1295
+ encoding?: string,
1296
+ options?: {
1297
+ fatal?: boolean | undefined;
1298
+ ignoreBOM?: boolean | undefined;
1299
+ },
1300
+ );
1301
+ /**
1302
+ * Decodes the `input` and returns a string. If `options.stream` is `true`, any
1303
+ * incomplete byte sequences occurring at the end of the `input` are buffered
1304
+ * internally and emitted after the next call to `textDecoder.decode()`.
1305
+ *
1306
+ * If `textDecoder.fatal` is `true`, decoding errors that occur will result in a `TypeError` being thrown.
1307
+ * @param input An `ArrayBuffer`, `DataView`, or `TypedArray` instance containing the encoded data.
1308
+ */
1309
+ decode(
1310
+ input?: NodeJS.ArrayBufferView | ArrayBuffer | null,
1311
+ options?: {
1312
+ stream?: boolean | undefined;
1313
+ },
1314
+ ): string;
1315
+ }
1316
+ export interface EncodeIntoResult {
1317
+ /**
1318
+ * The read Unicode code units of input.
1319
+ */
1320
+ read: number;
1321
+ /**
1322
+ * The written UTF-8 bytes of output.
1323
+ */
1324
+ written: number;
1325
+ }
1326
+ export { types };
1327
+
1328
+ //// TextEncoder/Decoder
1329
+ /**
1330
+ * An implementation of the [WHATWG Encoding Standard](https://encoding.spec.whatwg.org/) `TextEncoder` API. All
1331
+ * instances of `TextEncoder` only support UTF-8 encoding.
1332
+ *
1333
+ * ```js
1334
+ * const encoder = new TextEncoder();
1335
+ * const uint8array = encoder.encode('this is some data');
1336
+ * ```
1337
+ *
1338
+ * The `TextEncoder` class is also available on the global object.
1339
+ * @since v8.3.0
1340
+ */
1341
+ export class TextEncoder {
1342
+ /**
1343
+ * The encoding supported by the `TextEncoder` instance. Always set to `'utf-8'`.
1344
+ */
1345
+ readonly encoding: string;
1346
+ /**
1347
+ * UTF-8 encodes the `input` string and returns a `Uint8Array` containing the
1348
+ * encoded bytes.
1349
+ * @param [input='an empty string'] The text to encode.
1350
+ */
1351
+ encode(input?: string): Uint8Array;
1352
+ /**
1353
+ * UTF-8 encodes the `src` string to the `dest` Uint8Array and returns an object
1354
+ * containing the read Unicode code units and written UTF-8 bytes.
1355
+ *
1356
+ * ```js
1357
+ * const encoder = new TextEncoder();
1358
+ * const src = 'this is some data';
1359
+ * const dest = new Uint8Array(10);
1360
+ * const { read, written } = encoder.encodeInto(src, dest);
1361
+ * ```
1362
+ * @param src The text to encode.
1363
+ * @param dest The array to hold the encode result.
1364
+ */
1365
+ encodeInto(src: string, dest: Uint8Array): EncodeIntoResult;
1366
+ }
1367
+ import { TextDecoder as _TextDecoder, TextEncoder as _TextEncoder } from "util";
1368
+ global {
1369
+ /**
1370
+ * `TextDecoder` class is a global reference for `require('util').TextDecoder`
1371
+ * https://nodejs.org/api/globals.html#textdecoder
1372
+ * @since v11.0.0
1373
+ */
1374
+ var TextDecoder: typeof globalThis extends {
1375
+ onmessage: any;
1376
+ TextDecoder: infer TextDecoder;
1377
+ } ? TextDecoder
1378
+ : typeof _TextDecoder;
1379
+ /**
1380
+ * `TextEncoder` class is a global reference for `require('util').TextEncoder`
1381
+ * https://nodejs.org/api/globals.html#textencoder
1382
+ * @since v11.0.0
1383
+ */
1384
+ var TextEncoder: typeof globalThis extends {
1385
+ onmessage: any;
1386
+ TextEncoder: infer TextEncoder;
1387
+ } ? TextEncoder
1388
+ : typeof _TextEncoder;
1389
+ }
1390
+
1391
+ //// parseArgs
1392
+ /**
1393
+ * Provides a higher level API for command-line argument parsing than interacting
1394
+ * with `process.argv` directly. Takes a specification for the expected arguments
1395
+ * and returns a structured object with the parsed options and positionals.
1396
+ *
1397
+ * ```js
1398
+ * import { parseArgs } from 'node:util';
1399
+ * const args = ['-f', '--bar', 'b'];
1400
+ * const options = {
1401
+ * foo: {
1402
+ * type: 'boolean',
1403
+ * short: 'f',
1404
+ * },
1405
+ * bar: {
1406
+ * type: 'string',
1407
+ * },
1408
+ * };
1409
+ * const {
1410
+ * values,
1411
+ * positionals,
1412
+ * } = parseArgs({ args, options });
1413
+ * console.log(values, positionals);
1414
+ * // Prints: [Object: null prototype] { foo: true, bar: 'b' } []
1415
+ * ```
1416
+ * @since v18.3.0, v16.17.0
1417
+ * @param config Used to provide arguments for parsing and to configure the parser. `config` supports the following properties:
1418
+ * @return The parsed command line arguments:
1419
+ */
1420
+ export function parseArgs<T extends ParseArgsConfig>(config?: T): ParsedResults<T>;
1421
+ interface ParseArgsOptionConfig {
1422
+ /**
1423
+ * Type of argument.
1424
+ */
1425
+ type: "string" | "boolean";
1426
+ /**
1427
+ * Whether this option can be provided multiple times.
1428
+ * If `true`, all values will be collected in an array.
1429
+ * If `false`, values for the option are last-wins.
1430
+ * @default false.
1431
+ */
1432
+ multiple?: boolean | undefined;
1433
+ /**
1434
+ * A single character alias for the option.
1435
+ */
1436
+ short?: string | undefined;
1437
+ /**
1438
+ * The default option value when it is not set by args.
1439
+ * It must be of the same type as the the `type` property.
1440
+ * When `multiple` is `true`, it must be an array.
1441
+ * @since v18.11.0
1442
+ */
1443
+ default?: string | boolean | string[] | boolean[] | undefined;
1444
+ }
1445
+ interface ParseArgsOptionsConfig {
1446
+ [longOption: string]: ParseArgsOptionConfig;
1447
+ }
1448
+ export interface ParseArgsConfig {
1449
+ /**
1450
+ * Array of argument strings.
1451
+ */
1452
+ args?: string[] | undefined;
1453
+ /**
1454
+ * Used to describe arguments known to the parser.
1455
+ */
1456
+ options?: ParseArgsOptionsConfig | undefined;
1457
+ /**
1458
+ * Should an error be thrown when unknown arguments are encountered,
1459
+ * or when arguments are passed that do not match the `type` configured in `options`.
1460
+ * @default true
1461
+ */
1462
+ strict?: boolean | undefined;
1463
+ /**
1464
+ * Whether this command accepts positional arguments.
1465
+ */
1466
+ allowPositionals?: boolean | undefined;
1467
+ /**
1468
+ * Return the parsed tokens. This is useful for extending the built-in behavior,
1469
+ * from adding additional checks through to reprocessing the tokens in different ways.
1470
+ * @default false
1471
+ */
1472
+ tokens?: boolean | undefined;
1473
+ }
1474
+ /*
1475
+ IfDefaultsTrue and IfDefaultsFalse are helpers to handle default values for missing boolean properties.
1476
+ TypeScript does not have exact types for objects: https://github.com/microsoft/TypeScript/issues/12936
1477
+ This means it is impossible to distinguish between "field X is definitely not present" and "field X may or may not be present".
1478
+ But we expect users to generally provide their config inline or `as const`, which means TS will always know whether a given field is present.
1479
+ So this helper treats "not definitely present" (i.e., not `extends boolean`) as being "definitely not present", i.e. it should have its default value.
1480
+ This is technically incorrect but is a much nicer UX for the common case.
1481
+ The IfDefaultsTrue version is for things which default to true; the IfDefaultsFalse version is for things which default to false.
1482
+ */
1483
+ type IfDefaultsTrue<T, IfTrue, IfFalse> = T extends true ? IfTrue
1484
+ : T extends false ? IfFalse
1485
+ : IfTrue;
1486
+
1487
+ // we put the `extends false` condition first here because `undefined` compares like `any` when `strictNullChecks: false`
1488
+ type IfDefaultsFalse<T, IfTrue, IfFalse> = T extends false ? IfFalse
1489
+ : T extends true ? IfTrue
1490
+ : IfFalse;
1491
+
1492
+ type ExtractOptionValue<T extends ParseArgsConfig, O extends ParseArgsOptionConfig> = IfDefaultsTrue<
1493
+ T["strict"],
1494
+ O["type"] extends "string" ? string : O["type"] extends "boolean" ? boolean : string | boolean,
1495
+ string | boolean
1496
+ >;
1497
+
1498
+ type ParsedValues<T extends ParseArgsConfig> =
1499
+ & IfDefaultsTrue<T["strict"], unknown, { [longOption: string]: undefined | string | boolean }>
1500
+ & (T["options"] extends ParseArgsOptionsConfig ? {
1501
+ -readonly [LongOption in keyof T["options"]]: IfDefaultsFalse<
1502
+ T["options"][LongOption]["multiple"],
1503
+ undefined | Array<ExtractOptionValue<T, T["options"][LongOption]>>,
1504
+ undefined | ExtractOptionValue<T, T["options"][LongOption]>
1505
+ >;
1506
+ }
1507
+ : {});
1508
+
1509
+ type ParsedPositionals<T extends ParseArgsConfig> = IfDefaultsTrue<
1510
+ T["strict"],
1511
+ IfDefaultsFalse<T["allowPositionals"], string[], []>,
1512
+ IfDefaultsTrue<T["allowPositionals"], string[], []>
1513
+ >;
1514
+
1515
+ type PreciseTokenForOptions<
1516
+ K extends string,
1517
+ O extends ParseArgsOptionConfig,
1518
+ > = O["type"] extends "string" ? {
1519
+ kind: "option";
1520
+ index: number;
1521
+ name: K;
1522
+ rawName: string;
1523
+ value: string;
1524
+ inlineValue: boolean;
1525
+ }
1526
+ : O["type"] extends "boolean" ? {
1527
+ kind: "option";
1528
+ index: number;
1529
+ name: K;
1530
+ rawName: string;
1531
+ value: undefined;
1532
+ inlineValue: undefined;
1533
+ }
1534
+ : OptionToken & { name: K };
1535
+
1536
+ type TokenForOptions<
1537
+ T extends ParseArgsConfig,
1538
+ K extends keyof T["options"] = keyof T["options"],
1539
+ > = K extends unknown
1540
+ ? T["options"] extends ParseArgsOptionsConfig ? PreciseTokenForOptions<K & string, T["options"][K]>
1541
+ : OptionToken
1542
+ : never;
1543
+
1544
+ type ParsedOptionToken<T extends ParseArgsConfig> = IfDefaultsTrue<T["strict"], TokenForOptions<T>, OptionToken>;
1545
+
1546
+ type ParsedPositionalToken<T extends ParseArgsConfig> = IfDefaultsTrue<
1547
+ T["strict"],
1548
+ IfDefaultsFalse<T["allowPositionals"], { kind: "positional"; index: number; value: string }, never>,
1549
+ IfDefaultsTrue<T["allowPositionals"], { kind: "positional"; index: number; value: string }, never>
1550
+ >;
1551
+
1552
+ type ParsedTokens<T extends ParseArgsConfig> = Array<
1553
+ ParsedOptionToken<T> | ParsedPositionalToken<T> | { kind: "option-terminator"; index: number }
1554
+ >;
1555
+
1556
+ type PreciseParsedResults<T extends ParseArgsConfig> = IfDefaultsFalse<
1557
+ T["tokens"],
1558
+ {
1559
+ values: ParsedValues<T>;
1560
+ positionals: ParsedPositionals<T>;
1561
+ tokens: ParsedTokens<T>;
1562
+ },
1563
+ {
1564
+ values: ParsedValues<T>;
1565
+ positionals: ParsedPositionals<T>;
1566
+ }
1567
+ >;
1568
+
1569
+ type OptionToken =
1570
+ | { kind: "option"; index: number; name: string; rawName: string; value: string; inlineValue: boolean }
1571
+ | {
1572
+ kind: "option";
1573
+ index: number;
1574
+ name: string;
1575
+ rawName: string;
1576
+ value: undefined;
1577
+ inlineValue: undefined;
1578
+ };
1579
+
1580
+ type Token =
1581
+ | OptionToken
1582
+ | { kind: "positional"; index: number; value: string }
1583
+ | { kind: "option-terminator"; index: number };
1584
+
1585
+ // If ParseArgsConfig extends T, then the user passed config constructed elsewhere.
1586
+ // So we can't rely on the `"not definitely present" implies "definitely not present"` assumption mentioned above.
1587
+ type ParsedResults<T extends ParseArgsConfig> = ParseArgsConfig extends T ? {
1588
+ values: {
1589
+ [longOption: string]: undefined | string | boolean | Array<string | boolean>;
1590
+ };
1591
+ positionals: string[];
1592
+ tokens?: Token[];
1593
+ }
1594
+ : PreciseParsedResults<T>;
1595
+
1596
+ /**
1597
+ * An implementation of [the MIMEType class](https://bmeck.github.io/node-proposal-mime-api/).
1598
+ *
1599
+ * In accordance with browser conventions, all properties of `MIMEType` objects
1600
+ * are implemented as getters and setters on the class prototype, rather than as
1601
+ * data properties on the object itself.
1602
+ *
1603
+ * A MIME string is a structured string containing multiple meaningful
1604
+ * components. When parsed, a `MIMEType` object is returned containing
1605
+ * properties for each of these components.
1606
+ * @since v19.1.0, v18.13.0
1607
+ * @experimental
1608
+ */
1609
+ export class MIMEType {
1610
+ /**
1611
+ * Creates a new MIMEType object by parsing the input.
1612
+ *
1613
+ * A `TypeError` will be thrown if the `input` is not a valid MIME.
1614
+ * Note that an effort will be made to coerce the given values into strings.
1615
+ * @param input The input MIME to parse.
1616
+ */
1617
+ constructor(input: string | { toString: () => string });
1618
+
1619
+ /**
1620
+ * Gets and sets the type portion of the MIME.
1621
+ *
1622
+ * ```js
1623
+ * import { MIMEType } from 'node:util';
1624
+ *
1625
+ * const myMIME = new MIMEType('text/javascript');
1626
+ * console.log(myMIME.type);
1627
+ * // Prints: text
1628
+ * myMIME.type = 'application';
1629
+ * console.log(myMIME.type);
1630
+ * // Prints: application
1631
+ * console.log(String(myMIME));
1632
+ * // Prints: application/javascript
1633
+ * ```
1634
+ */
1635
+ type: string;
1636
+ /**
1637
+ * Gets and sets the subtype portion of the MIME.
1638
+ *
1639
+ * ```js
1640
+ * import { MIMEType } from 'node:util';
1641
+ *
1642
+ * const myMIME = new MIMEType('text/ecmascript');
1643
+ * console.log(myMIME.subtype);
1644
+ * // Prints: ecmascript
1645
+ * myMIME.subtype = 'javascript';
1646
+ * console.log(myMIME.subtype);
1647
+ * // Prints: javascript
1648
+ * console.log(String(myMIME));
1649
+ * // Prints: text/javascript
1650
+ * ```
1651
+ */
1652
+ subtype: string;
1653
+ /**
1654
+ * Gets the essence of the MIME. This property is read only.
1655
+ * Use `mime.type` or `mime.subtype` to alter the MIME.
1656
+ *
1657
+ * ```js
1658
+ * import { MIMEType } from 'node:util';
1659
+ *
1660
+ * const myMIME = new MIMEType('text/javascript;key=value');
1661
+ * console.log(myMIME.essence);
1662
+ * // Prints: text/javascript
1663
+ * myMIME.type = 'application';
1664
+ * console.log(myMIME.essence);
1665
+ * // Prints: application/javascript
1666
+ * console.log(String(myMIME));
1667
+ * // Prints: application/javascript;key=value
1668
+ * ```
1669
+ */
1670
+ readonly essence: string;
1671
+ /**
1672
+ * Gets the `MIMEParams` object representing the
1673
+ * parameters of the MIME. This property is read-only. See `MIMEParams` documentation for details.
1674
+ */
1675
+ readonly params: MIMEParams;
1676
+ /**
1677
+ * The `toString()` method on the `MIMEType` object returns the serialized MIME.
1678
+ *
1679
+ * Because of the need for standard compliance, this method does not allow users
1680
+ * to customize the serialization process of the MIME.
1681
+ */
1682
+ toString(): string;
1683
+ }
1684
+ /**
1685
+ * The `MIMEParams` API provides read and write access to the parameters of a `MIMEType`.
1686
+ * @since v19.1.0, v18.13.0
1687
+ */
1688
+ export class MIMEParams {
1689
+ /**
1690
+ * Remove all name-value pairs whose name is `name`.
1691
+ */
1692
+ delete(name: string): void;
1693
+ /**
1694
+ * Returns an iterator over each of the name-value pairs in the parameters.
1695
+ * Each item of the iterator is a JavaScript `Array`. The first item of the array
1696
+ * is the `name`, the second item of the array is the `value`.
1697
+ */
1698
+ entries(): IterableIterator<[name: string, value: string]>;
1699
+ /**
1700
+ * Returns the value of the first name-value pair whose name is `name`. If there
1701
+ * are no such pairs, `null` is returned.
1702
+ * @return or `null` if there is no name-value pair with the given `name`.
1703
+ */
1704
+ get(name: string): string | null;
1705
+ /**
1706
+ * Returns `true` if there is at least one name-value pair whose name is `name`.
1707
+ */
1708
+ has(name: string): boolean;
1709
+ /**
1710
+ * Returns an iterator over the names of each name-value pair.
1711
+ *
1712
+ * ```js
1713
+ * import { MIMEType } from 'node:util';
1714
+ *
1715
+ * const { params } = new MIMEType('text/plain;foo=0;bar=1');
1716
+ * for (const name of params.keys()) {
1717
+ * console.log(name);
1718
+ * }
1719
+ * // Prints:
1720
+ * // foo
1721
+ * // bar
1722
+ * ```
1723
+ */
1724
+ keys(): IterableIterator<string>;
1725
+ /**
1726
+ * Sets the value in the `MIMEParams` object associated with `name` to `value`. If there are any pre-existing name-value pairs whose names are `name`,
1727
+ * set the first such pair's value to `value`.
1728
+ *
1729
+ * ```js
1730
+ * import { MIMEType } from 'node:util';
1731
+ *
1732
+ * const { params } = new MIMEType('text/plain;foo=0;bar=1');
1733
+ * params.set('foo', 'def');
1734
+ * params.set('baz', 'xyz');
1735
+ * console.log(params.toString());
1736
+ * // Prints: foo=def;bar=1;baz=xyz
1737
+ * ```
1738
+ */
1739
+ set(name: string, value: string): void;
1740
+ /**
1741
+ * Returns an iterator over the values of each name-value pair.
1742
+ */
1743
+ values(): IterableIterator<string>;
1744
+ /**
1745
+ * Returns an iterator over each of the name-value pairs in the parameters.
1746
+ */
1747
+ [Symbol.iterator]: typeof MIMEParams.prototype.entries;
1748
+ }
1749
+ }
1750
+ declare module "util/types" {
1751
+ import { KeyObject, webcrypto } from "node:crypto";
1752
+ /**
1753
+ * Returns `true` if the value is a built-in [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) or
1754
+ * [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instance.
1755
+ *
1756
+ * See also `util.types.isArrayBuffer()` and `util.types.isSharedArrayBuffer()`.
1757
+ *
1758
+ * ```js
1759
+ * util.types.isAnyArrayBuffer(new ArrayBuffer()); // Returns true
1760
+ * util.types.isAnyArrayBuffer(new SharedArrayBuffer()); // Returns true
1761
+ * ```
1762
+ * @since v10.0.0
1763
+ */
1764
+ function isAnyArrayBuffer(object: unknown): object is ArrayBufferLike;
1765
+ /**
1766
+ * Returns `true` if the value is an `arguments` object.
1767
+ *
1768
+ * ```js
1769
+ * function foo() {
1770
+ * util.types.isArgumentsObject(arguments); // Returns true
1771
+ * }
1772
+ * ```
1773
+ * @since v10.0.0
1774
+ */
1775
+ function isArgumentsObject(object: unknown): object is IArguments;
1776
+ /**
1777
+ * Returns `true` if the value is a built-in [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) instance.
1778
+ * This does _not_ include [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instances. Usually, it is
1779
+ * desirable to test for both; See `util.types.isAnyArrayBuffer()` for that.
1780
+ *
1781
+ * ```js
1782
+ * util.types.isArrayBuffer(new ArrayBuffer()); // Returns true
1783
+ * util.types.isArrayBuffer(new SharedArrayBuffer()); // Returns false
1784
+ * ```
1785
+ * @since v10.0.0
1786
+ */
1787
+ function isArrayBuffer(object: unknown): object is ArrayBuffer;
1788
+ /**
1789
+ * 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
1790
+ * array objects or [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView). Equivalent to
1791
+ * [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView).
1792
+ *
1793
+ * ```js
1794
+ * util.types.isArrayBufferView(new Int8Array()); // true
1795
+ * util.types.isArrayBufferView(Buffer.from('hello world')); // true
1796
+ * util.types.isArrayBufferView(new DataView(new ArrayBuffer(16))); // true
1797
+ * util.types.isArrayBufferView(new ArrayBuffer()); // false
1798
+ * ```
1799
+ * @since v10.0.0
1800
+ */
1801
+ function isArrayBufferView(object: unknown): object is NodeJS.ArrayBufferView;
1802
+ /**
1803
+ * Returns `true` if the value is an [async function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function).
1804
+ * This only reports back what the JavaScript engine is seeing;
1805
+ * in particular, the return value may not match the original source code if
1806
+ * a transpilation tool was used.
1807
+ *
1808
+ * ```js
1809
+ * util.types.isAsyncFunction(function foo() {}); // Returns false
1810
+ * util.types.isAsyncFunction(async function foo() {}); // Returns true
1811
+ * ```
1812
+ * @since v10.0.0
1813
+ */
1814
+ function isAsyncFunction(object: unknown): boolean;
1815
+ /**
1816
+ * Returns `true` if the value is a `BigInt64Array` instance.
1817
+ *
1818
+ * ```js
1819
+ * util.types.isBigInt64Array(new BigInt64Array()); // Returns true
1820
+ * util.types.isBigInt64Array(new BigUint64Array()); // Returns false
1821
+ * ```
1822
+ * @since v10.0.0
1823
+ */
1824
+ function isBigInt64Array(value: unknown): value is BigInt64Array;
1825
+ /**
1826
+ * Returns `true` if the value is a `BigUint64Array` instance.
1827
+ *
1828
+ * ```js
1829
+ * util.types.isBigUint64Array(new BigInt64Array()); // Returns false
1830
+ * util.types.isBigUint64Array(new BigUint64Array()); // Returns true
1831
+ * ```
1832
+ * @since v10.0.0
1833
+ */
1834
+ function isBigUint64Array(value: unknown): value is BigUint64Array;
1835
+ /**
1836
+ * Returns `true` if the value is a boolean object, e.g. created
1837
+ * by `new Boolean()`.
1838
+ *
1839
+ * ```js
1840
+ * util.types.isBooleanObject(false); // Returns false
1841
+ * util.types.isBooleanObject(true); // Returns false
1842
+ * util.types.isBooleanObject(new Boolean(false)); // Returns true
1843
+ * util.types.isBooleanObject(new Boolean(true)); // Returns true
1844
+ * util.types.isBooleanObject(Boolean(false)); // Returns false
1845
+ * util.types.isBooleanObject(Boolean(true)); // Returns false
1846
+ * ```
1847
+ * @since v10.0.0
1848
+ */
1849
+ function isBooleanObject(object: unknown): object is Boolean;
1850
+ /**
1851
+ * Returns `true` if the value is any boxed primitive object, e.g. created
1852
+ * by `new Boolean()`, `new String()` or `Object(Symbol())`.
1853
+ *
1854
+ * For example:
1855
+ *
1856
+ * ```js
1857
+ * util.types.isBoxedPrimitive(false); // Returns false
1858
+ * util.types.isBoxedPrimitive(new Boolean(false)); // Returns true
1859
+ * util.types.isBoxedPrimitive(Symbol('foo')); // Returns false
1860
+ * util.types.isBoxedPrimitive(Object(Symbol('foo'))); // Returns true
1861
+ * util.types.isBoxedPrimitive(Object(BigInt(5))); // Returns true
1862
+ * ```
1863
+ * @since v10.11.0
1864
+ */
1865
+ function isBoxedPrimitive(object: unknown): object is String | Number | BigInt | Boolean | Symbol;
1866
+ /**
1867
+ * Returns `true` if the value is a built-in [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView) instance.
1868
+ *
1869
+ * ```js
1870
+ * const ab = new ArrayBuffer(20);
1871
+ * util.types.isDataView(new DataView(ab)); // Returns true
1872
+ * util.types.isDataView(new Float64Array()); // Returns false
1873
+ * ```
1874
+ *
1875
+ * See also [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView).
1876
+ * @since v10.0.0
1877
+ */
1878
+ function isDataView(object: unknown): object is DataView;
1879
+ /**
1880
+ * Returns `true` if the value is a built-in [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) instance.
1881
+ *
1882
+ * ```js
1883
+ * util.types.isDate(new Date()); // Returns true
1884
+ * ```
1885
+ * @since v10.0.0
1886
+ */
1887
+ function isDate(object: unknown): object is Date;
1888
+ /**
1889
+ * Returns `true` if the value is a native `External` value.
1890
+ *
1891
+ * A native `External` value is a special type of object that contains a
1892
+ * raw C++ pointer (`void*`) for access from native code, and has no other
1893
+ * properties. Such objects are created either by Node.js internals or native
1894
+ * 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.
1895
+ *
1896
+ * ```c
1897
+ * #include <js_native_api.h>
1898
+ * #include <stdlib.h>
1899
+ * napi_value result;
1900
+ * static napi_value MyNapi(napi_env env, napi_callback_info info) {
1901
+ * int* raw = (int*) malloc(1024);
1902
+ * napi_status status = napi_create_external(env, (void*) raw, NULL, NULL, &#x26;result);
1903
+ * if (status != napi_ok) {
1904
+ * napi_throw_error(env, NULL, "napi_create_external failed");
1905
+ * return NULL;
1906
+ * }
1907
+ * return result;
1908
+ * }
1909
+ * ...
1910
+ * DECLARE_NAPI_PROPERTY("myNapi", MyNapi)
1911
+ * ...
1912
+ * ```
1913
+ *
1914
+ * ```js
1915
+ * const native = require('napi_addon.node');
1916
+ * const data = native.myNapi();
1917
+ * util.types.isExternal(data); // returns true
1918
+ * util.types.isExternal(0); // returns false
1919
+ * util.types.isExternal(new String('foo')); // returns false
1920
+ * ```
1921
+ *
1922
+ * For further information on `napi_create_external`, refer to `napi_create_external()`.
1923
+ * @since v10.0.0
1924
+ */
1925
+ function isExternal(object: unknown): boolean;
1926
+ /**
1927
+ * Returns `true` if the value is a built-in [`Float32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array) instance.
1928
+ *
1929
+ * ```js
1930
+ * util.types.isFloat32Array(new ArrayBuffer()); // Returns false
1931
+ * util.types.isFloat32Array(new Float32Array()); // Returns true
1932
+ * util.types.isFloat32Array(new Float64Array()); // Returns false
1933
+ * ```
1934
+ * @since v10.0.0
1935
+ */
1936
+ function isFloat32Array(object: unknown): object is Float32Array;
1937
+ /**
1938
+ * Returns `true` if the value is a built-in [`Float64Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array) instance.
1939
+ *
1940
+ * ```js
1941
+ * util.types.isFloat64Array(new ArrayBuffer()); // Returns false
1942
+ * util.types.isFloat64Array(new Uint8Array()); // Returns false
1943
+ * util.types.isFloat64Array(new Float64Array()); // Returns true
1944
+ * ```
1945
+ * @since v10.0.0
1946
+ */
1947
+ function isFloat64Array(object: unknown): object is Float64Array;
1948
+ /**
1949
+ * Returns `true` if the value is a generator function.
1950
+ * This only reports back what the JavaScript engine is seeing;
1951
+ * in particular, the return value may not match the original source code if
1952
+ * a transpilation tool was used.
1953
+ *
1954
+ * ```js
1955
+ * util.types.isGeneratorFunction(function foo() {}); // Returns false
1956
+ * util.types.isGeneratorFunction(function* foo() {}); // Returns true
1957
+ * ```
1958
+ * @since v10.0.0
1959
+ */
1960
+ function isGeneratorFunction(object: unknown): object is GeneratorFunction;
1961
+ /**
1962
+ * Returns `true` if the value is a generator object as returned from a
1963
+ * built-in generator function.
1964
+ * This only reports back what the JavaScript engine is seeing;
1965
+ * in particular, the return value may not match the original source code if
1966
+ * a transpilation tool was used.
1967
+ *
1968
+ * ```js
1969
+ * function* foo() {}
1970
+ * const generator = foo();
1971
+ * util.types.isGeneratorObject(generator); // Returns true
1972
+ * ```
1973
+ * @since v10.0.0
1974
+ */
1975
+ function isGeneratorObject(object: unknown): object is Generator;
1976
+ /**
1977
+ * Returns `true` if the value is a built-in [`Int8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array) instance.
1978
+ *
1979
+ * ```js
1980
+ * util.types.isInt8Array(new ArrayBuffer()); // Returns false
1981
+ * util.types.isInt8Array(new Int8Array()); // Returns true
1982
+ * util.types.isInt8Array(new Float64Array()); // Returns false
1983
+ * ```
1984
+ * @since v10.0.0
1985
+ */
1986
+ function isInt8Array(object: unknown): object is Int8Array;
1987
+ /**
1988
+ * Returns `true` if the value is a built-in [`Int16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int16Array) instance.
1989
+ *
1990
+ * ```js
1991
+ * util.types.isInt16Array(new ArrayBuffer()); // Returns false
1992
+ * util.types.isInt16Array(new Int16Array()); // Returns true
1993
+ * util.types.isInt16Array(new Float64Array()); // Returns false
1994
+ * ```
1995
+ * @since v10.0.0
1996
+ */
1997
+ function isInt16Array(object: unknown): object is Int16Array;
1998
+ /**
1999
+ * Returns `true` if the value is a built-in [`Int32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array) instance.
2000
+ *
2001
+ * ```js
2002
+ * util.types.isInt32Array(new ArrayBuffer()); // Returns false
2003
+ * util.types.isInt32Array(new Int32Array()); // Returns true
2004
+ * util.types.isInt32Array(new Float64Array()); // Returns false
2005
+ * ```
2006
+ * @since v10.0.0
2007
+ */
2008
+ function isInt32Array(object: unknown): object is Int32Array;
2009
+ /**
2010
+ * Returns `true` if the value is a built-in [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) instance.
2011
+ *
2012
+ * ```js
2013
+ * util.types.isMap(new Map()); // Returns true
2014
+ * ```
2015
+ * @since v10.0.0
2016
+ */
2017
+ function isMap<T>(
2018
+ object: T | {},
2019
+ ): object is T extends ReadonlyMap<any, any> ? (unknown extends T ? never : ReadonlyMap<any, any>)
2020
+ : Map<unknown, unknown>;
2021
+ /**
2022
+ * 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.
2023
+ *
2024
+ * ```js
2025
+ * const map = new Map();
2026
+ * util.types.isMapIterator(map.keys()); // Returns true
2027
+ * util.types.isMapIterator(map.values()); // Returns true
2028
+ * util.types.isMapIterator(map.entries()); // Returns true
2029
+ * util.types.isMapIterator(map[Symbol.iterator]()); // Returns true
2030
+ * ```
2031
+ * @since v10.0.0
2032
+ */
2033
+ function isMapIterator(object: unknown): boolean;
2034
+ /**
2035
+ * Returns `true` if the value is an instance of a [Module Namespace Object](https://tc39.github.io/ecma262/#sec-module-namespace-exotic-objects).
2036
+ *
2037
+ * ```js
2038
+ * import * as ns from './a.js';
2039
+ *
2040
+ * util.types.isModuleNamespaceObject(ns); // Returns true
2041
+ * ```
2042
+ * @since v10.0.0
2043
+ */
2044
+ function isModuleNamespaceObject(value: unknown): boolean;
2045
+ /**
2046
+ * Returns `true` if the value was returned by the constructor of a [built-in `Error` type](https://tc39.es/ecma262/#sec-error-objects).
2047
+ *
2048
+ * ```js
2049
+ * console.log(util.types.isNativeError(new Error())); // true
2050
+ * console.log(util.types.isNativeError(new TypeError())); // true
2051
+ * console.log(util.types.isNativeError(new RangeError())); // true
2052
+ * ```
2053
+ *
2054
+ * Subclasses of the native error types are also native errors:
2055
+ *
2056
+ * ```js
2057
+ * class MyError extends Error {}
2058
+ * console.log(util.types.isNativeError(new MyError())); // true
2059
+ * ```
2060
+ *
2061
+ * A value being `instanceof` a native error class is not equivalent to `isNativeError()` returning `true` for that value. `isNativeError()` returns `true` for errors
2062
+ * which come from a different [realm](https://tc39.es/ecma262/#realm) while `instanceof Error` returns `false` for these errors:
2063
+ *
2064
+ * ```js
2065
+ * const vm = require('node:vm');
2066
+ * const context = vm.createContext({});
2067
+ * const myError = vm.runInContext('new Error()', context);
2068
+ * console.log(util.types.isNativeError(myError)); // true
2069
+ * console.log(myError instanceof Error); // false
2070
+ * ```
2071
+ *
2072
+ * Conversely, `isNativeError()` returns `false` for all objects which were not
2073
+ * returned by the constructor of a native error. That includes values
2074
+ * which are `instanceof` native errors:
2075
+ *
2076
+ * ```js
2077
+ * const myError = { __proto__: Error.prototype };
2078
+ * console.log(util.types.isNativeError(myError)); // false
2079
+ * console.log(myError instanceof Error); // true
2080
+ * ```
2081
+ * @since v10.0.0
2082
+ */
2083
+ function isNativeError(object: unknown): object is Error;
2084
+ /**
2085
+ * Returns `true` if the value is a number object, e.g. created
2086
+ * by `new Number()`.
2087
+ *
2088
+ * ```js
2089
+ * util.types.isNumberObject(0); // Returns false
2090
+ * util.types.isNumberObject(new Number(0)); // Returns true
2091
+ * ```
2092
+ * @since v10.0.0
2093
+ */
2094
+ function isNumberObject(object: unknown): object is Number;
2095
+ /**
2096
+ * Returns `true` if the value is a built-in [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).
2097
+ *
2098
+ * ```js
2099
+ * util.types.isPromise(Promise.resolve(42)); // Returns true
2100
+ * ```
2101
+ * @since v10.0.0
2102
+ */
2103
+ function isPromise(object: unknown): object is Promise<unknown>;
2104
+ /**
2105
+ * Returns `true` if the value is a [`Proxy`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) instance.
2106
+ *
2107
+ * ```js
2108
+ * const target = {};
2109
+ * const proxy = new Proxy(target, {});
2110
+ * util.types.isProxy(target); // Returns false
2111
+ * util.types.isProxy(proxy); // Returns true
2112
+ * ```
2113
+ * @since v10.0.0
2114
+ */
2115
+ function isProxy(object: unknown): boolean;
2116
+ /**
2117
+ * Returns `true` if the value is a regular expression object.
2118
+ *
2119
+ * ```js
2120
+ * util.types.isRegExp(/abc/); // Returns true
2121
+ * util.types.isRegExp(new RegExp('abc')); // Returns true
2122
+ * ```
2123
+ * @since v10.0.0
2124
+ */
2125
+ function isRegExp(object: unknown): object is RegExp;
2126
+ /**
2127
+ * Returns `true` if the value is a built-in [`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) instance.
2128
+ *
2129
+ * ```js
2130
+ * util.types.isSet(new Set()); // Returns true
2131
+ * ```
2132
+ * @since v10.0.0
2133
+ */
2134
+ function isSet<T>(
2135
+ object: T | {},
2136
+ ): object is T extends ReadonlySet<any> ? (unknown extends T ? never : ReadonlySet<any>) : Set<unknown>;
2137
+ /**
2138
+ * 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.
2139
+ *
2140
+ * ```js
2141
+ * const set = new Set();
2142
+ * util.types.isSetIterator(set.keys()); // Returns true
2143
+ * util.types.isSetIterator(set.values()); // Returns true
2144
+ * util.types.isSetIterator(set.entries()); // Returns true
2145
+ * util.types.isSetIterator(set[Symbol.iterator]()); // Returns true
2146
+ * ```
2147
+ * @since v10.0.0
2148
+ */
2149
+ function isSetIterator(object: unknown): boolean;
2150
+ /**
2151
+ * Returns `true` if the value is a built-in [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instance.
2152
+ * This does _not_ include [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) instances. Usually, it is
2153
+ * desirable to test for both; See `util.types.isAnyArrayBuffer()` for that.
2154
+ *
2155
+ * ```js
2156
+ * util.types.isSharedArrayBuffer(new ArrayBuffer()); // Returns false
2157
+ * util.types.isSharedArrayBuffer(new SharedArrayBuffer()); // Returns true
2158
+ * ```
2159
+ * @since v10.0.0
2160
+ */
2161
+ function isSharedArrayBuffer(object: unknown): object is SharedArrayBuffer;
2162
+ /**
2163
+ * Returns `true` if the value is a string object, e.g. created
2164
+ * by `new String()`.
2165
+ *
2166
+ * ```js
2167
+ * util.types.isStringObject('foo'); // Returns false
2168
+ * util.types.isStringObject(new String('foo')); // Returns true
2169
+ * ```
2170
+ * @since v10.0.0
2171
+ */
2172
+ function isStringObject(object: unknown): object is String;
2173
+ /**
2174
+ * Returns `true` if the value is a symbol object, created
2175
+ * by calling `Object()` on a `Symbol` primitive.
2176
+ *
2177
+ * ```js
2178
+ * const symbol = Symbol('foo');
2179
+ * util.types.isSymbolObject(symbol); // Returns false
2180
+ * util.types.isSymbolObject(Object(symbol)); // Returns true
2181
+ * ```
2182
+ * @since v10.0.0
2183
+ */
2184
+ function isSymbolObject(object: unknown): object is Symbol;
2185
+ /**
2186
+ * Returns `true` if the value is a built-in [`TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray) instance.
2187
+ *
2188
+ * ```js
2189
+ * util.types.isTypedArray(new ArrayBuffer()); // Returns false
2190
+ * util.types.isTypedArray(new Uint8Array()); // Returns true
2191
+ * util.types.isTypedArray(new Float64Array()); // Returns true
2192
+ * ```
2193
+ *
2194
+ * See also [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView).
2195
+ * @since v10.0.0
2196
+ */
2197
+ function isTypedArray(object: unknown): object is NodeJS.TypedArray;
2198
+ /**
2199
+ * Returns `true` if the value is a built-in [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) instance.
2200
+ *
2201
+ * ```js
2202
+ * util.types.isUint8Array(new ArrayBuffer()); // Returns false
2203
+ * util.types.isUint8Array(new Uint8Array()); // Returns true
2204
+ * util.types.isUint8Array(new Float64Array()); // Returns false
2205
+ * ```
2206
+ * @since v10.0.0
2207
+ */
2208
+ function isUint8Array(object: unknown): object is Uint8Array;
2209
+ /**
2210
+ * Returns `true` if the value is a built-in [`Uint8ClampedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray) instance.
2211
+ *
2212
+ * ```js
2213
+ * util.types.isUint8ClampedArray(new ArrayBuffer()); // Returns false
2214
+ * util.types.isUint8ClampedArray(new Uint8ClampedArray()); // Returns true
2215
+ * util.types.isUint8ClampedArray(new Float64Array()); // Returns false
2216
+ * ```
2217
+ * @since v10.0.0
2218
+ */
2219
+ function isUint8ClampedArray(object: unknown): object is Uint8ClampedArray;
2220
+ /**
2221
+ * Returns `true` if the value is a built-in [`Uint16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array) instance.
2222
+ *
2223
+ * ```js
2224
+ * util.types.isUint16Array(new ArrayBuffer()); // Returns false
2225
+ * util.types.isUint16Array(new Uint16Array()); // Returns true
2226
+ * util.types.isUint16Array(new Float64Array()); // Returns false
2227
+ * ```
2228
+ * @since v10.0.0
2229
+ */
2230
+ function isUint16Array(object: unknown): object is Uint16Array;
2231
+ /**
2232
+ * Returns `true` if the value is a built-in [`Uint32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint32Array) instance.
2233
+ *
2234
+ * ```js
2235
+ * util.types.isUint32Array(new ArrayBuffer()); // Returns false
2236
+ * util.types.isUint32Array(new Uint32Array()); // Returns true
2237
+ * util.types.isUint32Array(new Float64Array()); // Returns false
2238
+ * ```
2239
+ * @since v10.0.0
2240
+ */
2241
+ function isUint32Array(object: unknown): object is Uint32Array;
2242
+ /**
2243
+ * Returns `true` if the value is a built-in [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) instance.
2244
+ *
2245
+ * ```js
2246
+ * util.types.isWeakMap(new WeakMap()); // Returns true
2247
+ * ```
2248
+ * @since v10.0.0
2249
+ */
2250
+ function isWeakMap(object: unknown): object is WeakMap<object, unknown>;
2251
+ /**
2252
+ * Returns `true` if the value is a built-in [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) instance.
2253
+ *
2254
+ * ```js
2255
+ * util.types.isWeakSet(new WeakSet()); // Returns true
2256
+ * ```
2257
+ * @since v10.0.0
2258
+ */
2259
+ function isWeakSet(object: unknown): object is WeakSet<object>;
2260
+ /**
2261
+ * Returns `true` if `value` is a `KeyObject`, `false` otherwise.
2262
+ * @since v16.2.0
2263
+ */
2264
+ function isKeyObject(object: unknown): object is KeyObject;
2265
+ /**
2266
+ * Returns `true` if `value` is a `CryptoKey`, `false` otherwise.
2267
+ * @since v16.2.0
2268
+ */
2269
+ function isCryptoKey(object: unknown): object is webcrypto.CryptoKey;
2270
+ }
2271
+ declare module "node:util" {
2272
+ export * from "util";
2273
+ }
2274
+ declare module "node:util/types" {
2275
+ export * from "util/types";
2276
+ }