/** * Session Cleanup UI - Interactive cleanup with preview and confirmation * * Architecture: Uses dependency injection to receive UIAdapter, * eliminating direct dependency on presentation libraries (inquirer, chalk) */ import type { SessionSummary } from '../types/session.types.js'; import type { UIAdapter } from '../types/ui.types.js'; import { SessionStore } from './store.js'; export interface CleanupCriteria { minAgeDays?: number; minSizeMB?: number; status?: Array<'active' | 'completed' | 'failed' | 'paused'>; } export interface CleanupPreview { criteria: CleanupCriteria; sessionsToDelete: SessionSummary[]; totalSizeBytes: number; } export declare class SessionCleanupUI { private sessionStore; private ui; constructor(ui: UIAdapter, sessionStore?: SessionStore); /** * Interactive cleanup with preview and confirmation */ interactiveCleanup(): Promise; /** * Display session statistics */ private displaySessionStats; /** * Build cleanup criteria from user answers */ private buildCriteriaFromAnswers; /** * Apply minimum age days criteria */ private applyMinAgeDaysCriteria; /** * Apply status criteria */ private applyStatusCriteria; /** * Apply minimum size MB criteria */ private applyMinSizeMBCriteria; /** * Check if size input is valid */ private isValidSizeInput; /** * Check if criteria has no values selected */ private hasNoCriteria; /** * Prompt user for cleanup criteria */ private promptCriteria; /** * Preview cleanup - show what would be deleted */ previewCleanup(criteria: CleanupCriteria): Promise; /** * Get all sessions (public method) */ getAllSessions(): Promise; /** * Display cleanup preview (public method) */ displayPreviewPublic(preview: CleanupPreview): void; /** * Display cleanup preview */ private displayPreview; /** * Confirm cleanup */ private confirmCleanup; /** * Execute cleanup */ private executeCleanup; /** * Cleanup by criteria (non-interactive) */ cleanupByCriteria(criteria: CleanupCriteria, dryRun?: boolean): Promise; /** * Calculate session statistics */ private calculateStats; /** * Get session age in days */ private getSessionAgeDays; /** * Get status with color */ private getStatusColor; } //# sourceMappingURL=session-cleanup-ui.d.ts.map