///
import * as T from "@effect-ts/core/Effect";
import * as L from "@effect-ts/core/Effect/Layer";
import type { Flat } from "@effect-ts/core/Has";
import type { _A } from "@effect-ts/system/Utils";
import * as fs from "fs";
export declare const tagName: (k: K) => `@effect-ts/node/FileSystem/${K}`;
export declare const FSError: (k: K) => import("@effect-ts/system/Case").CaseConstructorTagged<`@effect-ts/node/FileSystem/${K}`, "_tag">;
declare const WriteFileError_base: import("@effect-ts/system/Case").CaseConstructorTagged<"@effect-ts/node/FileSystem/WriteFileError", "_tag">;
export declare class WriteFileError extends WriteFileError_base<{
readonly error: NodeJS.ErrnoException;
readonly file: fs.PathOrFileDescriptor;
readonly data: string | NodeJS.ArrayBufferView;
readonly options: WriteFileOptions;
}> {
}
declare const ReadFileError_base: import("@effect-ts/system/Case").CaseConstructorTagged<"@effect-ts/node/FileSystem/ReadFileError", "_tag">;
export declare class ReadFileError extends ReadFileError_base<{
readonly error: NodeJS.ErrnoException;
readonly path: fs.PathOrFileDescriptor;
readonly flag: string | undefined;
}> {
}
declare const StatError_base: import("@effect-ts/system/Case").CaseConstructorTagged<"@effect-ts/node/FileSystem/StatError", "_tag">;
export declare class StatError extends StatError_base<{
readonly error: NodeJS.ErrnoException;
readonly path: fs.PathLike;
}> {
}
declare const AccessError_base: import("@effect-ts/system/Case").CaseConstructorTagged<"@effect-ts/node/FileSystem/AccessError", "_tag">;
export declare class AccessError extends AccessError_base<{
readonly error: NodeJS.ErrnoException;
readonly path: fs.PathLike;
readonly mode: number | undefined;
}> {
}
declare const RmError_base: import("@effect-ts/system/Case").CaseConstructorTagged<"@effect-ts/node/FileSystem/RmError", "_tag">;
export declare class RmError extends RmError_base<{
readonly error: NodeJS.ErrnoException;
readonly path: fs.PathLike;
readonly options: fs.RmOptions | undefined;
}> {
}
declare const RmDirError_base: import("@effect-ts/system/Case").CaseConstructorTagged<"@effect-ts/node/FileSystem/RmDirError", "_tag">;
export declare class RmDirError extends RmDirError_base<{
readonly error: NodeJS.ErrnoException;
readonly path: fs.PathLike;
readonly options: fs.RmDirOptions | undefined;
}> {
}
declare const FileExistsError_base: import("@effect-ts/system/Case").CaseConstructorTagged<"@effect-ts/node/FileSystem/FileExistsError", "_tag">;
export declare class FileExistsError extends FileExistsError_base<{
readonly error: AccessError;
}> {
}
export declare const FSSymbol: unique symbol;
export interface WriteFileOptions extends Flat {
}
export declare const makeLiveFS: T.UIO<{
readonly serviceId: typeof FSSymbol;
readonly writeFile: (file: fs.PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options: WriteFileOptions) => T.Effect;
readonly readFile: (path: fs.PathOrFileDescriptor, flag?: string | undefined) => T.Effect;
readonly stat: (path: fs.PathLike) => T.Effect;
readonly access: (path: fs.PathLike, mode?: number | undefined) => T.Effect;
readonly fileExists: (path: fs.PathLike) => T.RIO;
readonly rm: (path: fs.PathLike, options?: fs.RmOptions | undefined) => T.Effect;
readonly rmDir: (path: fs.PathLike, options?: fs.RmDirOptions | undefined) => T.Effect;
}>;
export interface FS extends _A {
}
export declare const FS: import("@effect-ts/system/Has").Tag;
export declare const access: (path: fs.PathLike, mode?: number | undefined) => T.Effect, AccessError, void>, fileExists: (path: fs.PathLike) => T.Effect, never, boolean>, readFile: (path: fs.PathOrFileDescriptor, flag?: string | undefined) => T.Effect, ReadFileError, Buffer>, rm: (path: fs.PathLike, options?: fs.RmOptions | undefined) => T.Effect, RmError, void>, rmDir: (path: fs.PathLike, options?: fs.RmDirOptions | undefined) => T.Effect, RmDirError, void>, stat: (path: fs.PathLike) => T.Effect, StatError, fs.Stats>, writeFile: (file: fs.PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options: WriteFileOptions) => T.Effect, WriteFileError, void>;
export declare const LiveFS: L.Layer>;
export {};
//# sourceMappingURL=index.d.ts.map