import type { FileSystemNode, FileMetadata, IFilesystem } from '../types'; import type { IStorageAdapter } from './IStorageAdapter'; /** * In-memory filesystem implementing IFilesystem. * Zero DOM/node dependencies — the portable, edge/browser/node-safe default backend. * Persistence is a no-op here; persistent backends override persist()/load(). */ export declare class MemFilesystem implements IFilesystem { protected root: FileSystemNode; protected cwd: string; private changeListeners; private cwdChangeListeners; constructor(); onFilesystemChange(listener: () => void): () => void; onCwdChange(listener: (cwd: string) => void): () => void; protected notifyChange(): void; protected notifyCwdChange(): void; private createNode; protected getNode(path: string): Promise; protected getParentNode(path: string): Promise; resolvePath(path: string, cwd?: string): string; getCwd(): string; setCwd(path: string): void; readFile(path: string): Promise; writeFile(path: string, content: string): Promise; deleteFile(path: string): Promise; readDir(path: string): Promise; createDir(path: string): Promise; exists(path: string): Promise; stat(path: string): Promise; isDirectory(path: string): Promise; isFile(path: string): Promise; getNodeType(path: string): Promise<'file' | 'directory' | null>; /** No-op for the in-memory backend; persistent backends override. */ protected persist(): Promise; /** No-op for the in-memory backend; persistent backends override. */ load(): Promise; initializeDefaultStructure(): Promise; protected serializeNode(node: FileSystemNode): any; protected deserializeNode(data: any): FileSystemNode; } /** * Browser-persistent filesystem: in-memory tree mirrored to IndexedDB. * Touches the `indexedDB` global only inside persist()/load() — importing this * module stays edge-safe; it only fails if instantiated+used without IndexedDB. */ export declare class IndexedDbFilesystem extends MemFilesystem { private dbName; private storeName; private openDB; protected persist(): Promise; load(): Promise; } /** * Pluggable-persistence filesystem: delegates durability to an IStorageAdapter * (IndexedDB / localStorage / memory). This is the default the Vue terminal app * constructs (`new VirtualFilesystem(storageAdapter)`); back-compat no-arg * construction falls back to the IndexedDB adapter. */ export declare class VirtualFilesystem extends MemFilesystem { private storage; constructor(storage?: IStorageAdapter); persist(): Promise; load(): Promise; } //# sourceMappingURL=Filesystem.d.ts.map