import type { OpRecord } from '@struktoai/mirage-core/observe/record'; import type { Ops } from '@struktoai/mirage-core/ops/ops'; import type { Session } from '@struktoai/mirage-core/workspace/session/session'; import { type FuseAttr, MountCore } from './core.ts'; export type { FuseAttr }; export interface MirageFSOptions { rootPrefix?: string; /** * Bind every FUSE op to this session's mount grants. The kernel-tier * primitive: bind-mount the tree into a container and the narrowing * travels with it. Enforcement happens inside dispatch/Ops via the * session context, so binding at the op entry point is sufficient. */ session?: Session; } /** * libfuse adapter over MountCore. * * Owns exactly the FUSE-specific concerns: the `@zkochan/fuse-native` * callback signatures and the translation of mirage-native errors into * negative errno codes. All filesystem semantics live in MountCore, so a * non-FUSE adapter can reuse them unchanged. Mirrors Python's `MirageFS`. */ export declare class MirageFS { readonly core: MountCore; constructor(ops: Ops, options?: MirageFSOptions); /** Drain and return accumulated op records (mirrors Python's drainOps). */ drainOps(): OpRecord[]; ops(): Record; private getattr; private fgetattr; private readdir; private read; private write; private create; private mkdir; private readlink; private symlink; private unlink; private rename; private rmdir; private truncate; private statfs; private chmod; private chown; private utimens; private access; private setxattr; private getxattr; private listxattr; private removexattr; private validate; private open; private release; private flush; private fsync; } //# sourceMappingURL=fs.d.ts.map