import { DcRouterDb } from './classes.dcrouter-db.js'; import { CachedEmail } from './documents/classes.cached.email.js'; /** * Configuration for the cache cleaner */ export interface ICacheCleanerOptions { /** Cleanup interval in milliseconds (default: 1 hour) */ intervalMs?: number; /** Enable verbose logging */ verbose?: boolean; /** Delete externally stored raw payloads before removing a CachedEmail row. */ beforeDeleteCachedEmail?: (cachedEmailArg: CachedEmail) => Promise; } /** * CacheCleaner - Periodically removes expired documents from the cache * * Runs on a configurable interval (default: hourly) and queries each * collection for documents where expiresAt < now(), then deletes them. */ export declare class CacheCleaner { private cleanupInterval; private isRunning; private options; private dcRouterDb; constructor(dcRouterDb: DcRouterDb, options?: ICacheCleanerOptions); /** * Start the periodic cleanup process */ start(): void; /** * Stop the periodic cleanup process */ stop(): void; /** * Run a single cleanup cycle */ runCleanup(): Promise; /** * Clean expired documents from a specific collection using smartdata API */ private cleanExpiredDocuments; /** * Check if the cleaner is running */ isActive(): boolean; /** * Get the cleanup interval in milliseconds */ getIntervalMs(): number; }