import { CleanerModule, CacheType } from "../types"; /** * Metadata for cleaner registration */ export interface CleanerMetadata { name: string; type: CacheType; description: string; patterns?: string[]; commands?: string[]; platforms?: NodeJS.Platform[]; priority?: number; } /** * Registry for managing cleaners dynamically */ export declare class CleanerRegistry { private static instance; private cleaners; private metadata; private constructor(); static getInstance(): CleanerRegistry; /** * Register a cleaner with metadata */ register(cleaner: CleanerModule, metadata?: CleanerMetadata): void; /** * Register a cleaner class (will be instantiated on demand) */ registerClass(CleanerClass: new () => CleanerModule, metadata?: CleanerMetadata): void; /** * Get a cleaner by name */ getCleaner(name: string): CleanerModule | undefined; /** * Get all registered cleaners */ getAllCleaners(): CleanerModule[]; /** * Get cleaners by type */ getCleanersByType(type: CacheType): CleanerModule[]; /** * Get available cleaners (ones that are installed) */ getAvailableCleaners(): Promise; /** * Auto-detect and register cleaners based on system */ autoDetect(): Promise; /** * Get metadata for a cleaner */ getMetadata(name: string): CleanerMetadata | undefined; /** * Remove a cleaner from the registry */ unregister(name: string): boolean; /** * Clear all registered cleaners */ clear(): void; } export declare const cleanerRegistry: CleanerRegistry; //# sourceMappingURL=CleanerRegistry.d.ts.map