import type { NodeFsStats, ThreadsafeNodeFS } from "@rspack/binding";
import { type IStats, type IntermediateFileSystem, type OutputFileSystem } from "./util/fs";
declare class ThreadsafeOutputNodeFS implements ThreadsafeNodeFS {
    writeFile: (name: string, content: Buffer) => Promise<void>;
    removeFile: (name: string) => Promise<void>;
    mkdir: (name: string) => Promise<void>;
    mkdirp: (name: string) => Promise<string | void>;
    removeDirAll: (name: string) => Promise<string | void>;
    readDir: (name: string) => Promise<string[] | void>;
    readFile: (name: string) => Promise<Buffer | string | void>;
    stat: (name: string) => Promise<NodeFsStats | void>;
    lstat: (name: string) => Promise<NodeFsStats | void>;
    open: (name: string, flags: string) => Promise<number | void>;
    rename: (from: string, to: string) => Promise<void>;
    close: (fd: number) => Promise<void>;
    write: (fd: number, content: Buffer, position: number) => Promise<number | void>;
    writeAll: (fd: number, content: Buffer) => Promise<number | void>;
    read: (fd: number, length: number, position: number) => Promise<Buffer | void>;
    readUntil: (fd: number, code: number, position: number) => Promise<Buffer | void>;
    readToEnd: (fd: number, position: number) => Promise<Buffer | void>;
    constructor(fs?: OutputFileSystem);
    static __to_binding(fs?: OutputFileSystem): ThreadsafeOutputNodeFS;
    static __to_binding_stat(stat: IStats): NodeFsStats;
}
declare class ThreadsafeIntermediateNodeFS extends ThreadsafeOutputNodeFS {
    constructor(fs?: IntermediateFileSystem);
    static __to_binding(fs?: IntermediateFileSystem): ThreadsafeIntermediateNodeFS;
}
export { ThreadsafeOutputNodeFS, ThreadsafeIntermediateNodeFS };
