/// <reference types="node" />
/// <reference types="node" />
import { IFileSystem, IFileSystemOptions, IFileSystemDeps, IFileOperationOptions } from "./interfaces/IFileSystem";
import { BaseService } from "@/types/services";
export declare class FileSystem extends BaseService implements IFileSystem {
    private readonly deps;
    private readonly debug;
    constructor(deps: IFileSystemDeps, options?: IFileSystemOptions);
    initialize(): Promise<void>;
    cleanup(): void;
    private logDebug;
    private handleError;
    statSync(path: string): {
        mtime: Date;
    };
    readFileSync(filePath: string, encoding?: BufferEncoding): string;
    writeFileSync(filePath: string, data: string | Buffer, options?: IFileOperationOptions): void;
    exists(path: string): boolean;
    isReadable(filePath: string): boolean;
    isWritable(filePath: string): boolean;
    readFile(filePath: string, options?: IFileOperationOptions): Promise<string>;
    writeFile(filePath: string, data: string | Buffer, options?: IFileOperationOptions): Promise<void>;
    deleteFile(filePath: string): Promise<void>;
    createDirectory(dirPath: string, recursive?: boolean): Promise<void>;
    resolvePath(...paths: string[]): string;
    joinPath(...paths: string[]): string;
    getRelativePath(from: string, to: string): string;
    getDirName(filePath: string): string;
    getBaseName(filePath: string): string;
    getExtension(filePath: string): string;
    isAbsolute(filePath: string): boolean;
    dirname(filePath: string): string;
    basename(filePath: string): string;
    extname(filePath: string): string;
    validatePath(filePath: string, checkExists?: boolean): void;
}
