import { EventEmitter } from 'events';
import { FileSystemConfig, FileOperationResult, MonitoringConfig, CacheStats } from '../types/filesystem.js';
export declare class EnhancedFileSystemUtilities extends EventEmitter {
    private config;
    private watchers;
    private cache;
    private operationLocks;
    private backupDirectory;
    private initialized;
    constructor(config: FileSystemConfig);
    initialize(): Promise<void>;
    cleanup(): Promise<void>;
    readFile(filePath: string, options?: {
        encoding?: BufferEncoding;
        useCache?: boolean;
        retryAttempts?: number;
    }): Promise<string | Buffer>;
    writeFile(filePath: string, content: string | Buffer, options?: {
        encoding?: BufferEncoding;
        createBackup?: boolean;
        verifyWrite?: boolean;
        atomic?: boolean;
    }): Promise<FileOperationResult>;
    ensureDirectory(dirPath: string, mode?: number): Promise<void>;
    copyFile(source: string, destination: string, options?: {
        overwrite?: boolean;
        preserveTimestamps?: boolean;
        verifyChecksum?: boolean;
    }): Promise<FileOperationResult>;
    moveFile(source: string, destination: string, options?: {
        overwrite?: boolean;
        atomic?: boolean;
    }): Promise<FileOperationResult>;
    deleteFile(filePath: string, options?: {
        createBackup?: boolean;
        force?: boolean;
    }): Promise<FileOperationResult>;
    startWatching(path: string, config?: Partial<MonitoringConfig>): Promise<void>;
    stopWatching(path: string): Promise<void>;
    getCacheStats(): CacheStats;
    clearCache(): void;
    getWatchedPaths(): string[];
    calculateChecksum(filePath: string, algorithm?: string): Promise<string>;
    getFileMetadata(filePath: string): Promise<{
        size: number;
        createdAt: Date;
        modifiedAt: Date;
        accessedAt: Date;
        isDirectory: boolean;
        isFile: boolean;
        permissions: string;
        checksum?: string;
    }>;
    private ensureDirectories;
    private initializeCache;
    private initializeWatching;
    private performMaintenanceTasks;
    private getCachedFile;
    private cacheFile;
    private updateCacheHit;
    private removeCachedFile;
    private evictOldestCacheEntry;
    private evictLargestCacheEntries;
    private writeFileAtomic;
    private verifyWrite;
    private createBackup;
    private cleanupCache;
    private cleanupBackups;
    private handleFileEvent;
    private executeWithRetry;
}
//# sourceMappingURL=enhanced-filesystem-utilities.d.ts.map