export type WriteFileAtomicOptions = { readonly encoding?: BufferEncoding; }; export type FileChangeToken = { readonly mtimeMs: number; readonly size: number; }; export type TextFileSnapshot = { readonly path: string; readonly text: string; readonly token: FileChangeToken; }; export declare class AtomicWriteConflictError extends Error { readonly targetPath: string; constructor(targetPath: string); } export declare class PrivateFilePermissionError extends Error { readonly targetPath: string; readonly expectedMode: number; readonly actualMode: number; constructor(targetPath: string, expectedMode: number, actualMode: number); } export declare function writeFileAtomic(targetPath: string, data: string, options?: WriteFileAtomicOptions): void; export declare function writePrivateFileAtomic(targetPath: string, data: string, options?: WriteFileAtomicOptions): void; export declare function ensurePrivateDirectory(targetPath: string): void; export declare function supportsPosixFileModes(platform?: NodeJS.Platform): boolean; export declare function readTextFileSnapshot(targetPath: string, options?: WriteFileAtomicOptions): TextFileSnapshot; export declare function writeFileAtomicIfUnchanged(snapshot: TextFileSnapshot, data: string, options?: WriteFileAtomicOptions): void; export declare function writeFileAtomicIfTokenUnchanged(targetPath: string, expectedToken: FileChangeToken | null, data: string, options?: WriteFileAtomicOptions): FileChangeToken; export declare function fileChangeToken(targetPath: string): FileChangeToken | null;