imran-dl 2.3.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of imran-dl might be problematic. Click here for more details.

Files changed (229) hide show
  1. package/.cache/nix/binary-cache-v6.sqlite +0 -0
  2. package/.cache/nix/binary-cache-v6.sqlite-journal +0 -0
  3. package/.cache/replit/__replit_disk_meta.json +1 -0
  4. package/.cache/replit/modules/nodejs-20:v32-20240401-269b323.res +1 -0
  5. package/.cache/replit/modules/replit:v8-20240329-787bc7d.res +1 -0
  6. package/.cache/replit/modules.stamp +0 -0
  7. package/.cache/replit/nix/env.json +1 -0
  8. package/.cache/typescript/5.0/node_modules/.package-lock.json +12 -0
  9. package/.cache/typescript/5.0/node_modules/types-registry/README.md +2 -0
  10. package/.cache/typescript/5.0/node_modules/types-registry/index.json +1 -0
  11. package/.cache/typescript/5.0/node_modules/types-registry/package.json +20 -0
  12. package/.cache/typescript/5.0/package.json +1 -0
  13. package/.cache/typescript/5.3/node_modules/.package-lock.json +114 -0
  14. package/.cache/typescript/5.3/node_modules/@types/cheerio/LICENSE +21 -0
  15. package/.cache/typescript/5.3/node_modules/@types/cheerio/README.md +15 -0
  16. package/.cache/typescript/5.3/node_modules/@types/cheerio/index.d.ts +318 -0
  17. package/.cache/typescript/5.3/node_modules/@types/cheerio/package.json +71 -0
  18. package/.cache/typescript/5.3/node_modules/@types/node/LICENSE +21 -0
  19. package/.cache/typescript/5.3/node_modules/@types/node/README.md +15 -0
  20. package/.cache/typescript/5.3/node_modules/@types/node/assert/strict.d.ts +8 -0
  21. package/.cache/typescript/5.3/node_modules/@types/node/assert.d.ts +996 -0
  22. package/.cache/typescript/5.3/node_modules/@types/node/async_hooks.d.ts +539 -0
  23. package/.cache/typescript/5.3/node_modules/@types/node/buffer.d.ts +2362 -0
  24. package/.cache/typescript/5.3/node_modules/@types/node/child_process.d.ts +1540 -0
  25. package/.cache/typescript/5.3/node_modules/@types/node/cluster.d.ts +432 -0
  26. package/.cache/typescript/5.3/node_modules/@types/node/console.d.ts +415 -0
  27. package/.cache/typescript/5.3/node_modules/@types/node/constants.d.ts +19 -0
  28. package/.cache/typescript/5.3/node_modules/@types/node/crypto.d.ts +4456 -0
  29. package/.cache/typescript/5.3/node_modules/@types/node/dgram.d.ts +586 -0
  30. package/.cache/typescript/5.3/node_modules/@types/node/diagnostics_channel.d.ts +191 -0
  31. package/.cache/typescript/5.3/node_modules/@types/node/dns/promises.d.ts +425 -0
  32. package/.cache/typescript/5.3/node_modules/@types/node/dns.d.ts +809 -0
  33. package/.cache/typescript/5.3/node_modules/@types/node/dom-events.d.ts +122 -0
  34. package/.cache/typescript/5.3/node_modules/@types/node/domain.d.ts +170 -0
  35. package/.cache/typescript/5.3/node_modules/@types/node/events.d.ts +879 -0
  36. package/.cache/typescript/5.3/node_modules/@types/node/fs/promises.d.ts +1239 -0
  37. package/.cache/typescript/5.3/node_modules/@types/node/fs.d.ts +4291 -0
  38. package/.cache/typescript/5.3/node_modules/@types/node/globals.d.ts +385 -0
  39. package/.cache/typescript/5.3/node_modules/@types/node/globals.global.d.ts +1 -0
  40. package/.cache/typescript/5.3/node_modules/@types/node/http.d.ts +1888 -0
  41. package/.cache/typescript/5.3/node_modules/@types/node/http2.d.ts +2382 -0
  42. package/.cache/typescript/5.3/node_modules/@types/node/https.d.ts +550 -0
  43. package/.cache/typescript/5.3/node_modules/@types/node/index.d.ts +88 -0
  44. package/.cache/typescript/5.3/node_modules/@types/node/inspector.d.ts +2747 -0
  45. package/.cache/typescript/5.3/node_modules/@types/node/module.d.ts +301 -0
  46. package/.cache/typescript/5.3/node_modules/@types/node/net.d.ts +949 -0
  47. package/.cache/typescript/5.3/node_modules/@types/node/os.d.ts +478 -0
  48. package/.cache/typescript/5.3/node_modules/@types/node/package.json +230 -0
  49. package/.cache/typescript/5.3/node_modules/@types/node/path.d.ts +191 -0
  50. package/.cache/typescript/5.3/node_modules/@types/node/perf_hooks.d.ts +639 -0
  51. package/.cache/typescript/5.3/node_modules/@types/node/process.d.ts +1539 -0
  52. package/.cache/typescript/5.3/node_modules/@types/node/punycode.d.ts +117 -0
  53. package/.cache/typescript/5.3/node_modules/@types/node/querystring.d.ts +141 -0
  54. package/.cache/typescript/5.3/node_modules/@types/node/readline/promises.d.ts +150 -0
  55. package/.cache/typescript/5.3/node_modules/@types/node/readline.d.ts +539 -0
  56. package/.cache/typescript/5.3/node_modules/@types/node/repl.d.ts +430 -0
  57. package/.cache/typescript/5.3/node_modules/@types/node/stream/consumers.d.ts +12 -0
  58. package/.cache/typescript/5.3/node_modules/@types/node/stream/promises.d.ts +83 -0
  59. package/.cache/typescript/5.3/node_modules/@types/node/stream/web.d.ts +350 -0
  60. package/.cache/typescript/5.3/node_modules/@types/node/stream.d.ts +1701 -0
  61. package/.cache/typescript/5.3/node_modules/@types/node/string_decoder.d.ts +67 -0
  62. package/.cache/typescript/5.3/node_modules/@types/node/test.d.ts +1382 -0
  63. package/.cache/typescript/5.3/node_modules/@types/node/timers/promises.d.ts +93 -0
  64. package/.cache/typescript/5.3/node_modules/@types/node/timers.d.ts +240 -0
  65. package/.cache/typescript/5.3/node_modules/@types/node/tls.d.ts +1210 -0
  66. package/.cache/typescript/5.3/node_modules/@types/node/trace_events.d.ts +182 -0
  67. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/assert/strict.d.ts +8 -0
  68. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/assert.d.ts +996 -0
  69. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/async_hooks.d.ts +539 -0
  70. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/buffer.d.ts +2362 -0
  71. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/child_process.d.ts +1540 -0
  72. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/cluster.d.ts +432 -0
  73. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/console.d.ts +415 -0
  74. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/constants.d.ts +19 -0
  75. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/crypto.d.ts +4455 -0
  76. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dgram.d.ts +586 -0
  77. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +191 -0
  78. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dns/promises.d.ts +425 -0
  79. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dns.d.ts +809 -0
  80. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dom-events.d.ts +122 -0
  81. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/domain.d.ts +170 -0
  82. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/events.d.ts +879 -0
  83. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/fs/promises.d.ts +1239 -0
  84. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/fs.d.ts +4291 -0
  85. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/globals.d.ts +385 -0
  86. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/globals.global.d.ts +1 -0
  87. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/http.d.ts +1888 -0
  88. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/http2.d.ts +2382 -0
  89. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/https.d.ts +550 -0
  90. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/index.d.ts +88 -0
  91. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/inspector.d.ts +2747 -0
  92. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/module.d.ts +301 -0
  93. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/net.d.ts +949 -0
  94. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/os.d.ts +478 -0
  95. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/path.d.ts +191 -0
  96. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/perf_hooks.d.ts +639 -0
  97. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/process.d.ts +1539 -0
  98. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/punycode.d.ts +117 -0
  99. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/querystring.d.ts +141 -0
  100. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/readline/promises.d.ts +150 -0
  101. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/readline.d.ts +539 -0
  102. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/repl.d.ts +430 -0
  103. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream/consumers.d.ts +12 -0
  104. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream/promises.d.ts +83 -0
  105. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream/web.d.ts +350 -0
  106. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream.d.ts +1701 -0
  107. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/string_decoder.d.ts +67 -0
  108. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/test.d.ts +1382 -0
  109. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/timers/promises.d.ts +93 -0
  110. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/timers.d.ts +240 -0
  111. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/tls.d.ts +1210 -0
  112. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/trace_events.d.ts +182 -0
  113. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/tty.d.ts +208 -0
  114. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/url.d.ts +927 -0
  115. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/util.d.ts +2183 -0
  116. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/v8.d.ts +635 -0
  117. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/vm.d.ts +903 -0
  118. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/wasi.d.ts +158 -0
  119. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/worker_threads.d.ts +691 -0
  120. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/zlib.d.ts +517 -0
  121. package/.cache/typescript/5.3/node_modules/@types/node/tty.d.ts +208 -0
  122. package/.cache/typescript/5.3/node_modules/@types/node/url.d.ts +927 -0
  123. package/.cache/typescript/5.3/node_modules/@types/node/util.d.ts +2183 -0
  124. package/.cache/typescript/5.3/node_modules/@types/node/v8.d.ts +635 -0
  125. package/.cache/typescript/5.3/node_modules/@types/node/vm.d.ts +903 -0
  126. package/.cache/typescript/5.3/node_modules/@types/node/wasi.d.ts +158 -0
  127. package/.cache/typescript/5.3/node_modules/@types/node/worker_threads.d.ts +691 -0
  128. package/.cache/typescript/5.3/node_modules/@types/node/zlib.d.ts +517 -0
  129. package/.cache/typescript/5.3/node_modules/@types/node-fetch/LICENSE +21 -0
  130. package/.cache/typescript/5.3/node_modules/@types/node-fetch/README.md +15 -0
  131. package/.cache/typescript/5.3/node_modules/@types/node-fetch/externals.d.ts +32 -0
  132. package/.cache/typescript/5.3/node_modules/@types/node-fetch/index.d.ts +214 -0
  133. package/.cache/typescript/5.3/node_modules/@types/node-fetch/package.json +83 -0
  134. package/.cache/typescript/5.3/node_modules/@types/qs/LICENSE +21 -0
  135. package/.cache/typescript/5.3/node_modules/@types/qs/README.md +15 -0
  136. package/.cache/typescript/5.3/node_modules/@types/qs/index.d.ts +79 -0
  137. package/.cache/typescript/5.3/node_modules/@types/qs/package.json +65 -0
  138. package/.cache/typescript/5.3/node_modules/asynckit/LICENSE +21 -0
  139. package/.cache/typescript/5.3/node_modules/asynckit/README.md +233 -0
  140. package/.cache/typescript/5.3/node_modules/asynckit/bench.js +76 -0
  141. package/.cache/typescript/5.3/node_modules/asynckit/index.js +6 -0
  142. package/.cache/typescript/5.3/node_modules/asynckit/lib/abort.js +29 -0
  143. package/.cache/typescript/5.3/node_modules/asynckit/lib/async.js +34 -0
  144. package/.cache/typescript/5.3/node_modules/asynckit/lib/defer.js +26 -0
  145. package/.cache/typescript/5.3/node_modules/asynckit/lib/iterate.js +75 -0
  146. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  147. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_parallel.js +25 -0
  148. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_serial.js +25 -0
  149. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  150. package/.cache/typescript/5.3/node_modules/asynckit/lib/state.js +37 -0
  151. package/.cache/typescript/5.3/node_modules/asynckit/lib/streamify.js +141 -0
  152. package/.cache/typescript/5.3/node_modules/asynckit/lib/terminator.js +29 -0
  153. package/.cache/typescript/5.3/node_modules/asynckit/package.json +63 -0
  154. package/.cache/typescript/5.3/node_modules/asynckit/parallel.js +43 -0
  155. package/.cache/typescript/5.3/node_modules/asynckit/serial.js +17 -0
  156. package/.cache/typescript/5.3/node_modules/asynckit/serialOrdered.js +75 -0
  157. package/.cache/typescript/5.3/node_modules/asynckit/stream.js +21 -0
  158. package/.cache/typescript/5.3/node_modules/combined-stream/License +19 -0
  159. package/.cache/typescript/5.3/node_modules/combined-stream/Readme.md +138 -0
  160. package/.cache/typescript/5.3/node_modules/combined-stream/lib/combined_stream.js +208 -0
  161. package/.cache/typescript/5.3/node_modules/combined-stream/package.json +25 -0
  162. package/.cache/typescript/5.3/node_modules/combined-stream/yarn.lock +17 -0
  163. package/.cache/typescript/5.3/node_modules/delayed-stream/License +19 -0
  164. package/.cache/typescript/5.3/node_modules/delayed-stream/Makefile +7 -0
  165. package/.cache/typescript/5.3/node_modules/delayed-stream/Readme.md +141 -0
  166. package/.cache/typescript/5.3/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  167. package/.cache/typescript/5.3/node_modules/delayed-stream/package.json +27 -0
  168. package/.cache/typescript/5.3/node_modules/form-data/License +19 -0
  169. package/.cache/typescript/5.3/node_modules/form-data/README.md.bak +358 -0
  170. package/.cache/typescript/5.3/node_modules/form-data/Readme.md +358 -0
  171. package/.cache/typescript/5.3/node_modules/form-data/index.d.ts +62 -0
  172. package/.cache/typescript/5.3/node_modules/form-data/lib/browser.js +2 -0
  173. package/.cache/typescript/5.3/node_modules/form-data/lib/form_data.js +501 -0
  174. package/.cache/typescript/5.3/node_modules/form-data/lib/populate.js +10 -0
  175. package/.cache/typescript/5.3/node_modules/form-data/package.json +68 -0
  176. package/.cache/typescript/5.3/node_modules/mime-db/HISTORY.md +507 -0
  177. package/.cache/typescript/5.3/node_modules/mime-db/LICENSE +23 -0
  178. package/.cache/typescript/5.3/node_modules/mime-db/README.md +100 -0
  179. package/.cache/typescript/5.3/node_modules/mime-db/db.json +8519 -0
  180. package/.cache/typescript/5.3/node_modules/mime-db/index.js +12 -0
  181. package/.cache/typescript/5.3/node_modules/mime-db/package.json +60 -0
  182. package/.cache/typescript/5.3/node_modules/mime-types/HISTORY.md +397 -0
  183. package/.cache/typescript/5.3/node_modules/mime-types/LICENSE +23 -0
  184. package/.cache/typescript/5.3/node_modules/mime-types/README.md +113 -0
  185. package/.cache/typescript/5.3/node_modules/mime-types/index.js +188 -0
  186. package/.cache/typescript/5.3/node_modules/mime-types/package.json +44 -0
  187. package/.cache/typescript/5.3/node_modules/types-registry/README.md +2 -0
  188. package/.cache/typescript/5.3/node_modules/types-registry/index.json +1 -0
  189. package/.cache/typescript/5.3/node_modules/types-registry/package.json +20 -0
  190. package/.cache/typescript/5.3/node_modules/undici-types/README.md +6 -0
  191. package/.cache/typescript/5.3/node_modules/undici-types/agent.d.ts +31 -0
  192. package/.cache/typescript/5.3/node_modules/undici-types/api.d.ts +43 -0
  193. package/.cache/typescript/5.3/node_modules/undici-types/balanced-pool.d.ts +18 -0
  194. package/.cache/typescript/5.3/node_modules/undici-types/cache.d.ts +36 -0
  195. package/.cache/typescript/5.3/node_modules/undici-types/client.d.ts +97 -0
  196. package/.cache/typescript/5.3/node_modules/undici-types/connector.d.ts +34 -0
  197. package/.cache/typescript/5.3/node_modules/undici-types/content-type.d.ts +21 -0
  198. package/.cache/typescript/5.3/node_modules/undici-types/cookies.d.ts +28 -0
  199. package/.cache/typescript/5.3/node_modules/undici-types/diagnostics-channel.d.ts +67 -0
  200. package/.cache/typescript/5.3/node_modules/undici-types/dispatcher.d.ts +241 -0
  201. package/.cache/typescript/5.3/node_modules/undici-types/errors.d.ts +128 -0
  202. package/.cache/typescript/5.3/node_modules/undici-types/fetch.d.ts +209 -0
  203. package/.cache/typescript/5.3/node_modules/undici-types/file.d.ts +39 -0
  204. package/.cache/typescript/5.3/node_modules/undici-types/filereader.d.ts +54 -0
  205. package/.cache/typescript/5.3/node_modules/undici-types/formdata.d.ts +108 -0
  206. package/.cache/typescript/5.3/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  207. package/.cache/typescript/5.3/node_modules/undici-types/global-origin.d.ts +7 -0
  208. package/.cache/typescript/5.3/node_modules/undici-types/handlers.d.ts +9 -0
  209. package/.cache/typescript/5.3/node_modules/undici-types/header.d.ts +4 -0
  210. package/.cache/typescript/5.3/node_modules/undici-types/index.d.ts +63 -0
  211. package/.cache/typescript/5.3/node_modules/undici-types/interceptors.d.ts +5 -0
  212. package/.cache/typescript/5.3/node_modules/undici-types/mock-agent.d.ts +50 -0
  213. package/.cache/typescript/5.3/node_modules/undici-types/mock-client.d.ts +25 -0
  214. package/.cache/typescript/5.3/node_modules/undici-types/mock-errors.d.ts +12 -0
  215. package/.cache/typescript/5.3/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  216. package/.cache/typescript/5.3/node_modules/undici-types/mock-pool.d.ts +25 -0
  217. package/.cache/typescript/5.3/node_modules/undici-types/package.json +55 -0
  218. package/.cache/typescript/5.3/node_modules/undici-types/patch.d.ts +71 -0
  219. package/.cache/typescript/5.3/node_modules/undici-types/pool-stats.d.ts +19 -0
  220. package/.cache/typescript/5.3/node_modules/undici-types/pool.d.ts +28 -0
  221. package/.cache/typescript/5.3/node_modules/undici-types/proxy-agent.d.ts +30 -0
  222. package/.cache/typescript/5.3/node_modules/undici-types/readable.d.ts +61 -0
  223. package/.cache/typescript/5.3/node_modules/undici-types/webidl.d.ts +220 -0
  224. package/.cache/typescript/5.3/node_modules/undici-types/websocket.d.ts +131 -0
  225. package/.cache/typescript/5.3/package.json +1 -0
  226. package/IMRAN/module.js +1 -0
  227. package/README.md +64 -0
  228. package/index.js +13 -0
  229. package/package.json +48 -0
