import { Context, Effect, Layer } from "effect"; import type { FilesystemError } from "../effects/errors.js"; /** * Filesystem service interface with Effect-based operations * * @purity SHELL * @effect All operations return Effect for explicit error handling */ export interface FilesystemService { readonly readDirectory: (dirPath: string) => Effect.Effect; readonly fileExists: (filePath: string) => Effect.Effect; readonly resolveRelativePath: (from: string, to: string) => Effect.Effect; readonly getFileExtension: (filePath: string) => Effect.Effect; } declare const FilesystemServiceTag_base: Context.TagClass; /** * Filesystem service tag for dependency injection * * @purity SHELL */ export declare class FilesystemServiceTag extends FilesystemServiceTag_base { } /** * Creates Filesystem service implementation * * @returns Service implementation * * @purity SHELL * @effect Creates service with filesystem effects * @complexity O(1) for service creation * @throws Never - все ошибки типизированы в Effect */ export declare const makeFilesystemService: () => FilesystemService; /** * Creates Filesystem service layer * * @returns Service layer for dependency injection * * @purity SHELL * @effect Creates Layer for Effect composition * @complexity O(1) * @throws Never */ export declare const makeFilesystemServiceLayer: () => Layer.Layer; export {}; //# sourceMappingURL=filesystem-effect.d.ts.map