/** * Session retention and cleanup manager * Handles automated cleanup of session files based on configurable policies */ import type { SessionSummary } from '../types/session.types.js'; import { type BaseCleanupResult, type BaseFileInfo, BaseRetentionManager, type BaseRetentionPolicy, type RetentionLogger } from '../utils/base-retention-manager.js'; export interface SessionCleanupResult extends BaseCleanupResult { compressedSessions: string[]; deletedSessions: string[]; } export interface SessionFileInfo extends BaseFileInfo { session: SessionSummary; sessionId: string; } export type SessionRetentionPolicy = BaseRetentionPolicy; /** * Session retention manager extending the base retention manager */ export declare class SessionRetentionManager extends BaseRetentionManager { protected readonly logger: RetentionLogger; /** * Analyse session directory and return session file information */ analyzeSessionDirectory(sessionDir: string, sessions: SessionSummary[]): Promise; /** * Execute cleanup based on retention policies */ cleanup(sessionDir: string, sessions: SessionSummary[]): Promise; /** * Apply age-based cleanup: delete sessions older than maxAgeDays */ private applyAgeBasedCleanup; /** * Apply size-based cleanup: keep total size under maxSizeMB */ private applySizeBasedCleanup; /** * Apply count-based cleanup: keep maximum maxCount sessions */ private applyCountBasedCleanup; /** * Apply compression policy: compress sessions older than compressAfterDays */ private applySessionCompressionPolicy; /** * Delete a session file and its associated snapshot */ private deleteSessionWithSnapshot; protected deleteItem(item: SessionFileInfo): Promise; protected getItemAgeDays(item: SessionFileInfo): number; protected getItemDisplayId(item: SessionFileInfo): string; protected recordCompression(item: SessionFileInfo, result: SessionCleanupResult): void; protected recordDeletion(item: SessionFileInfo, result: SessionCleanupResult): void; } //# sourceMappingURL=retention-manager.d.ts.map