/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import type { MaybePromise } from "../util/Promises.js"; import type { Filesystem } from "./Filesystem.js"; /** * Base class for filesystem entries (files and directories). */ export abstract class FilesystemNode { abstract readonly kind: "file" | "directory"; abstract readonly name: string; abstract readonly path: string; /** * Back-reference to the root {@link Filesystem} that owns this node. */ abstract readonly fs: Filesystem; abstract exists(): Promise; abstract stat(): MaybePromise; abstract rename(name: string): Promise; abstract delete(): Promise; } export namespace FilesystemNode { export interface Stat { size: number; mtime: Date; type: "file" | "directory"; } }