/// <reference types="node" />
import fs from 'fs';
export { fs as memfs } from 'memfs';
export { ufs as fs } from 'unionfs';
export declare const realFs: {
    rename: typeof fs.rename;
    renameSync(oldPath: fs.PathLike, newPath: fs.PathLike): void;
    truncate: typeof fs.truncate;
    truncateSync(path: fs.PathLike, len?: number): void;
    ftruncate: typeof fs.ftruncate;
    ftruncateSync(fd: number, len?: number): void;
    chown: typeof fs.chown;
    chownSync(path: fs.PathLike, uid: number, gid: number): void;
    fchown: typeof fs.fchown;
    fchownSync(fd: number, uid: number, gid: number): void;
    lchown: typeof fs.lchown;
    lchownSync(path: fs.PathLike, uid: number, gid: number): void;
    lutimes: typeof fs.lutimes;
    lutimesSync(path: fs.PathLike, atime: string | number | Date, mtime: string | number | Date): void;
    chmod: typeof fs.chmod;
    chmodSync(path: fs.PathLike, mode: fs.Mode): void;
    fchmod: typeof fs.fchmod;
    fchmodSync(fd: number, mode: fs.Mode): void;
    lchmod: typeof fs.lchmod;
    lchmodSync(path: fs.PathLike, mode: fs.Mode): void;
    stat: typeof fs.stat;
    statSync(path: fs.PathLike, options?: fs.StatOptions & {
        bigint?: false;
    }): fs.Stats;
    statSync(path: fs.PathLike, options: fs.StatOptions & {
        bigint: true;
    }): fs.BigIntStats;
    statSync(path: fs.PathLike, options?: fs.StatOptions): fs.Stats | fs.BigIntStats;
    fstat: typeof fs.fstat;
    fstatSync(fd: number, options?: fs.StatOptions & {
        bigint?: false;
    }): fs.Stats;
    fstatSync(fd: number, options: fs.StatOptions & {
        bigint: true;
    }): fs.BigIntStats;
    fstatSync(fd: number, options?: fs.StatOptions): fs.Stats | fs.BigIntStats;
    lstat: typeof fs.lstat;
    lstatSync(path: fs.PathLike, options?: fs.StatOptions & {
        bigint?: false;
    }): fs.Stats;
    lstatSync(path: fs.PathLike, options: fs.StatOptions & {
        bigint: true;
    }): fs.BigIntStats;
    lstatSync(path: fs.PathLike, options?: fs.StatOptions): fs.Stats | fs.BigIntStats;
    link: typeof fs.link;
    linkSync(existingPath: fs.PathLike, newPath: fs.PathLike): void;
    symlink: typeof fs.symlink;
    symlinkSync(target: fs.PathLike, path: fs.PathLike, type?: fs.symlink.Type): void;
    readlink: typeof fs.readlink;
    readlinkSync(path: fs.PathLike, options?: BufferEncoding | fs.BaseEncodingOptions): string;
    readlinkSync(path: fs.PathLike, options: fs.BufferEncodingOption): Buffer;
    readlinkSync(path: fs.PathLike, options?: string | fs.BaseEncodingOptions): string | Buffer;
    realpath: typeof fs.realpath;
    realpathSync: typeof fs.realpathSync;
    unlink: typeof fs.unlink;
    unlinkSync(path: fs.PathLike): void;
    rmdir: typeof fs.rmdir;
    rmdirSync(path: fs.PathLike, options?: fs.RmDirOptions): void;
    rm: typeof fs.rm;
    rmSync(path: fs.PathLike, options?: fs.RmOptions): void;
    mkdir: typeof fs.mkdir;
    mkdirSync(path: fs.PathLike, options: fs.MakeDirectoryOptions & {
        recursive: true;
    }): string;
    mkdirSync(path: fs.PathLike, options?: fs.Mode | (fs.MakeDirectoryOptions & {
        recursive?: false;
    })): void;
    mkdirSync(path: fs.PathLike, options?: fs.Mode | fs.MakeDirectoryOptions): string;
    mkdtemp: typeof fs.mkdtemp;
    mkdtempSync(prefix: string, options?: BufferEncoding | fs.BaseEncodingOptions): string;
    mkdtempSync(prefix: string, options: fs.BufferEncodingOption): Buffer;
    mkdtempSync(prefix: string, options?: string | fs.BaseEncodingOptions): string | Buffer;
    readdir: typeof fs.readdir;
    readdirSync(path: fs.PathLike, options?: BufferEncoding | {
        encoding: BufferEncoding;
        withFileTypes?: false;
    }): string[];
    readdirSync(path: fs.PathLike, options: "buffer" | {
        encoding: "buffer";
        withFileTypes?: false;
    }): Buffer[];
    readdirSync(path: fs.PathLike, options?: BufferEncoding | (fs.BaseEncodingOptions & {
        withFileTypes?: false;
    })): string[] | Buffer[];
    readdirSync(path: fs.PathLike, options: fs.BaseEncodingOptions & {
        withFileTypes: true;
    }): fs.Dirent[];
    close: typeof fs.close;
    closeSync(fd: number): void;
    open: typeof fs.open;
    openSync(path: fs.PathLike, flags: fs.OpenMode, mode?: fs.Mode): number;
    utimes: typeof fs.utimes;
    utimesSync(path: fs.PathLike, atime: string | number | Date, mtime: string | number | Date): void;
    futimes: typeof fs.futimes;
    futimesSync(fd: number, atime: string | number | Date, mtime: string | number | Date): void;
    fsync: typeof fs.fsync;
    fsyncSync(fd: number): void;
    write: typeof fs.write;
    writeSync(fd: number, buffer: NodeJS.ArrayBufferView, offset?: number, length?: number, position?: number): number;
    writeSync(fd: number, string: string, position?: number, encoding?: BufferEncoding): number;
    read: typeof fs.read;
    readSync(fd: number, buffer: NodeJS.ArrayBufferView, offset: number, length: number, position: number): number;
    readSync(fd: number, buffer: NodeJS.ArrayBufferView, opts?: fs.ReadSyncOptions): number;
    readFile: typeof fs.readFile;
    readFileSync(path: number | fs.PathLike, options?: {
        encoding?: null;
        flag?: string;
    }): Buffer;
    readFileSync(path: number | fs.PathLike, options: BufferEncoding | {
        encoding: BufferEncoding;
        flag?: string;
    }): string;
    readFileSync(path: number | fs.PathLike, options?: BufferEncoding | (fs.BaseEncodingOptions & {
        flag?: string;
    })): string | Buffer;
    writeFile: typeof fs.writeFile;
    writeFileSync(path: number | fs.PathLike, data: string | NodeJS.ArrayBufferView, options?: fs.WriteFileOptions): void;
    appendFile: typeof fs.appendFile;
    appendFileSync(file: number | fs.PathLike, data: string | Uint8Array, options?: fs.WriteFileOptions): void;
    watchFile(filename: fs.PathLike, options: {
        persistent?: boolean;
        interval?: number;
    }, listener: (curr: fs.Stats, prev: fs.Stats) => void): void;
    watchFile(filename: fs.PathLike, listener: (curr: fs.Stats, prev: fs.Stats) => void): void;
    unwatchFile(filename: fs.PathLike, listener?: (curr: fs.Stats, prev: fs.Stats) => void): void;
    watch(filename: fs.PathLike, options: BufferEncoding | {
        encoding?: BufferEncoding;
        persistent?: boolean;
        recursive?: boolean;
    }, listener?: (event: "rename" | "change", filename: string) => void): fs.FSWatcher;
    watch(filename: fs.PathLike, options: "buffer" | {
        encoding: "buffer";
        persistent?: boolean;
        recursive?: boolean;
    }, listener?: (event: "rename" | "change", filename: Buffer) => void): fs.FSWatcher;
    watch(filename: fs.PathLike, options: string | {
        encoding?: BufferEncoding;
        persistent?: boolean;
        recursive?: boolean;
    }, listener?: (event: "rename" | "change", filename: string | Buffer) => void): fs.FSWatcher;
    watch(filename: fs.PathLike, listener?: (event: "rename" | "change", filename: string) => any): fs.FSWatcher;
    exists: typeof fs.exists;
    existsSync(path: fs.PathLike): boolean;
    access: typeof fs.access;
    accessSync(path: fs.PathLike, mode?: number): void;
    createReadStream(path: fs.PathLike, options?: BufferEncoding | {
        flags?: string;
        encoding?: BufferEncoding;
        fd?: number;
        mode?: number;
        autoClose?: boolean;
        emitClose?: boolean;
        start?: number;
        end?: number;
        highWaterMark?: number;
    }): fs.ReadStream;
    createWriteStream(path: fs.PathLike, options?: BufferEncoding | {
        flags?: string;
        encoding?: BufferEncoding;
        fd?: number;
        mode?: number;
        autoClose?: boolean;
        emitClose?: boolean;
        start?: number;
        highWaterMark?: number;
    }): fs.WriteStream;
    fdatasync: typeof fs.fdatasync;
    fdatasyncSync(fd: number): void;
    copyFile: typeof fs.copyFile;
    copyFileSync(src: fs.PathLike, dest: fs.PathLike, flags?: number): void;
    writev: typeof fs.writev;
    writevSync(fd: number, buffers: readonly NodeJS.ArrayBufferView[], position?: number): number;
    readv: typeof fs.readv;
    readvSync(fd: number, buffers: readonly NodeJS.ArrayBufferView[], position?: number): number;
    opendirSync(path: string, options?: fs.OpenDirOptions): fs.Dir;
    opendir: typeof fs.opendir;
    promises: typeof fs.promises;
    Stats: typeof fs.Stats;
    Dirent: typeof fs.Dirent;
    Dir: typeof fs.Dir;
    ReadStream: typeof fs.ReadStream;
    WriteStream: typeof fs.WriteStream;
    constants: typeof fs.constants;
    BigIntStats: typeof fs.BigIntStats;
};
export declare function mockFileSystem(): void;
