import type { Result } from "../result/result.js";
import type { Directory } from "./directory.js";
import type { FileNode } from "./file-node.js";
import type { InsertFailureReason } from "./insert-failure-reason.js";
export interface FsStage {
    readonly root: Directory;
    readonly overwrite?: boolean | undefined;
}
export type InsertResult = Result<InsertFailureReason, FsStage>;
export declare function insert(stage: FsStage, path: string, node: FileNode): InsertResult;
export declare function insertFn(path: string, node: FileNode): (fsStage: FsStage) => InsertResult;
export declare function insertSubdirectory(fsStage: FsStage, path: string): InsertResult;
export declare function insertSubdirectoryFn(path: string): (fsStage: FsStage) => InsertResult;
