///
///
import "reflect-metadata";
import fs from "fs";
import { IAsyncQueue } from "../models/spt/utils/IAsyncQueue";
import { IUUidGenerator } from "../models/spt/utils/IUuidGenerator";
export declare class VFS {
protected asyncQueue: IAsyncQueue;
protected uuidGenerator: IUUidGenerator;
accessFilePromisify: (path: fs.PathLike, mode?: number) => Promise;
copyFilePromisify: (src: fs.PathLike, dst: fs.PathLike, flags?: number) => Promise;
mkdirPromisify: (path: fs.PathLike, options: fs.MakeDirectoryOptions & {
recursive: true;
}) => Promise;
readFilePromisify: (path: fs.PathLike) => Promise;
writeFilePromisify: (path: fs.PathLike, data: string, options?: any) => Promise;
readdirPromisify: (path: fs.PathLike, options?: BufferEncoding | {
encoding: BufferEncoding;
withFileTypes?: false;
}) => Promise;
statPromisify: (path: fs.PathLike, options?: fs.StatOptions & {
bigint?: false;
}) => Promise;
unlinkPromisify: (path: fs.PathLike) => Promise;
rmdirPromisify: (path: fs.PathLike) => Promise;
constructor(asyncQueue: IAsyncQueue, uuidGenerator: IUUidGenerator);
exists(filepath: fs.PathLike): boolean;
existsAsync(filepath: fs.PathLike): Promise;
copyFile(filepath: fs.PathLike, target: fs.PathLike): void;
copyAsync(filepath: fs.PathLike, target: fs.PathLike): Promise;
createDir(filepath: string): void;
createDirAsync(filepath: string): Promise;
copyDir(filepath: string, target: string, fileExtensions?: string | string[]): void;
copyDirAsync(filepath: string, target: string, fileExtensions: string | string[]): Promise;
readFile(filepath: string): any;
readFileAsync(filepath: string): Promise;
writeFile(filepath: any, data?: string, append?: boolean, atomic?: boolean): void;
writeFileAsync(filepath: any, data?: string, append?: boolean, atomic?: boolean): Promise;
getFiles(filepath: string): string[];
getFilesAsync(filepath: string): Promise;
getDirs(filepath: string): string[];
getDirsAsync(filepath: string): Promise;
removeFile(filepath: string): void;
removeFileAsync(filepath: string): Promise;
removeDir(filepath: string): void;
removeDirAsync(filepath: string): Promise;
private lockFileSync;
private checkFileSync;
private unlockFileSync;
getFileExtension(filepath: string): string;
stripExtension(filepath: string): string;
minifyAllJsonInDirRecursive(filepath: string): Promise;
minifyAllJsonInDirRecursiveAsync(filepath: string): Promise;
getFilesOfType(directory: string, fileType: string, files?: string[]): string[];
}