@@ -0,0 +1,1239 @@
1
+ /**
2
+ * The `fs/promises` API provides asynchronous file system methods that return
3
+ * promises.
4
+ *
5
+ * The promise APIs use the underlying Node.js threadpool to perform file
6
+ * system operations off the event loop thread. These operations are not
7
+ * synchronized or threadsafe. Care must be taken when performing multiple
8
+ * concurrent modifications on the same file or data corruption may occur.
9
+ * @since v10.0.0
10
+ */
11
+ declare module "fs/promises" {
12
+ import { Abortable } from "node:events";
13
+ import { Stream } from "node:stream";
14
+ import { ReadableStream } from "node:stream/web";
15
+ import {
16
+ BigIntStats,
17
+ BigIntStatsFs,
18
+ BufferEncodingOption,
19
+ constants as fsConstants,
20
+ CopyOptions,
21
+ Dir,
22
+ Dirent,
23
+ MakeDirectoryOptions,
24
+ Mode,
25
+ ObjectEncodingOptions,
26
+ OpenDirOptions,
27
+ OpenMode,
28
+ PathLike,
29
+ ReadStream,
30
+ ReadVResult,
31
+ RmDirOptions,
32
+ RmOptions,
33
+ StatFsOptions,
34
+ StatOptions,
35
+ Stats,
36
+ StatsFs,
37
+ TimeLike,
38
+ WatchEventType,
39
+ WatchOptions,
40
+ WriteStream,
41
+ WriteVResult,
42
+ } from "node:fs";
43
+ import { Interface as ReadlineInterface } from "node:readline";
44
+ interface FileChangeInfo<T extends string | Buffer> {
45
+ eventType: WatchEventType;
46
+ filename: T | null;
47
+ }
48
+ interface FlagAndOpenMode {
49
+ mode?: Mode | undefined;
50
+ flag?: OpenMode | undefined;
51
+ }
52
+ interface FileReadResult<T extends NodeJS.ArrayBufferView> {
53
+ bytesRead: number;
54
+ buffer: T;
55
+ }
56
+ interface FileReadOptions<T extends NodeJS.ArrayBufferView = Buffer> {
57
+ /**
58
+ * @default `Buffer.alloc(0xffff)`
59
+ */
60
+ buffer?: T;
61
+ /**
62
+ * @default 0
63
+ */
64
+ offset?: number | null;
65
+ /**
66
+ * @default `buffer.byteLength`
67
+ */
68
+ length?: number | null;
69
+ position?: number | null;
70
+ }
71
+ interface CreateReadStreamOptions {
72
+ encoding?: BufferEncoding | null | undefined;
73
+ autoClose?: boolean | undefined;
74
+ emitClose?: boolean | undefined;
75
+ start?: number | undefined;
76
+ end?: number | undefined;
77
+ highWaterMark?: number | undefined;
78
+ }
79
+ interface CreateWriteStreamOptions {
80
+ encoding?: BufferEncoding | null | undefined;
81
+ autoClose?: boolean | undefined;
82
+ emitClose?: boolean | undefined;
83
+ start?: number | undefined;
84
+ highWaterMark?: number | undefined;
85
+ flush?: boolean | undefined;
86
+ }
87
+ interface ReadableWebStreamOptions {
88
+ /**
89
+ * Whether to open a normal or a `'bytes'` stream.
90
+ * @since v20.0.0
91
+ */
92
+ type?: "bytes" | undefined;
93
+ }
94
+ // TODO: Add `EventEmitter` close
95
+ interface FileHandle {
96
+ /**
97
+ * The numeric file descriptor managed by the {FileHandle} object.
98
+ * @since v10.0.0
99
+ */
100
+ readonly fd: number;
101
+ /**
102
+ * Alias of `filehandle.writeFile()`.
103
+ *
104
+ * When operating on file handles, the mode cannot be changed from what it was set
105
+ * to with `fsPromises.open()`. Therefore, this is equivalent to `filehandle.writeFile()`.
106
+ * @since v10.0.0
107
+ * @return Fulfills with `undefined` upon success.
108
+ */
109
+ appendFile(
110
+ data: string | Uint8Array,
111
+ options?:
112
+ | (ObjectEncodingOptions & FlagAndOpenMode & { flush?: boolean | undefined })
113
+ | BufferEncoding
114
+ | null,
115
+ ): Promise<void>;
116
+ /**
117
+ * Changes the ownership of the file. A wrapper for [`chown(2)`](http://man7.org/linux/man-pages/man2/chown.2.html).
118
+ * @since v10.0.0
119
+ * @param uid The file's new owner's user id.
120
+ * @param gid The file's new group's group id.
121
+ * @return Fulfills with `undefined` upon success.
122
+ */
123
+ chown(uid: number, gid: number): Promise<void>;
124
+ /**
125
+ * Modifies the permissions on the file. See [`chmod(2)`](http://man7.org/linux/man-pages/man2/chmod.2.html).
126
+ * @since v10.0.0
127
+ * @param mode the file mode bit mask.
128
+ * @return Fulfills with `undefined` upon success.
129
+ */
130
+ chmod(mode: Mode): Promise<void>;
131
+ /**
132
+ * Unlike the 16 KiB default `highWaterMark` for a `stream.Readable`, the stream
133
+ * returned by this method has a default `highWaterMark` of 64 KiB.
134
+ *
135
+ * `options` can include `start` and `end` values to read a range of bytes from
136
+ * the file instead of the entire file. Both `start` and `end` are inclusive and
137
+ * start counting at 0, allowed values are in the
138
+ * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. If `start` is
139
+ * omitted or `undefined`, `filehandle.createReadStream()` reads sequentially from
140
+ * the current file position. The `encoding` can be any one of those accepted by `Buffer`.
141
+ *
142
+ * If the `FileHandle` points to a character device that only supports blocking
143
+ * reads (such as keyboard or sound card), read operations do not finish until data
144
+ * is available. This can prevent the process from exiting and the stream from
145
+ * closing naturally.
146
+ *
147
+ * By default, the stream will emit a `'close'` event after it has been
148
+ * destroyed. Set the `emitClose` option to `false` to change this behavior.
149
+ *
150
+ * ```js
151
+ * import { open } from 'node:fs/promises';
152
+ *
153
+ * const fd = await open('/dev/input/event0');
154
+ * // Create a stream from some character device.
155
+ * const stream = fd.createReadStream();
156
+ * setTimeout(() => {
157
+ * stream.close(); // This may not close the stream.
158
+ * // Artificially marking end-of-stream, as if the underlying resource had
159
+ * // indicated end-of-file by itself, allows the stream to close.
160
+ * // This does not cancel pending read operations, and if there is such an
161
+ * // operation, the process may still not be able to exit successfully
162
+ * // until it finishes.
163
+ * stream.push(null);
164
+ * stream.read(0);
165
+ * }, 100);
166
+ * ```
167
+ *
168
+ * If `autoClose` is false, then the file descriptor won't be closed, even if
169
+ * there's an error. It is the application's responsibility to close it and make
170
+ * sure there's no file descriptor leak. If `autoClose` is set to true (default
171
+ * behavior), on `'error'` or `'end'` the file descriptor will be closed
172
+ * automatically.
173
+ *
174
+ * An example to read the last 10 bytes of a file which is 100 bytes long:
175
+ *
176
+ * ```js
177
+ * import { open } from 'node:fs/promises';
178
+ *
179
+ * const fd = await open('sample.txt');
180
+ * fd.createReadStream({ start: 90, end: 99 });
181
+ * ```
182
+ * @since v16.11.0
183
+ */
184
+ createReadStream(options?: CreateReadStreamOptions): ReadStream;
185
+ /**
186
+ * `options` may also include a `start` option to allow writing data at some
187
+ * position past the beginning of the file, allowed values are in the
188
+ * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. Modifying a file rather than
189
+ * replacing it may require the `flags` `open` option to be set to `r+` rather than
190
+ * the default `r`. The `encoding` can be any one of those accepted by `Buffer`.
191
+ *
192
+ * If `autoClose` is set to true (default behavior) on `'error'` or `'finish'`the file descriptor will be closed automatically. If `autoClose` is false,
193
+ * then the file descriptor won't be closed, even if there's an error.
194
+ * It is the application's responsibility to close it and make sure there's no
195
+ * file descriptor leak.
196
+ *
197
+ * By default, the stream will emit a `'close'` event after it has been
198
+ * destroyed. Set the `emitClose` option to `false` to change this behavior.
199
+ * @since v16.11.0
200
+ */
201
+ createWriteStream(options?: CreateWriteStreamOptions): WriteStream;
202
+ /**
203
+ * Forces all currently queued I/O operations associated with the file to the
204
+ * operating system's synchronized I/O completion state. Refer to the POSIX [`fdatasync(2)`](http://man7.org/linux/man-pages/man2/fdatasync.2.html) documentation for details.
205
+ *
206
+ * Unlike `filehandle.sync` this method does not flush modified metadata.
207
+ * @since v10.0.0
208
+ * @return Fulfills with `undefined` upon success.
209
+ */
210
+ datasync(): Promise<void>;
211
+ /**
212
+ * Request that all data for the open file descriptor is flushed to the storage
213
+ * device. The specific implementation is operating system and device specific.
214
+ * Refer to the POSIX [`fsync(2)`](http://man7.org/linux/man-pages/man2/fsync.2.html) documentation for more detail.
215
+ * @since v10.0.0
216
+ * @return Fulfills with `undefined` upon success.
217
+ */
218
+ sync(): Promise<void>;
219
+ /**
220
+ * Reads data from the file and stores that in the given buffer.
221
+ *
222
+ * If the file is not modified concurrently, the end-of-file is reached when the
223
+ * number of bytes read is zero.
224
+ * @since v10.0.0
225
+ * @param buffer A buffer that will be filled with the file data read.
226
+ * @param offset The location in the buffer at which to start filling.
227
+ * @param length The number of bytes to read.
228
+ * @param position The location where to begin reading data from the file. If `null`, data will be read from the current file position, and the position will be updated. If `position` is an
229
+ * integer, the current file position will remain unchanged.
230
+ * @return Fulfills upon success with an object with two properties:
231
+ */
232
+ read<T extends NodeJS.ArrayBufferView>(
233
+ buffer: T,
234
+ offset?: number | null,
235
+ length?: number | null,
236
+ position?: number | null,
237
+ ): Promise<FileReadResult<T>>;
238
+ read<T extends NodeJS.ArrayBufferView = Buffer>(options?: FileReadOptions<T>): Promise<FileReadResult<T>>;
239
+ /**
240
+ * Returns a `ReadableStream` that may be used to read the files data.
241
+ *
242
+ * An error will be thrown if this method is called more than once or is called
243
+ * after the `FileHandle` is closed or closing.
244
+ *
245
+ * ```js
246
+ * import {
247
+ * open,
248
+ * } from 'node:fs/promises';
249
+ *
250
+ * const file = await open('./some/file/to/read');
251
+ *
252
+ * for await (const chunk of file.readableWebStream())
253
+ * console.log(chunk);
254
+ *
255
+ * await file.close();
256
+ * ```
257
+ *
258
+ * While the `ReadableStream` will read the file to completion, it will not
259
+ * close the `FileHandle` automatically. User code must still call the`fileHandle.close()` method.
260
+ * @since v17.0.0
261
+ * @experimental
262
+ */
263
+ readableWebStream(options?: ReadableWebStreamOptions): ReadableStream;
264
+ /**
265
+ * Asynchronously reads the entire contents of a file.
266
+ *
267
+ * If `options` is a string, then it specifies the `encoding`.
268
+ *
269
+ * The `FileHandle` has to support reading.
270
+ *
271
+ * If one or more `filehandle.read()` calls are made on a file handle and then a`filehandle.readFile()` call is made, the data will be read from the current
272
+ * position till the end of the file. It doesn't always read from the beginning
273
+ * of the file.
274
+ * @since v10.0.0
275
+ * @return Fulfills upon a successful read with the contents of the file. If no encoding is specified (using `options.encoding`), the data is returned as a {Buffer} object. Otherwise, the
276
+ * data will be a string.
277
+ */
278
+ readFile(
279
+ options?: {
280
+ encoding?: null | undefined;
281
+ flag?: OpenMode | undefined;
282
+ } | null,
283
+ ): Promise<Buffer>;
284
+ /**
285
+ * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically.
286
+ * The `FileHandle` must have been opened for reading.
287
+ * @param options An object that may contain an optional flag.
288
+ * If a flag is not provided, it defaults to `'r'`.
289
+ */
290
+ readFile(
291
+ options:
292
+ | {
293
+ encoding: BufferEncoding;
294
+ flag?: OpenMode | undefined;
295
+ }
296
+ | BufferEncoding,
297
+ ): Promise<string>;
298
+ /**
299
+ * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically.
300
+ * The `FileHandle` must have been opened for reading.
301
+ * @param options An object that may contain an optional flag.
302
+ * If a flag is not provided, it defaults to `'r'`.
303
+ */
304
+ readFile(
305
+ options?:
306
+ | (ObjectEncodingOptions & {
307
+ flag?: OpenMode | undefined;
308
+ })
309
+ | BufferEncoding
310
+ | null,
311
+ ): Promise<string | Buffer>;
312
+ /**
313
+ * Convenience method to create a `readline` interface and stream over the file.
314
+ * See `filehandle.createReadStream()` for the options.
315
+ *
316
+ * ```js
317
+ * import { open } from 'node:fs/promises';
318
+ *
319
+ * const file = await open('./some/file/to/read');
320
+ *
321
+ * for await (const line of file.readLines()) {
322
+ * console.log(line);
323
+ * }
324
+ * ```
325
+ * @since v18.11.0
326
+ */
327
+ readLines(options?: CreateReadStreamOptions): ReadlineInterface;
328
+ /**
329
+ * @since v10.0.0
330
+ * @return Fulfills with an {fs.Stats} for the file.
331
+ */
332
+ stat(
333
+ opts?: StatOptions & {
334
+ bigint?: false | undefined;
335
+ },
336
+ ): Promise<Stats>;
337
+ stat(
338
+ opts: StatOptions & {
339
+ bigint: true;
340
+ },
341
+ ): Promise<BigIntStats>;
342
+ stat(opts?: StatOptions): Promise<Stats | BigIntStats>;
343
+ /**
344
+ * Truncates the file.
345
+ *
346
+ * If the file was larger than `len` bytes, only the first `len` bytes will be
347
+ * retained in the file.
348
+ *
349
+ * The following example retains only the first four bytes of the file:
350
+ *
351
+ * ```js
352
+ * import { open } from 'node:fs/promises';
353
+ *
354
+ * let filehandle = null;
355
+ * try {
356
+ * filehandle = await open('temp.txt', 'r+');
357
+ * await filehandle.truncate(4);
358
+ * } finally {
359
+ * await filehandle?.close();
360
+ * }
361
+ * ```
362
+ *
363
+ * If the file previously was shorter than `len` bytes, it is extended, and the
364
+ * extended part is filled with null bytes (`'\0'`):
365
+ *
366
+ * If `len` is negative then `0` will be used.
367
+ * @since v10.0.0
368
+ * @param [len=0]
369
+ * @return Fulfills with `undefined` upon success.
370
+ */
371
+ truncate(len?: number): Promise<void>;
372
+ /**
373
+ * Change the file system timestamps of the object referenced by the `FileHandle` then fulfills the promise with no arguments upon success.
374
+ * @since v10.0.0
375
+ */
376
+ utimes(atime: TimeLike, mtime: TimeLike): Promise<void>;
377
+ /**
378
+ * Asynchronously writes data to a file, replacing the file if it already exists.`data` can be a string, a buffer, an
379
+ * [AsyncIterable](https://tc39.github.io/ecma262/#sec-asynciterable-interface), or an
380
+ * [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol) object.
381
+ * The promise is fulfilled with no arguments upon success.
382
+ *
383
+ * If `options` is a string, then it specifies the `encoding`.
384
+ *
385
+ * The `FileHandle` has to support writing.
386
+ *
387
+ * It is unsafe to use `filehandle.writeFile()` multiple times on the same file
388
+ * without waiting for the promise to be fulfilled (or rejected).
389
+ *
390
+ * If one or more `filehandle.write()` calls are made on a file handle and then a`filehandle.writeFile()` call is made, the data will be written from the
391
+ * current position till the end of the file. It doesn't always write from the
392
+ * beginning of the file.
393
+ * @since v10.0.0
394
+ */
395
+ writeFile(
396
+ data: string | Uint8Array,
397
+ options?:
398
+ | (ObjectEncodingOptions & FlagAndOpenMode & Abortable & { flush?: boolean | undefined })
399
+ | BufferEncoding
400
+ | null,
401
+ ): Promise<void>;
402
+ /**
403
+ * Write `buffer` to the file.
404
+ *
405
+ * The promise is fulfilled with an object containing two properties:
406
+ *
407
+ * It is unsafe to use `filehandle.write()` multiple times on the same file
408
+ * without waiting for the promise to be fulfilled (or rejected). For this
409
+ * scenario, use `filehandle.createWriteStream()`.
410
+ *
411
+ * On Linux, positional writes do not work when the file is opened in append mode.
412
+ * The kernel ignores the position argument and always appends the data to
413
+ * the end of the file.
414
+ * @since v10.0.0
415
+ * @param offset The start position from within `buffer` where the data to write begins.
416
+ * @param [length=buffer.byteLength - offset] The number of bytes from `buffer` to write.
417
+ * @param [position='null'] The offset from the beginning of the file where the data from `buffer` should be written. If `position` is not a `number`, the data will be written at the current
418
+ * position. See the POSIX pwrite(2) documentation for more detail.
419
+ */
420
+ write<TBuffer extends Uint8Array>(
421
+ buffer: TBuffer,
422
+ offset?: number | null,
423
+ length?: number | null,
424
+ position?: number | null,
425
+ ): Promise<{
426
+ bytesWritten: number;
427
+ buffer: TBuffer;
428
+ }>;
429
+ write(
430
+ data: string,
431
+ position?: number | null,
432
+ encoding?: BufferEncoding | null,
433
+ ): Promise<{
434
+ bytesWritten: number;
435
+ buffer: string;
436
+ }>;
437
+ /**
438
+ * Write an array of [ArrayBufferView](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView) s to the file.
439
+ *
440
+ * The promise is fulfilled with an object containing a two properties:
441
+ *
442
+ * It is unsafe to call `writev()` multiple times on the same file without waiting
443
+ * for the promise to be fulfilled (or rejected).
444
+ *
445
+ * On Linux, positional writes don't work when the file is opened in append mode.
446
+ * The kernel ignores the position argument and always appends the data to
447
+ * the end of the file.
448
+ * @since v12.9.0
449
+ * @param [position='null'] The offset from the beginning of the file where the data from `buffers` should be written. If `position` is not a `number`, the data will be written at the current
450
+ * position.
451
+ */
452
+ writev(buffers: readonly NodeJS.ArrayBufferView[], position?: number): Promise<WriteVResult>;
453
+ /**
454
+ * Read from a file and write to an array of [ArrayBufferView](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView) s
455
+ * @since v13.13.0, v12.17.0
456
+ * @param [position='null'] The offset from the beginning of the file where the data should be read from. If `position` is not a `number`, the data will be read from the current position.
457
+ * @return Fulfills upon success an object containing two properties:
458
+ */
459
+ readv(buffers: readonly NodeJS.ArrayBufferView[], position?: number): Promise<ReadVResult>;
460
+ /**
461
+ * Closes the file handle after waiting for any pending operation on the handle to
462
+ * complete.
463
+ *
464
+ * ```js
465
+ * import { open } from 'node:fs/promises';
466
+ *
467
+ * let filehandle;
468
+ * try {
469
+ * filehandle = await open('thefile.txt', 'r');
470
+ * } finally {
471
+ * await filehandle?.close();
472
+ * }
473
+ * ```
474
+ * @since v10.0.0
475
+ * @return Fulfills with `undefined` upon success.
476
+ */
477
+ close(): Promise<void>;
478
+ /**
479
+ * An alias for {@link FileHandle.close()}.
480
+ * @since v20.4.0
481
+ */
482
+ [Symbol.asyncDispose](): Promise<void>;
483
+ }
484
+ const constants: typeof fsConstants;
485
+ /**
486
+ * Tests a user's permissions for the file or directory specified by `path`.
487
+ * The `mode` argument is an optional integer that specifies the accessibility
488
+ * checks to be performed. `mode` should be either the value `fs.constants.F_OK`or a mask consisting of the bitwise OR of any of `fs.constants.R_OK`,`fs.constants.W_OK`, and `fs.constants.X_OK`
489
+ * (e.g.`fs.constants.W_OK | fs.constants.R_OK`). Check `File access constants` for
490
+ * possible values of `mode`.
491
+ *
492
+ * If the accessibility check is successful, the promise is fulfilled with no
493
+ * value. If any of the accessibility checks fail, the promise is rejected
494
+ * with an [Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) object. The following example checks if the file`/etc/passwd` can be read and
495
+ * written by the current process.
496
+ *
497
+ * ```js
498
+ * import { access, constants } from 'node:fs/promises';
499
+ *
500
+ * try {
501
+ * await access('/etc/passwd', constants.R_OK | constants.W_OK);
502
+ * console.log('can access');
503
+ * } catch {
504
+ * console.error('cannot access');
505
+ * }
506
+ * ```
507
+ *
508
+ * Using `fsPromises.access()` to check for the accessibility of a file before
509
+ * calling `fsPromises.open()` is not recommended. Doing so introduces a race
510
+ * condition, since other processes may change the file's state between the two
511
+ * calls. Instead, user code should open/read/write the file directly and handle
512
+ * the error raised if the file is not accessible.
513
+ * @since v10.0.0
514
+ * @param [mode=fs.constants.F_OK]
515
+ * @return Fulfills with `undefined` upon success.
516
+ */
517
+ function access(path: PathLike, mode?: number): Promise<void>;
518
+ /**
519
+ * Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it
520
+ * already exists.
521
+ *
522
+ * No guarantees are made about the atomicity of the copy operation. If an
523
+ * error occurs after the destination file has been opened for writing, an attempt
524
+ * will be made to remove the destination.
525
+ *
526
+ * ```js
527
+ * import { copyFile, constants } from 'node:fs/promises';
528
+ *
529
+ * try {
530
+ * await copyFile('source.txt', 'destination.txt');
531
+ * console.log('source.txt was copied to destination.txt');
532
+ * } catch {
533
+ * console.error('The file could not be copied');
534
+ * }
535
+ *
536
+ * // By using COPYFILE_EXCL, the operation will fail if destination.txt exists.
537
+ * try {
538
+ * await copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL);
539
+ * console.log('source.txt was copied to destination.txt');
540
+ * } catch {
541
+ * console.error('The file could not be copied');
542
+ * }
543
+ * ```
544
+ * @since v10.0.0
545
+ * @param src source filename to copy
546
+ * @param dest destination filename of the copy operation
547
+ * @param [mode=0] Optional modifiers that specify the behavior of the copy operation. It is possible to create a mask consisting of the bitwise OR of two or more values (e.g.
548
+ * `fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`)
549
+ * @return Fulfills with `undefined` upon success.
550
+ */
551
+ function copyFile(src: PathLike, dest: PathLike, mode?: number): Promise<void>;
552
+ /**
553
+ * Opens a `FileHandle`.
554
+ *
555
+ * Refer to the POSIX [`open(2)`](http://man7.org/linux/man-pages/man2/open.2.html) documentation for more detail.
556
+ *
557
+ * Some characters (`< > : " / \ | ? *`) are reserved under Windows as documented
558
+ * by [Naming Files, Paths, and Namespaces](https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file). Under NTFS, if the filename contains
559
+ * a colon, Node.js will open a file system stream, as described by [this MSDN page](https://docs.microsoft.com/en-us/windows/desktop/FileIO/using-streams).
560
+ * @since v10.0.0
561
+ * @param [flags='r'] See `support of file system `flags``.
562
+ * @param [mode=0o666] Sets the file mode (permission and sticky bits) if the file is created.
563
+ * @return Fulfills with a {FileHandle} object.
564
+ */
565
+ function open(path: PathLike, flags?: string | number, mode?: Mode): Promise<FileHandle>;
566
+ /**
567
+ * Renames `oldPath` to `newPath`.
568
+ * @since v10.0.0
569
+ * @return Fulfills with `undefined` upon success.
570
+ */
571
+ function rename(oldPath: PathLike, newPath: PathLike): Promise<void>;
572
+ /**
573
+ * Truncates (shortens or extends the length) of the content at `path` to `len`bytes.
574
+ * @since v10.0.0
575
+ * @param [len=0]
576
+ * @return Fulfills with `undefined` upon success.
577
+ */
578
+ function truncate(path: PathLike, len?: number): Promise<void>;
579
+ /**
580
+ * Removes the directory identified by `path`.
581
+ *
582
+ * Using `fsPromises.rmdir()` on a file (not a directory) results in the
583
+ * promise being rejected with an `ENOENT` error on Windows and an `ENOTDIR`error on POSIX.
584
+ *
585
+ * To get a behavior similar to the `rm -rf` Unix command, use `fsPromises.rm()` with options `{ recursive: true, force: true }`.
586
+ * @since v10.0.0
587
+ * @return Fulfills with `undefined` upon success.
588
+ */
589
+ function rmdir(path: PathLike, options?: RmDirOptions): Promise<void>;
590
+ /**
591
+ * Removes files and directories (modeled on the standard POSIX `rm` utility).
592
+ * @since v14.14.0
593
+ * @return Fulfills with `undefined` upon success.
594
+ */
595
+ function rm(path: PathLike, options?: RmOptions): Promise<void>;
596
+ /**
597
+ * Asynchronously creates a directory.
598
+ *
599
+ * The optional `options` argument can be an integer specifying `mode` (permission
600
+ * and sticky bits), or an object with a `mode` property and a `recursive`property indicating whether parent directories should be created. Calling`fsPromises.mkdir()` when `path` is a directory
601
+ * that exists results in a
602
+ * rejection only when `recursive` is false.
603
+ *
604
+ * ```js
605
+ * import { mkdir } from 'node:fs/promises';
606
+ *
607
+ * try {
608
+ * const projectFolder = new URL('./test/project/', import.meta.url);
609
+ * const createDir = await mkdir(projectFolder, { recursive: true });
610
+ *
611
+ * console.log(`created ${createDir}`);
612
+ * } catch (err) {
613
+ * console.error(err.message);
614
+ * }
615
+ * ```
616
+ * @since v10.0.0
617
+ * @return Upon success, fulfills with `undefined` if `recursive` is `false`, or the first directory path created if `recursive` is `true`.
618
+ */
619
+ function mkdir(
620
+ path: PathLike,
621
+ options: MakeDirectoryOptions & {
622
+ recursive: true;
623
+ },
624
+ ): Promise<string | undefined>;
625
+ /**
626
+ * Asynchronous mkdir(2) - create a directory.
627
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
628
+ * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders
629
+ * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.
630
+ */
631
+ function mkdir(
632
+ path: PathLike,
633
+ options?:
634
+ | Mode
635
+ | (MakeDirectoryOptions & {
636
+ recursive?: false | undefined;
637
+ })
638
+ | null,
639
+ ): Promise<void>;
640
+ /**
641
+ * Asynchronous mkdir(2) - create a directory.
642
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
643
+ * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders
644
+ * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.
645
+ */
646
+ function mkdir(path: PathLike, options?: Mode | MakeDirectoryOptions | null): Promise<string | undefined>;
647
+ /**
648
+ * Reads the contents of a directory.
649
+ *
650
+ * The optional `options` argument can be a string specifying an encoding, or an
651
+ * object with an `encoding` property specifying the character encoding to use for
652
+ * the filenames. If the `encoding` is set to `'buffer'`, the filenames returned
653
+ * will be passed as `Buffer` objects.
654
+ *
655
+ * If `options.withFileTypes` is set to `true`, the returned array will contain `fs.Dirent` objects.
656
+ *
657
+ * ```js
658
+ * import { readdir } from 'node:fs/promises';
659
+ *
660
+ * try {
661
+ * const files = await readdir(path);
662
+ * for (const file of files)
663
+ * console.log(file);
664
+ * } catch (err) {
665
+ * console.error(err);
666
+ * }
667
+ * ```
668
+ * @since v10.0.0
669
+ * @return Fulfills with an array of the names of the files in the directory excluding `'.'` and `'..'`.
670
+ */
671
+ function readdir(
672
+ path: PathLike,
673
+ options?:
674
+ | (ObjectEncodingOptions & {
675
+ withFileTypes?: false | undefined;
676
+ recursive?: boolean | undefined;
677
+ })
678
+ | BufferEncoding
679
+ | null,
680
+ ): Promise<string[]>;
681
+ /**
682
+ * Asynchronous readdir(3) - read a directory.
683
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
684
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
685
+ */
686
+ function readdir(
687
+ path: PathLike,
688
+ options:
689
+ | {
690
+ encoding: "buffer";
691
+ withFileTypes?: false | undefined;
692
+ recursive?: boolean | undefined;
693
+ }
694
+ | "buffer",
695
+ ): Promise<Buffer[]>;
696
+ /**
697
+ * Asynchronous readdir(3) - read a directory.
698
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
699
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
700
+ */
701
+ function readdir(
702
+ path: PathLike,
703
+ options?:
704
+ | (ObjectEncodingOptions & {
705
+ withFileTypes?: false | undefined;
706
+ recursive?: boolean | undefined;
707
+ })
708
+ | BufferEncoding
709
+ | null,
710
+ ): Promise<string[] | Buffer[]>;
711
+ /**
712
+ * Asynchronous readdir(3) - read a directory.
713
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
714
+ * @param options If called with `withFileTypes: true` the result data will be an array of Dirent.
715
+ */
716
+ function readdir(
717
+ path: PathLike,
718
+ options: ObjectEncodingOptions & {
719
+ withFileTypes: true;
720
+ recursive?: boolean | undefined;
721
+ },
722
+ ): Promise<Dirent[]>;
723
+ /**
724
+ * Reads the contents of the symbolic link referred to by `path`. See the POSIX [`readlink(2)`](http://man7.org/linux/man-pages/man2/readlink.2.html) documentation for more detail. The promise is
725
+ * fulfilled with the`linkString` upon success.
726
+ *
727
+ * The optional `options` argument can be a string specifying an encoding, or an
728
+ * object with an `encoding` property specifying the character encoding to use for
729
+ * the link path returned. If the `encoding` is set to `'buffer'`, the link path
730
+ * returned will be passed as a `Buffer` object.
731
+ * @since v10.0.0
732
+ * @return Fulfills with the `linkString` upon success.
733
+ */
734
+ function readlink(path: PathLike, options?: ObjectEncodingOptions | BufferEncoding | null): Promise<string>;
735
+ /**
736
+ * Asynchronous readlink(2) - read value of a symbolic link.
737
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
738
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
739
+ */
740
+ function readlink(path: PathLike, options: BufferEncodingOption): Promise<Buffer>;
741
+ /**
742
+ * Asynchronous readlink(2) - read value of a symbolic link.
743
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
744
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
745
+ */
746
+ function readlink(path: PathLike, options?: ObjectEncodingOptions | string | null): Promise<string | Buffer>;
747
+ /**
748
+ * Creates a symbolic link.
749
+ *
750
+ * The `type` argument is only used on Windows platforms and can be one of `'dir'`,`'file'`, or `'junction'`. If the `type` argument is not a string, Node.js will
751
+ * autodetect `target` type and use `'file'` or `'dir'`. If the `target` does not
752
+ * exist, `'file'` will be used. Windows junction points require the destination
753
+ * path to be absolute. When using `'junction'`, the `target` argument will
754
+ * automatically be normalized to absolute path. Junction points on NTFS volumes
755
+ * can only point to directories.
756
+ * @since v10.0.0
757
+ * @param [type='null']
758
+ * @return Fulfills with `undefined` upon success.
759
+ */
760
+ function symlink(target: PathLike, path: PathLike, type?: string | null): Promise<void>;
761
+ /**
762
+ * Equivalent to `fsPromises.stat()` unless `path` refers to a symbolic link,
763
+ * in which case the link itself is stat-ed, not the file that it refers to.
764
+ * Refer to the POSIX [`lstat(2)`](http://man7.org/linux/man-pages/man2/lstat.2.html) document for more detail.
765
+ * @since v10.0.0
766
+ * @return Fulfills with the {fs.Stats} object for the given symbolic link `path`.
767
+ */
768
+ function lstat(
769
+ path: PathLike,
770
+ opts?: StatOptions & {
771
+ bigint?: false | undefined;
772
+ },
773
+ ): Promise<Stats>;
774
+ function lstat(
775
+ path: PathLike,
776
+ opts: StatOptions & {
777
+ bigint: true;
778
+ },
779
+ ): Promise<BigIntStats>;
780
+ function lstat(path: PathLike, opts?: StatOptions): Promise<Stats | BigIntStats>;
781
+ /**
782
+ * @since v10.0.0
783
+ * @return Fulfills with the {fs.Stats} object for the given `path`.
784
+ */
785
+ function stat(
786
+ path: PathLike,
787
+ opts?: StatOptions & {
788
+ bigint?: false | undefined;
789
+ },
790
+ ): Promise<Stats>;
791
+ function stat(
792
+ path: PathLike,
793
+ opts: StatOptions & {
794
+ bigint: true;
795
+ },
796
+ ): Promise<BigIntStats>;
797
+ function stat(path: PathLike, opts?: StatOptions): Promise<Stats | BigIntStats>;
798
+ /**
799
+ * @since v19.6.0, v18.15.0
800
+ * @return Fulfills with the {fs.StatFs} object for the given `path`.
801
+ */
802
+ function statfs(
803
+ path: PathLike,
804
+ opts?: StatFsOptions & {
805
+ bigint?: false | undefined;
806
+ },
807
+ ): Promise<StatsFs>;
808
+ function statfs(
809
+ path: PathLike,
810
+ opts: StatFsOptions & {
811
+ bigint: true;
812
+ },
813
+ ): Promise<BigIntStatsFs>;
814
+ function statfs(path: PathLike, opts?: StatFsOptions): Promise<StatsFs | BigIntStatsFs>;
815
+ /**
816
+ * Creates a new link from the `existingPath` to the `newPath`. See the POSIX [`link(2)`](http://man7.org/linux/man-pages/man2/link.2.html) documentation for more detail.
817
+ * @since v10.0.0
818
+ * @return Fulfills with `undefined` upon success.
819
+ */
820
+ function link(existingPath: PathLike, newPath: PathLike): Promise<void>;
821
+ /**
822
+ * If `path` refers to a symbolic link, then the link is removed without affecting
823
+ * the file or directory to which that link refers. If the `path` refers to a file
824
+ * path that is not a symbolic link, the file is deleted. See the POSIX [`unlink(2)`](http://man7.org/linux/man-pages/man2/unlink.2.html) documentation for more detail.
825
+ * @since v10.0.0
826
+ * @return Fulfills with `undefined` upon success.
827
+ */
828
+ function unlink(path: PathLike): Promise<void>;
829
+ /**
830
+ * Changes the permissions of a file.
831
+ * @since v10.0.0
832
+ * @return Fulfills with `undefined` upon success.
833
+ */
834
+ function chmod(path: PathLike, mode: Mode): Promise<void>;
835
+ /**
836
+ * Changes the permissions on a symbolic link.
837
+ *
838
+ * This method is only implemented on macOS.
839
+ * @deprecated Since v10.0.0
840
+ * @return Fulfills with `undefined` upon success.
841
+ */
842
+ function lchmod(path: PathLike, mode: Mode): Promise<void>;
843
+ /**
844
+ * Changes the ownership on a symbolic link.
845
+ * @since v10.0.0
846
+ * @return Fulfills with `undefined` upon success.
847
+ */
848
+ function lchown(path: PathLike, uid: number, gid: number): Promise<void>;
849
+ /**
850
+ * Changes the access and modification times of a file in the same way as `fsPromises.utimes()`, with the difference that if the path refers to a
851
+ * symbolic link, then the link is not dereferenced: instead, the timestamps of
852
+ * the symbolic link itself are changed.
853
+ * @since v14.5.0, v12.19.0
854
+ * @return Fulfills with `undefined` upon success.
855
+ */
856
+ function lutimes(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise<void>;
857
+ /**
858
+ * Changes the ownership of a file.
859
+ * @since v10.0.0
860
+ * @return Fulfills with `undefined` upon success.
861
+ */
862
+ function chown(path: PathLike, uid: number, gid: number): Promise<void>;
863
+ /**
864
+ * Change the file system timestamps of the object referenced by `path`.
865
+ *
866
+ * The `atime` and `mtime` arguments follow these rules:
867
+ *
868
+ * * Values can be either numbers representing Unix epoch time, `Date`s, or a
869
+ * numeric string like `'123456789.0'`.
870
+ * * If the value can not be converted to a number, or is `NaN`, `Infinity`, or`-Infinity`, an `Error` will be thrown.
871
+ * @since v10.0.0
872
+ * @return Fulfills with `undefined` upon success.
873
+ */
874
+ function utimes(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise<void>;
875
+ /**
876
+ * Determines the actual location of `path` using the same semantics as the`fs.realpath.native()` function.
877
+ *
878
+ * Only paths that can be converted to UTF8 strings are supported.
879
+ *
880
+ * The optional `options` argument can be a string specifying an encoding, or an
881
+ * object with an `encoding` property specifying the character encoding to use for
882
+ * the path. If the `encoding` is set to `'buffer'`, the path returned will be
883
+ * passed as a `Buffer` object.
884
+ *
885
+ * On Linux, when Node.js is linked against musl libc, the procfs file system must
886
+ * be mounted on `/proc` in order for this function to work. Glibc does not have
887
+ * this restriction.
888
+ * @since v10.0.0
889
+ * @return Fulfills with the resolved path upon success.
890
+ */
891
+ function realpath(path: PathLike, options?: ObjectEncodingOptions | BufferEncoding | null): Promise<string>;
892
+ /**
893
+ * Asynchronous realpath(3) - return the canonicalized absolute pathname.
894
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
895
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
896
+ */
897
+ function realpath(path: PathLike, options: BufferEncodingOption): Promise<Buffer>;
898
+ /**
899
+ * Asynchronous realpath(3) - return the canonicalized absolute pathname.
900
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
901
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
902
+ */
903
+ function realpath(
904
+ path: PathLike,
905
+ options?: ObjectEncodingOptions | BufferEncoding | null,
906
+ ): Promise<string | Buffer>;
907
+ /**
908
+ * Creates a unique temporary directory. A unique directory name is generated by
909
+ * appending six random characters to the end of the provided `prefix`. Due to
910
+ * platform inconsistencies, avoid trailing `X` characters in `prefix`. Some
911
+ * platforms, notably the BSDs, can return more than six random characters, and
912
+ * replace trailing `X` characters in `prefix` with random characters.
913
+ *
914
+ * The optional `options` argument can be a string specifying an encoding, or an
915
+ * object with an `encoding` property specifying the character encoding to use.
916
+ *
917
+ * ```js
918
+ * import { mkdtemp } from 'node:fs/promises';
919
+ * import { join } from 'node:path';
920
+ * import { tmpdir } from 'node:os';
921
+ *
922
+ * try {
923
+ * await mkdtemp(join(tmpdir(), 'foo-'));
924
+ * } catch (err) {
925
+ * console.error(err);
926
+ * }
927
+ * ```
928
+ *
929
+ * The `fsPromises.mkdtemp()` method will append the six randomly selected
930
+ * characters directly to the `prefix` string. For instance, given a directory`/tmp`, if the intention is to create a temporary directory _within_`/tmp`, the`prefix` must end with a trailing
931
+ * platform-specific path separator
932
+ * (`require('node:path').sep`).
933
+ * @since v10.0.0
934
+ * @return Fulfills with a string containing the file system path of the newly created temporary directory.
935
+ */
936
+ function mkdtemp(prefix: string, options?: ObjectEncodingOptions | BufferEncoding | null): Promise<string>;
937
+ /**
938
+ * Asynchronously creates a unique temporary directory.
939
+ * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory.
940
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
941
+ */
942
+ function mkdtemp(prefix: string, options: BufferEncodingOption): Promise<Buffer>;
943
+ /**
944
+ * Asynchronously creates a unique temporary directory.
945
+ * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory.
946
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
947
+ */
948
+ function mkdtemp(prefix: string, options?: ObjectEncodingOptions | BufferEncoding | null): Promise<string | Buffer>;
949
+ /**
950
+ * Asynchronously writes data to a file, replacing the file if it already exists.`data` can be a string, a buffer, an
951
+ * [AsyncIterable](https://tc39.github.io/ecma262/#sec-asynciterable-interface), or an
952
+ * [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol) object.
953
+ *
954
+ * The `encoding` option is ignored if `data` is a buffer.
955
+ *
956
+ * If `options` is a string, then it specifies the encoding.
957
+ *
958
+ * The `mode` option only affects the newly created file. See `fs.open()` for more details.
959
+ *
960
+ * Any specified `FileHandle` has to support writing.
961
+ *
962
+ * It is unsafe to use `fsPromises.writeFile()` multiple times on the same file
963
+ * without waiting for the promise to be settled.
964
+ *
965
+ * Similarly to `fsPromises.readFile` \- `fsPromises.writeFile` is a convenience
966
+ * method that performs multiple `write` calls internally to write the buffer
967
+ * passed to it. For performance sensitive code consider using `fs.createWriteStream()` or `filehandle.createWriteStream()`.
968
+ *
969
+ * It is possible to use an `AbortSignal` to cancel an `fsPromises.writeFile()`.
970
+ * Cancelation is "best effort", and some amount of data is likely still
971
+ * to be written.
972
+ *
973
+ * ```js
974
+ * import { writeFile } from 'node:fs/promises';
975
+ * import { Buffer } from 'node:buffer';
976
+ *
977
+ * try {
978
+ * const controller = new AbortController();
979
+ * const { signal } = controller;
980
+ * const data = new Uint8Array(Buffer.from('Hello Node.js'));
981
+ * const promise = writeFile('message.txt', data, { signal });
982
+ *
983
+ * // Abort the request before the promise settles.
984
+ * controller.abort();
985
+ *
986
+ * await promise;
987
+ * } catch (err) {
988
+ * // When a request is aborted - err is an AbortError
989
+ * console.error(err);
990
+ * }
991
+ * ```
992
+ *
993
+ * Aborting an ongoing request does not abort individual operating
994
+ * system requests but rather the internal buffering `fs.writeFile` performs.
995
+ * @since v10.0.0
996
+ * @param file filename or `FileHandle`
997
+ * @return Fulfills with `undefined` upon success.
998
+ */
999
+ function writeFile(
1000
+ file: PathLike | FileHandle,
1001
+ data:
1002
+ | string
1003
+ | NodeJS.ArrayBufferView
1004
+ | Iterable<string | NodeJS.ArrayBufferView>
1005
+ | AsyncIterable<string | NodeJS.ArrayBufferView>
1006
+ | Stream,
1007
+ options?:
1008
+ | (ObjectEncodingOptions & {
1009
+ mode?: Mode | undefined;
1010
+ flag?: OpenMode | undefined;
1011
+ } & Abortable)
1012
+ | BufferEncoding
1013
+ | null,
1014
+ ): Promise<void>;
1015
+ /**
1016
+ * Asynchronously append data to a file, creating the file if it does not yet
1017
+ * exist. `data` can be a string or a `Buffer`.
1018
+ *
1019
+ * If `options` is a string, then it specifies the `encoding`.
1020
+ *
1021
+ * The `mode` option only affects the newly created file. See `fs.open()` for more details.
1022
+ *
1023
+ * The `path` may be specified as a `FileHandle` that has been opened
1024
+ * for appending (using `fsPromises.open()`).
1025
+ * @since v10.0.0
1026
+ * @param path filename or {FileHandle}
1027
+ * @return Fulfills with `undefined` upon success.
1028
+ */
1029
+ function appendFile(
1030
+ path: PathLike | FileHandle,
1031
+ data: string | Uint8Array,
1032
+ options?: (ObjectEncodingOptions & FlagAndOpenMode & { flush?: boolean | undefined }) | BufferEncoding | null,
1033
+ ): Promise<void>;
1034
+ /**
1035
+ * Asynchronously reads the entire contents of a file.
1036
+ *
1037
+ * If no encoding is specified (using `options.encoding`), the data is returned
1038
+ * as a `Buffer` object. Otherwise, the data will be a string.
1039
+ *
1040
+ * If `options` is a string, then it specifies the encoding.
1041
+ *
1042
+ * When the `path` is a directory, the behavior of `fsPromises.readFile()` is
1043
+ * platform-specific. On macOS, Linux, and Windows, the promise will be rejected
1044
+ * with an error. On FreeBSD, a representation of the directory's contents will be
1045
+ * returned.
1046
+ *
1047
+ * An example of reading a `package.json` file located in the same directory of the
1048
+ * running code:
1049
+ *
1050
+ * ```js
1051
+ * import { readFile } from 'node:fs/promises';
1052
+ * try {
1053
+ * const filePath = new URL('./package.json', import.meta.url);
1054
+ * const contents = await readFile(filePath, { encoding: 'utf8' });
1055
+ * console.log(contents);
1056
+ * } catch (err) {
1057
+ * console.error(err.message);
1058
+ * }
1059
+ * ```
1060
+ *
1061
+ * It is possible to abort an ongoing `readFile` using an `AbortSignal`. If a
1062
+ * request is aborted the promise returned is rejected with an `AbortError`:
1063
+ *
1064
+ * ```js
1065
+ * import { readFile } from 'node:fs/promises';
1066
+ *
1067
+ * try {
1068
+ * const controller = new AbortController();
1069
+ * const { signal } = controller;
1070
+ * const promise = readFile(fileName, { signal });
1071
+ *
1072
+ * // Abort the request before the promise settles.
1073
+ * controller.abort();
1074
+ *
1075
+ * await promise;
1076
+ * } catch (err) {
1077
+ * // When a request is aborted - err is an AbortError
1078
+ * console.error(err);
1079
+ * }
1080
+ * ```
1081
+ *
1082
+ * Aborting an ongoing request does not abort individual operating
1083
+ * system requests but rather the internal buffering `fs.readFile` performs.
1084
+ *
1085
+ * Any specified `FileHandle` has to support reading.
1086
+ * @since v10.0.0
1087
+ * @param path filename or `FileHandle`
1088
+ * @return Fulfills with the contents of the file.
1089
+ */
1090
+ function readFile(
1091
+ path: PathLike | FileHandle,
1092
+ options?:
1093
+ | ({
1094
+ encoding?: null | undefined;
1095
+ flag?: OpenMode | undefined;
1096
+ } & Abortable)
1097
+ | null,
1098
+ ): Promise<Buffer>;
1099
+ /**
1100
+ * Asynchronously reads the entire contents of a file.
1101
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
1102
+ * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically.
1103
+ * @param options An object that may contain an optional flag.
1104
+ * If a flag is not provided, it defaults to `'r'`.
1105
+ */
1106
+ function readFile(
1107
+ path: PathLike | FileHandle,
1108
+ options:
1109
+ | ({
1110
+ encoding: BufferEncoding;
1111
+ flag?: OpenMode | undefined;
1112
+ } & Abortable)
1113
+ | BufferEncoding,
1114
+ ): Promise<string>;
1115
+ /**
1116
+ * Asynchronously reads the entire contents of a file.
1117
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
1118
+ * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically.
1119
+ * @param options An object that may contain an optional flag.
1120
+ * If a flag is not provided, it defaults to `'r'`.
1121
+ */
1122
+ function readFile(
1123
+ path: PathLike | FileHandle,
1124
+ options?:
1125
+ | (
1126
+ & ObjectEncodingOptions
1127
+ & Abortable
1128
+ & {
1129
+ flag?: OpenMode | undefined;
1130
+ }
1131
+ )
1132
+ | BufferEncoding
1133
+ | null,
1134
+ ): Promise<string | Buffer>;
1135
+ /**
1136
+ * Asynchronously open a directory for iterative scanning. See the POSIX [`opendir(3)`](http://man7.org/linux/man-pages/man3/opendir.3.html) documentation for more detail.
1137
+ *
1138
+ * Creates an `fs.Dir`, which contains all further functions for reading from
1139
+ * and cleaning up the directory.
1140
+ *
1141
+ * The `encoding` option sets the encoding for the `path` while opening the
1142
+ * directory and subsequent read operations.
1143
+ *
1144
+ * Example using async iteration:
1145
+ *
1146
+ * ```js
1147
+ * import { opendir } from 'node:fs/promises';
1148
+ *
1149
+ * try {
1150
+ * const dir = await opendir('./');
1151
+ * for await (const dirent of dir)
1152
+ * console.log(dirent.name);
1153
+ * } catch (err) {
1154
+ * console.error(err);
1155
+ * }
1156
+ * ```
1157
+ *
1158
+ * When using the async iterator, the `fs.Dir` object will be automatically
1159
+ * closed after the iterator exits.
1160
+ * @since v12.12.0
1161
+ * @return Fulfills with an {fs.Dir}.
1162
+ */
1163
+ function opendir(path: PathLike, options?: OpenDirOptions): Promise<Dir>;
1164
+ /**
1165
+ * Returns an async iterator that watches for changes on `filename`, where `filename`is either a file or a directory.
1166
+ *
1167
+ * ```js
1168
+ * const { watch } = require('node:fs/promises');
1169
+ *
1170
+ * const ac = new AbortController();
1171
+ * const { signal } = ac;
1172
+ * setTimeout(() => ac.abort(), 10000);
1173
+ *
1174
+ * (async () => {
1175
+ * try {
1176
+ * const watcher = watch(__filename, { signal });
1177
+ * for await (const event of watcher)
1178
+ * console.log(event);
1179
+ * } catch (err) {
1180
+ * if (err.name === 'AbortError')
1181
+ * return;
1182
+ * throw err;
1183
+ * }
1184
+ * })();
1185
+ * ```
1186
+ *
1187
+ * On most platforms, `'rename'` is emitted whenever a filename appears or
1188
+ * disappears in the directory.
1189
+ *
1190
+ * All the `caveats` for `fs.watch()` also apply to `fsPromises.watch()`.
1191
+ * @since v15.9.0, v14.18.0
1192
+ * @return of objects with the properties:
1193
+ */
1194
+ function watch(
1195
+ filename: PathLike,
1196
+ options:
1197
+ | (WatchOptions & {
1198
+ encoding: "buffer";
1199
+ })
1200
+ | "buffer",
1201
+ ): AsyncIterable<FileChangeInfo<Buffer>>;
1202
+ /**
1203
+ * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`.
1204
+ * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol.
1205
+ * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options.
1206
+ * If `encoding` is not supplied, the default of `'utf8'` is used.
1207
+ * If `persistent` is not supplied, the default of `true` is used.
1208
+ * If `recursive` is not supplied, the default of `false` is used.
1209
+ */
1210
+ function watch(filename: PathLike, options?: WatchOptions | BufferEncoding): AsyncIterable<FileChangeInfo<string>>;
1211
+ /**
1212
+ * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`.
1213
+ * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol.
1214
+ * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options.
1215
+ * If `encoding` is not supplied, the default of `'utf8'` is used.
1216
+ * If `persistent` is not supplied, the default of `true` is used.
1217
+ * If `recursive` is not supplied, the default of `false` is used.
1218
+ */
1219
+ function watch(
1220
+ filename: PathLike,
1221
+ options: WatchOptions | string,
1222
+ ): AsyncIterable<FileChangeInfo<string>> | AsyncIterable<FileChangeInfo<Buffer>>;
1223
+ /**
1224
+ * Asynchronously copies the entire directory structure from `src` to `dest`,
1225
+ * including subdirectories and files.
1226
+ *
1227
+ * When copying a directory to another directory, globs are not supported and
1228
+ * behavior is similar to `cp dir1/ dir2/`.
1229
+ * @since v16.7.0
1230
+ * @experimental
1231
+ * @param src source path to copy.
1232
+ * @param dest destination path to copy to.
1233
+ * @return Fulfills with `undefined` upon success.
1234
+ */
1235
+ function cp(source: string | URL, destination: string | URL, opts?: CopyOptions): Promise<void>;
1236
+ }
1237
+ declare module "node:fs/promises" {
1238
+ export * from "fs/promises";
1239
+ }