UNPKG

31.2 kBTypeScriptView Raw
1declare module 'fs/promises' {
2 import {
3 BaseEncodingOptions,
4 BigIntStats,
5 BufferEncodingOption,
6 constants as fsConstants,
7 Dir,
8 Dirent,
9 MakeDirectoryOptions,
10 Mode,
11 OpenDirOptions,
12 OpenMode,
13 PathLike,
14 ReadVResult,
15 RmDirOptions,
16 RmOptions,
17 StatOptions,
18 Stats,
19 WriteVResult,
20 } from 'fs';
21
22 interface FileHandle {
23 /**
24 * Gets the file descriptor for this file handle.
25 */
26 readonly fd: number;
27
28 /**
29 * Asynchronously append data to a file, creating the file if it does not exist. The underlying file will _not_ be closed automatically.
30 * The `FileHandle` must have been opened for appending.
31 * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string.
32 * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag.
33 * If `encoding` is not supplied, the default of `'utf8'` is used.
34 * If `mode` is not supplied, the default of `0o666` is used.
35 * If `mode` is a string, it is parsed as an octal integer.
36 * If `flag` is not supplied, the default of `'a'` is used.
37 */
38 appendFile(data: string | Uint8Array, options?: BaseEncodingOptions & { mode?: Mode | undefined, flag?: OpenMode | undefined } | BufferEncoding | null): Promise<void>;
39
40 /**
41 * Asynchronous fchown(2) - Change ownership of a file.
42 */
43 chown(uid: number, gid: number): Promise<void>;
44
45 /**
46 * Asynchronous fchmod(2) - Change permissions of a file.
47 * @param mode A file mode. If a string is passed, it is parsed as an octal integer.
48 */
49 chmod(mode: Mode): Promise<void>;
50
51 /**
52 * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device.
53 */
54 datasync(): Promise<void>;
55
56 /**
57 * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device.
58 */
59 sync(): Promise<void>;
60
61 /**
62 * Asynchronously reads data from the file.
63 * The `FileHandle` must have been opened for reading.
64 * @param buffer The buffer that the data will be written to.
65 * @param offset The offset in the buffer at which to start writing.
66 * @param length The number of bytes to read.
67 * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position.
68 */
69 read<TBuffer extends Uint8Array>(buffer: TBuffer, offset?: number | null, length?: number | null, position?: number | null): Promise<{ bytesRead: number, buffer: TBuffer }>;
70
71 /**
72 * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically.
73 * The `FileHandle` must have been opened for reading.
74 * @param options An object that may contain an optional flag.
75 * If a flag is not provided, it defaults to `'r'`.
76 */
77 readFile(options?: { encoding?: null | undefined, flag?: OpenMode | undefined } | null): Promise<Buffer>;
78
79 /**
80 * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically.
81 * The `FileHandle` must have been opened for reading.
82 * @param options An object that may contain an optional flag.
83 * If a flag is not provided, it defaults to `'r'`.
84 */
85 readFile(options: { encoding: BufferEncoding, flag?: OpenMode | undefined } | BufferEncoding): Promise<string>;
86
87 /**
88 * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically.
89 * The `FileHandle` must have been opened for reading.
90 * @param options An object that may contain an optional flag.
91 * If a flag is not provided, it defaults to `'r'`.
92 */
93 readFile(options?: BaseEncodingOptions & { flag?: OpenMode | undefined } | BufferEncoding | null): Promise<string | Buffer>;
94
95 /**
96 * Asynchronous fstat(2) - Get file status.
97 */
98 stat(opts?: StatOptions & { bigint?: false | undefined }): Promise<Stats>;
99 stat(opts: StatOptions & { bigint: true }): Promise<BigIntStats>;
100 stat(opts?: StatOptions): Promise<Stats | BigIntStats>;
101
102 /**
103 * Asynchronous ftruncate(2) - Truncate a file to a specified length.
104 * @param len If not specified, defaults to `0`.
105 */
106 truncate(len?: number): Promise<void>;
107
108 /**
109 * Asynchronously change file timestamps of the file.
110 * @param atime The last access time. If a string is provided, it will be coerced to number.
111 * @param mtime The last modified time. If a string is provided, it will be coerced to number.
112 */
113 utimes(atime: string | number | Date, mtime: string | number | Date): Promise<void>;
114
115 /**
116 * Asynchronously writes `buffer` to the file.
117 * The `FileHandle` must have been opened for writing.
118 * @param buffer The buffer that the data will be written to.
119 * @param offset The part of the buffer to be written. If not supplied, defaults to `0`.
120 * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`.
121 * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position.
122 */
123 write<TBuffer extends Uint8Array>(buffer: TBuffer, offset?: number | null, length?: number | null, position?: number | null): Promise<{ bytesWritten: number, buffer: TBuffer }>;
124
125 /**
126 * Asynchronously writes `string` to the file.
127 * The `FileHandle` must have been opened for writing.
128 * It is unsafe to call `write()` multiple times on the same file without waiting for the `Promise`
129 * to be resolved (or rejected). For this scenario, `fs.createWriteStream` is strongly recommended.
130 * @param string A string to write.
131 * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position.
132 * @param encoding The expected string encoding.
133 */
134 write(data: string | Uint8Array, position?: number | null, encoding?: BufferEncoding | null): Promise<{ bytesWritten: number, buffer: string }>;
135
136 /**
137 * Asynchronously writes data to a file, replacing the file if it already exists. The underlying file will _not_ be closed automatically.
138 * The `FileHandle` must have been opened for writing.
139 * It is unsafe to call `writeFile()` multiple times on the same file without waiting for the `Promise` to be resolved (or rejected).
140 * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string.
141 * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag.
142 * If `encoding` is not supplied, the default of `'utf8'` is used.
143 * If `mode` is not supplied, the default of `0o666` is used.
144 * If `mode` is a string, it is parsed as an octal integer.
145 * If `flag` is not supplied, the default of `'w'` is used.
146 */
147 writeFile(data: string | Uint8Array, options?: BaseEncodingOptions & { mode?: Mode | undefined, flag?: OpenMode | undefined } | BufferEncoding | null): Promise<void>;
148
149 /**
150 * See `fs.writev` promisified version.
151 */
152 writev(buffers: ReadonlyArray<NodeJS.ArrayBufferView>, position?: number): Promise<WriteVResult>;
153
154 /**
155 * See `fs.readv` promisified version.
156 */
157 readv(buffers: ReadonlyArray<NodeJS.ArrayBufferView>, position?: number): Promise<ReadVResult>;
158
159 /**
160 * Asynchronous close(2) - close a `FileHandle`.
161 */
162 close(): Promise<void>;
163 }
164
165 const constants: typeof fsConstants;
166
167 /**
168 * Asynchronously tests a user's permissions for the file specified by path.
169 * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol.
170 * URL support is _experimental_.
171 */
172 function access(path: PathLike, mode?: number): Promise<void>;
173
174 /**
175 * Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it already exists.
176 * Node.js makes no guarantees about the atomicity of the copy operation.
177 * If an error occurs after the destination file has been opened for writing, Node.js will attempt
178 * to remove the destination.
179 * @param src A path to the source file.
180 * @param dest A path to the destination file.
181 * @param flags An optional integer that specifies the behavior of the copy operation. The only
182 * supported flag is `fs.constants.COPYFILE_EXCL`, which causes the copy operation to fail if
183 * `dest` already exists.
184 */
185 function copyFile(src: PathLike, dest: PathLike, flags?: number): Promise<void>;
186
187 /**
188 * Asynchronous open(2) - open and possibly create a file.
189 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
190 * @param [flags='r'] See `support of file system `flags``.
191 * @param [mode] A file mode. If a string is passed, it is parsed as an octal integer. If not
192 * supplied, defaults to `0o666`.
193 */
194 function open(path: PathLike, flags?: string | number, mode?: string | number): Promise<FileHandle>;
195
196 /**
197 * Asynchronously reads data from the file referenced by the supplied `FileHandle`.
198 * @param handle A `FileHandle`.
199 * @param buffer The buffer that the data will be written to.
200 * @param offset The offset in the buffer at which to start writing.
201 * @param length The number of bytes to read.
202 * @param position The offset from the beginning of the file from which data should be read. If
203 * `null`, data will be read from the current position.
204 */
205 function read<TBuffer extends Uint8Array>(
206 handle: FileHandle,
207 buffer: TBuffer,
208 offset?: number | null,
209 length?: number | null,
210 position?: number | null,
211 ): Promise<{ bytesRead: number, buffer: TBuffer }>;
212
213 /**
214 * Asynchronously writes `buffer` to the file referenced by the supplied `FileHandle`.
215 * It is unsafe to call `fsPromises.write()` multiple times on the same file without waiting for the `Promise`
216 * to be resolved (or rejected). For this scenario, `fs.createWriteStream` is strongly recommended.
217 * @param handle A `FileHandle`.
218 * @param buffer The buffer that the data will be written to.
219 * @param offset The part of the buffer to be written. If not supplied, defaults to `0`.
220 * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`.
221 * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position.
222 */
223 function write<TBuffer extends Uint8Array>(
224 handle: FileHandle,
225 buffer: TBuffer,
226 offset?: number | null,
227 length?: number | null, position?: number | null): Promise<{ bytesWritten: number, buffer: TBuffer }>;
228
229 /**
230 * Asynchronously writes `string` to the file referenced by the supplied `FileHandle`.
231 * It is unsafe to call `fsPromises.write()` multiple times on the same file without waiting for the `Promise`
232 * to be resolved (or rejected). For this scenario, `fs.createWriteStream` is strongly recommended.
233 * @param handle A `FileHandle`.
234 * @param string A string to write.
235 * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position.
236 * @param encoding The expected string encoding.
237 */
238 function write(handle: FileHandle, string: string, position?: number | null, encoding?: BufferEncoding | null): Promise<{ bytesWritten: number, buffer: string }>;
239
240 /**
241 * Asynchronous rename(2) - Change the name or location of a file or directory.
242 * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol.
243 * URL support is _experimental_.
244 * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol.
245 * URL support is _experimental_.
246 */
247 function rename(oldPath: PathLike, newPath: PathLike): Promise<void>;
248
249 /**
250 * Asynchronous truncate(2) - Truncate a file to a specified length.
251 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
252 * @param len If not specified, defaults to `0`.
253 */
254 function truncate(path: PathLike, len?: number): Promise<void>;
255
256 /**
257 * Asynchronous ftruncate(2) - Truncate a file to a specified length.
258 * @param handle A `FileHandle`.
259 * @param len If not specified, defaults to `0`.
260 */
261 function ftruncate(handle: FileHandle, len?: number): Promise<void>;
262
263 /**
264 * Asynchronous rmdir(2) - delete a directory.
265 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
266 */
267 function rmdir(path: PathLike, options?: RmDirOptions): Promise<void>;
268
269 /**
270 * Asynchronously removes files and directories (modeled on the standard POSIX `rm` utility).
271 */
272 function rm(path: PathLike, options?: RmOptions): Promise<void>;
273
274 /**
275 * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device.
276 * @param handle A `FileHandle`.
277 */
278 function fdatasync(handle: FileHandle): Promise<void>;
279
280 /**
281 * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device.
282 * @param handle A `FileHandle`.
283 */
284 function fsync(handle: FileHandle): Promise<void>;
285
286 /**
287 * Asynchronous mkdir(2) - create a directory.
288 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
289 * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders
290 * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.
291 */
292 function mkdir(path: PathLike, options: MakeDirectoryOptions & { recursive: true; }): Promise<string | undefined>;
293
294 /**
295 * Asynchronous mkdir(2) - create a directory.
296 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
297 * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders
298 * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.
299 */
300 function mkdir(path: PathLike, options?: Mode | (MakeDirectoryOptions & { recursive?: false | undefined; }) | null): Promise<void>;
301
302 /**
303 * Asynchronous mkdir(2) - create a directory.
304 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
305 * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders
306 * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.
307 */
308 function mkdir(path: PathLike, options?: Mode | MakeDirectoryOptions | null): Promise<string | undefined>;
309
310 /**
311 * Asynchronous readdir(3) - read a directory.
312 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
313 * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
314 */
315 function readdir(path: PathLike, options?: BaseEncodingOptions & { withFileTypes?: false | undefined } | BufferEncoding | null): Promise<string[]>;
316
317 /**
318 * Asynchronous readdir(3) - read a directory.
319 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
320 * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
321 */
322 function readdir(path: PathLike, options: { encoding: "buffer"; withFileTypes?: false | undefined } | "buffer"): Promise<Buffer[]>;
323
324 /**
325 * Asynchronous readdir(3) - read a directory.
326 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
327 * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
328 */
329 function readdir(path: PathLike, options?: BaseEncodingOptions & { withFileTypes?: false | undefined } | BufferEncoding | null): Promise<string[] | Buffer[]>;
330
331 /**
332 * Asynchronous readdir(3) - read a directory.
333 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
334 * @param options If called with `withFileTypes: true` the result data will be an array of Dirent.
335 */
336 function readdir(path: PathLike, options: BaseEncodingOptions & { withFileTypes: true }): Promise<Dirent[]>;
337
338 /**
339 * Asynchronous readlink(2) - read value of a symbolic link.
340 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
341 * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
342 */
343 function readlink(path: PathLike, options?: BaseEncodingOptions | BufferEncoding | null): Promise<string>;
344
345 /**
346 * Asynchronous readlink(2) - read value of a symbolic link.
347 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
348 * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
349 */
350 function readlink(path: PathLike, options: BufferEncodingOption): Promise<Buffer>;
351
352 /**
353 * Asynchronous readlink(2) - read value of a symbolic link.
354 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
355 * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
356 */
357 function readlink(path: PathLike, options?: BaseEncodingOptions | string | null): Promise<string | Buffer>;
358
359 /**
360 * Asynchronous symlink(2) - Create a new symbolic link to an existing file.
361 * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol.
362 * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol.
363 * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms).
364 * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path.
365 */
366 function symlink(target: PathLike, path: PathLike, type?: string | null): Promise<void>;
367
368 /**
369 * Asynchronous lstat(2) - Get file status. Does not dereference symbolic links.
370 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
371 */
372 function lstat(path: PathLike, opts?: StatOptions & { bigint?: false | undefined }): Promise<Stats>;
373 function lstat(path: PathLike, opts: StatOptions & { bigint: true }): Promise<BigIntStats>;
374 function lstat(path: PathLike, opts?: StatOptions): Promise<Stats | BigIntStats>;
375
376 /**
377 * Asynchronous stat(2) - Get file status.
378 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
379 */
380 function stat(path: PathLike, opts?: StatOptions & { bigint?: false | undefined }): Promise<Stats>;
381 function stat(path: PathLike, opts: StatOptions & { bigint: true }): Promise<BigIntStats>;
382 function stat(path: PathLike, opts?: StatOptions): Promise<Stats | BigIntStats>;
383
384 /**
385 * Asynchronous link(2) - Create a new link (also known as a hard link) to an existing file.
386 * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol.
387 * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol.
388 */
389 function link(existingPath: PathLike, newPath: PathLike): Promise<void>;
390
391 /**
392 * Asynchronous unlink(2) - delete a name and possibly the file it refers to.
393 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
394 */
395 function unlink(path: PathLike): Promise<void>;
396
397 /**
398 * Asynchronous fchmod(2) - Change permissions of a file.
399 * @param handle A `FileHandle`.
400 * @param mode A file mode. If a string is passed, it is parsed as an octal integer.
401 */
402 function fchmod(handle: FileHandle, mode: Mode): Promise<void>;
403
404 /**
405 * Asynchronous chmod(2) - Change permissions of a file.
406 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
407 * @param mode A file mode. If a string is passed, it is parsed as an octal integer.
408 */
409 function chmod(path: PathLike, mode: Mode): Promise<void>;
410
411 /**
412 * Asynchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links.
413 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
414 * @param mode A file mode. If a string is passed, it is parsed as an octal integer.
415 */
416 function lchmod(path: PathLike, mode: Mode): Promise<void>;
417
418 /**
419 * Asynchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links.
420 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
421 */
422 function lchown(path: PathLike, uid: number, gid: number): Promise<void>;
423
424 /**
425 * Changes the access and modification times of a file in the same way as `fsPromises.utimes()`,
426 * with the difference that if the path refers to a symbolic link, then the link is not
427 * dereferenced: instead, the timestamps of the symbolic link itself are changed.
428 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
429 * @param atime The last access time. If a string is provided, it will be coerced to number.
430 * @param mtime The last modified time. If a string is provided, it will be coerced to number.
431 */
432 function lutimes(path: PathLike, atime: string | number | Date, mtime: string | number | Date): Promise<void>;
433
434 /**
435 * Asynchronous fchown(2) - Change ownership of a file.
436 * @param handle A `FileHandle`.
437 */
438 function fchown(handle: FileHandle, uid: number, gid: number): Promise<void>;
439
440 /**
441 * Asynchronous chown(2) - Change ownership of a file.
442 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
443 */
444 function chown(path: PathLike, uid: number, gid: number): Promise<void>;
445
446 /**
447 * Asynchronously change file timestamps of the file referenced by the supplied path.
448 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
449 * @param atime The last access time. If a string is provided, it will be coerced to number.
450 * @param mtime The last modified time. If a string is provided, it will be coerced to number.
451 */
452 function utimes(path: PathLike, atime: string | number | Date, mtime: string | number | Date): Promise<void>;
453
454 /**
455 * Asynchronously change file timestamps of the file referenced by the supplied `FileHandle`.
456 * @param handle A `FileHandle`.
457 * @param atime The last access time. If a string is provided, it will be coerced to number.
458 * @param mtime The last modified time. If a string is provided, it will be coerced to number.
459 */
460 function futimes(handle: FileHandle, atime: string | number | Date, mtime: string | number | Date): Promise<void>;
461
462 /**
463 * Asynchronous realpath(3) - return the canonicalized absolute pathname.
464 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
465 * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
466 */
467 function realpath(path: PathLike, options?: BaseEncodingOptions | BufferEncoding | null): Promise<string>;
468
469 /**
470 * Asynchronous realpath(3) - return the canonicalized absolute pathname.
471 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
472 * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
473 */
474 function realpath(path: PathLike, options: BufferEncodingOption): Promise<Buffer>;
475
476 /**
477 * Asynchronous realpath(3) - return the canonicalized absolute pathname.
478 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
479 * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
480 */
481 function realpath(path: PathLike, options?: BaseEncodingOptions | BufferEncoding | null): Promise<string | Buffer>;
482
483 /**
484 * Asynchronously creates a unique temporary directory.
485 * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory.
486 * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
487 */
488 function mkdtemp(prefix: string, options?: BaseEncodingOptions | BufferEncoding | null): Promise<string>;
489
490 /**
491 * Asynchronously creates a unique temporary directory.
492 * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory.
493 * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
494 */
495 function mkdtemp(prefix: string, options: BufferEncodingOption): Promise<Buffer>;
496
497 /**
498 * Asynchronously creates a unique temporary directory.
499 * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory.
500 * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
501 */
502 function mkdtemp(prefix: string, options?: BaseEncodingOptions | BufferEncoding | null): Promise<string | Buffer>;
503
504 /**
505 * Asynchronously writes data to a file, replacing the file if it already exists.
506 * It is unsafe to call `fsPromises.writeFile()` multiple times on the same file without waiting for the `Promise` to be resolved (or rejected).
507 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
508 * URL support is _experimental_.
509 * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically.
510 * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string.
511 * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag.
512 * If `encoding` is not supplied, the default of `'utf8'` is used.
513 * If `mode` is not supplied, the default of `0o666` is used.
514 * If `mode` is a string, it is parsed as an octal integer.
515 * If `flag` is not supplied, the default of `'w'` is used.
516 */
517 function writeFile(
518 path: PathLike | FileHandle,
519 data: string | Uint8Array,
520 options?: BaseEncodingOptions & { mode?: Mode | undefined, flag?: OpenMode | undefined } | BufferEncoding | null
521 ): Promise<void>;
522
523 /**
524 * Asynchronously append data to a file, creating the file if it does not exist.
525 * @param file A path to a file. If a URL is provided, it must use the `file:` protocol.
526 * URL support is _experimental_.
527 * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically.
528 * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string.
529 * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag.
530 * If `encoding` is not supplied, the default of `'utf8'` is used.
531 * If `mode` is not supplied, the default of `0o666` is used.
532 * If `mode` is a string, it is parsed as an octal integer.
533 * If `flag` is not supplied, the default of `'a'` is used.
534 */
535 function appendFile(
536 path: PathLike | FileHandle,
537 data: string | Uint8Array,
538 options?: BaseEncodingOptions & { mode?: Mode | undefined, flag?: OpenMode | undefined } | BufferEncoding | null
539 ): Promise<void>;
540
541 /**
542 * Asynchronously reads the entire contents of a file.
543 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
544 * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically.
545 * @param options An object that may contain an optional flag.
546 * If a flag is not provided, it defaults to `'r'`.
547 */
548 function readFile(path: PathLike | FileHandle, options?: { encoding?: null | undefined, flag?: OpenMode | undefined } | null): Promise<Buffer>;
549
550 /**
551 * Asynchronously reads the entire contents of a file.
552 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
553 * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically.
554 * @param options An object that may contain an optional flag.
555 * If a flag is not provided, it defaults to `'r'`.
556 */
557 function readFile(path: PathLike | FileHandle, options: { encoding: BufferEncoding, flag?: OpenMode | undefined } | BufferEncoding): Promise<string>;
558
559 /**
560 * Asynchronously reads the entire contents of a file.
561 * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
562 * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically.
563 * @param options An object that may contain an optional flag.
564 * If a flag is not provided, it defaults to `'r'`.
565 */
566 function readFile(path: PathLike | FileHandle, options?: BaseEncodingOptions & { flag?: OpenMode | undefined } | BufferEncoding | null): Promise<string | Buffer>;
567
568 function opendir(path: PathLike, options?: OpenDirOptions): Promise<Dir>;
569}
570declare module 'node:fs/promises' {
571 export * from 'fs/promises';
572}