import { Effect } from "effect"; import type { FilesystemError } from "../effects/index.js"; /** * Filesystem service interface * * @purity SHELL * @effect Filesystem I/O */ export interface FilesystemService { /** * Checks if file exists * * @purity SHELL * @effect Filesystem read * @complexity O(1) */ readonly fileExists: (filePath: string) => Effect.Effect; /** * Reads directory contents * * @purity SHELL * @effect Filesystem read * @complexity O(n) where n = number of files */ readonly readDirectory: (dirPath: string) => Effect.Effect; /** * Finds files matching pattern * * @purity SHELL * @effect Filesystem read * @complexity O(n) where n = number of files */ readonly findFiles: (dirPath: string, pattern: RegExp) => Effect.Effect; /** * Resolves module path * * @purity SHELL * @effect Filesystem read * @complexity O(1) */ readonly resolveModulePath: (fromPath: string, modulePath: string) => Effect.Effect; } /** * Creates filesystem service implementation * * @returns Filesystem service * * @purity SHELL * @effect Service factory * @complexity O(1) */ export declare const makeFilesystemService: () => FilesystemService; //# sourceMappingURL=filesystem.d.ts.map