import { CleanerModule, CacheInfo, CacheCategory, CategoryBreakdownEntry, ClearResult, CacheType, CacheSelectionCriteria } from "../types"; export declare abstract class BaseCleaner implements CleanerModule { abstract name: string; abstract type: CacheType; abstract description: string; abstract isAvailable(): Promise; abstract getCacheInfo(): Promise; /** * Get detailed cache categories with metadata */ getCacheCategories(): Promise; /** * Check if a path is protected */ protected isProtectedPath(path: string, protectedPaths?: string[]): boolean; /** * Filter paths to exclude protected ones */ protected filterProtectedPaths(paths: string[], protectedPaths?: string[]): string[]; /** * Clear cache with selection criteria */ clear(dryRun?: boolean, criteria?: CacheSelectionCriteria, _cacheInfo?: CacheInfo, protectedPaths?: string[]): Promise; /** * Clear specific categories */ clearByCategory(categoryIds: string[], dryRun?: boolean, _cacheInfo?: CacheInfo, protectedPaths?: string[], allowManualIds?: string[]): Promise; /** * Build a per-category breakdown row, reusing the size the cleaner already * computed. effectiveSafety() resolves the tier the same way the manual * consent gate does, so the displayed badge and the gate never disagree. */ protected toBreakdownEntry(category: CacheCategory): CategoryBreakdownEntry; /** * Filter categories based on criteria */ protected filterCategories(categories: CacheCategory[], criteria?: CacheSelectionCriteria): CacheCategory[]; /** * Get directory size in bytes */ protected getDirectorySize(path: string): Promise; /** * Clear a specific path */ protected clearPath(path: string): Promise; /** * Detect if a path has been recently used */ protected isRecentlyUsed(path: string, days?: number): boolean; /** * Detect if a path is project-specific */ protected isProjectSpecific(path: string): boolean; /** * Get cache priority based on path and usage */ protected getCachePriority(path: string): "critical" | "important" | "normal" | "low"; /** * Detect use case based on path patterns */ protected detectUseCase(path: string): "development" | "testing" | "production" | "experimental" | "archived"; } //# sourceMappingURL=BaseCleaner.d.ts.map