export type SafetyTier = "safe" | "probably-safe" | "caution" | "manual"; export type AppCacheGroupBy = "app" | "tier" | "kind" | "none"; export type AppCacheGroupAxis = "tier" | "kind" | "app"; export interface CacheCategory { id: string; name: string; description: string; paths: string[]; size?: number; lastAccessed?: Date; lastModified?: Date; priority: "critical" | "important" | "normal" | "low"; safety?: SafetyTier; useCase: "development" | "testing" | "production" | "experimental" | "archived"; isProjectSpecific?: boolean; projectPath?: string; ageInDays?: number; appKey?: string; } export interface CacheInfo { name: string; type: CacheType; description: string; paths: string[]; isInstalled: boolean; size?: number; lastModified?: Date; categories?: CacheCategory[]; totalSize?: number; oldestCache?: Date; newestCache?: Date; } export type CacheType = "package-manager" | "build-tool" | "browser" | "ide" | "system" | "other"; export interface CacheSelectionCriteria { olderThanDays?: number; newerThanDays?: number; largerThanMB?: number; smallerThanMB?: number; useCases?: Array<"development" | "testing" | "production" | "experimental" | "archived">; priorities?: Array<"critical" | "important" | "normal" | "low">; projectSpecific?: boolean; categories?: string[]; safetyTiers?: SafetyTier[]; allowManualIds?: string[]; } export interface CategoryBreakdownEntry { id: string; name: string; size: number; safety: SafetyTier; appKey?: string; ageInDays?: number; } export interface ClearResult { name: string; success: boolean; sizeBefore?: number; sizeAfter?: number; error?: string; clearedPaths: string[]; clearedCategories?: string[]; categoryBreakdown?: CategoryBreakdownEntry[]; } export interface ToolGranularSettings { enabled: boolean; categories?: { [categoryId: string]: { enabled: boolean; autoClean?: boolean; maxAge?: number; maxSize?: number; }; }; defaultSelectionCriteria?: CacheSelectionCriteria; display?: { expand?: boolean; groupBy?: AppCacheGroupAxis[]; topN?: number; }; exclude?: string[]; } export interface UserConfig { activeProfile?: string; protectedPaths?: string[]; enabledCaches: { packageManagers: boolean; buildTools: boolean; browsers: boolean; ides: boolean; system: boolean; }; tools: { npm: boolean; yarn: boolean; pnpm: boolean; bun: boolean; pip: boolean; cargo: boolean; poetry: boolean; pipenv: boolean; cocoapods: boolean; swiftpm: boolean; nuget: boolean; brew: boolean; nix: boolean; webpack: boolean; vite: boolean; nx: boolean; turbo: boolean; flutter: boolean; "node-gyp": boolean; "go-build": boolean; maven: boolean; playwright: boolean; chrome: boolean; firefox: boolean; vscode: boolean; xcode: boolean; androidstudio: boolean; jetbrains: boolean; windsurf: boolean; cursor: boolean; zed: boolean; docker: boolean; gradle: boolean; "universal-binary": boolean; "app-caches"?: boolean; tmp?: boolean; }; toolSettings?: { [toolName: string]: ToolGranularSettings; }; cachePolicies?: { autoCleanOlderThan?: number; preserveRecentlyUsed?: number; preserveProjectSpecific?: boolean; preserveCriticalPriority?: boolean; defaultUseCase?: "development" | "testing" | "production" | "experimental" | "archived"; }; safety: { requireConfirmation: boolean; dryRunDefault: boolean; backupBeforeClearing: boolean; excludeSystemCritical: boolean; preserveActiveDevelopment?: boolean; maxTier?: SafetyTier; }; customPaths: string[]; output: { verbose: boolean; showSizes: boolean; useColors: boolean; quiet?: boolean; format?: "json" | "text"; showCategories?: boolean; showRecency?: boolean; emojis?: "on" | "off" | "minimal"; }; scheduler?: { enabled: boolean; schedule?: string; lastRun?: string; nextRun?: string; }; autoUpdate?: { enabled: boolean; checkIntervalHours?: number; lastCheck?: string; }; } export interface CleanerModule { name: string; type: CacheType; description: string; isAvailable: () => Promise; getCacheInfo: () => Promise; getCacheCategories?: () => Promise; clear: (dryRun?: boolean, criteria?: CacheSelectionCriteria, cacheInfo?: CacheInfo, protectedPaths?: string[]) => Promise; clearByCategory?: (categoryIds: string[], dryRun?: boolean, cacheInfo?: CacheInfo, protectedPaths?: string[], allowManualIds?: string[]) => Promise; } export interface CommandOptions { all?: boolean; dryRun?: boolean; verbose?: boolean; force?: boolean; types?: string[]; exclude?: string[]; include?: string[]; subCaches?: string[]; olderThan?: string; newerThan?: string; largerThan?: string; smallerThan?: string; useCase?: string; priority?: string; categories?: string[]; showCategories?: boolean; groupBy?: string; summary?: boolean; config?: boolean; sizes?: boolean; profile?: string; safety?: string; allowManual?: string[]; } export interface CacheSizeInfo { total: number; byType: Record; byTool: Record; } //# sourceMappingURL=index.d.ts.map