import { CleanupService as KitCleanupService } from 'agent-common'; import type { Db } from '../storage/database.js'; export interface CleanupStats extends Record { agents: number; messages: number; reads: number; channels: number; state: number; feed_events: number; } export interface StaleCleanupStats extends CleanupStats { memberships: number; } export declare class CleanupService extends KitCleanupService { private readonly feedRetentionDays; constructor(db: Db, retentionDays?: number, feedRetentionDays?: number); /** * Delete feed_events older than `maxAgeDays` (default: this.feedRetentionDays). * The activity feed is written on every MCP call and would otherwise grow * unbounded — this is the dedicated retention method for it. * Returns the number of rows deleted. */ cleanupFeedEvents(maxAgeDays?: number): number; /** Mark stale agents offline on server start. * Only affects agents whose heartbeat is older than 2 minutes — * avoids clobbering agents registered by other processes (MCP). */ resetOnStartup(): void; run(): CleanupStats; /** Purge all messages and reads immediately (manual wipe). */ purgeMessages(): number; /** Purge offline agents older than 1 hour (keeps recent ones for name resolution). */ purgeOfflineAgents(): number; /** Purge stale (offline) agents and all their associated data. */ purgeStaleAssociated(): StaleCleanupStats; /** Purge everything: all agents, messages, channels, state, feed. */ purgeEverything(): CleanupStats; } //# sourceMappingURL=cleanup.d.ts.map