import type * as fs from 'node:fs'; import type { V_Context } from '../context.js'; import type { FileSystem } from '../internal/filesystem.js'; import type { InodeLike } from '../internal/inode.js'; import { type ExceptionExtra } from 'kerium'; import { type AbsolutePath } from '../path.js'; /** * @internal @hidden */ export type MountObject = Record; /** * The map of mount points * @category Backends and Configuration * @internal */ export declare const mounts: Map; /** * Mounts the file system at `mountPoint`. * @category Backends and Configuration * @internal */ export declare function mount(this: V_Context, mountPoint: string, fs: FileSystem): void; /** * Unmounts the file system at `mountPoint`. * @category Backends and Configuration */ export declare function umount(this: V_Context, mountPoint: string): void; /** * @internal @hidden */ export interface ResolvedMount { fs: FileSystem; path: string; mountPoint: string; root: string; } /** * @internal @hidden */ export interface ResolvedPath extends ResolvedMount { /** The real, absolute path */ fullPath: string; /** Stats */ stats?: InodeLike; } /** * Gets the internal `FileSystem` for the path, then returns it along with the path relative to the FS' root * @internal @hidden */ export declare function resolveMount(path: string, ctx: V_Context, extra?: ExceptionExtra): ResolvedMount; /** * @internal @hidden */ export declare function _statfs(fs: FileSystem, bigint?: T): T extends true ? fs.BigIntStatsFs : fs.StatsFs; /** * Change the root path * @category Backends and Configuration */ export declare function chroot(this: V_Context, path: string): void; export type FileContents = ArrayBufferView | string; /** * @internal @hidden Used for the internal `_open` functions */ export interface OpenOptions { flag: fs.OpenMode; mode?: fs.Mode | null; /** * If true, do not resolve symlinks */ preserveSymlinks?: boolean; /** * If true, allows opening directories */ allowDirectory?: boolean; } export interface MkdirOptions { mode?: number; recursive?: boolean; } export interface ReaddirOptions { recursive?: boolean; }