import type { Stats } from 'fs-extra'; import type { IFileSystem } from './IFileSystem.js'; export interface IFileSystemService { // File operations readFile(filePath: string): Promise; writeFile(filePath: string, content: string): Promise; exists(filePath: string): Promise; stat(filePath: string): Promise; isFile(filePath: string): Promise; // Directory operations readDir(dirPath: string): Promise; ensureDir(dirPath: string): Promise; isDirectory(filePath: string): Promise; // File watching watch(path: string, options?: { recursive?: boolean }): AsyncIterableIterator<{ filename: string; eventType: string }>; // Working directory getCwd(): string; // Path operations dirname(filePath: string): string; // Command execution executeCommand(command: string, options?: { cwd?: string }): Promise<{ stdout: string; stderr: string }>; // FileSystem management setFileSystem(fileSystem: IFileSystem): void; getFileSystem(): IFileSystem; }