/** * Task staleness detection - identify tasks that haven't been updated. * Ported from lib/tasks/staleness.sh * * @epic T4454 * @task T4529 */ import type { Task } from '@cleocode/contracts'; /** Staleness thresholds in days. */ export interface StalenessThresholds { /** Days before a task is considered stale. */ stale: number; /** Days before a task is critically stale. */ critical: number; /** Days before a task is considered abandoned. */ abandoned: number; } /** Default thresholds. */ export declare const DEFAULT_THRESHOLDS: StalenessThresholds; /** Staleness classification. */ export type StalenessLevel = 'fresh' | 'stale' | 'critical' | 'abandoned'; /** Staleness assessment for a single task. */ export interface StalenessInfo { taskId: string; level: StalenessLevel; daysSinceUpdate: number; lastActivity: string; } /** * Get the most recent activity timestamp for a task. */ export declare function getLastActivity(task: Task): string; /** * Classify staleness level for a task. */ export declare function classifyStaleness(task: Task, thresholds?: StalenessThresholds): StalenessLevel; /** * Get staleness info for a single task. */ export declare function getStalenessInfo(task: Task, thresholds?: StalenessThresholds): StalenessInfo; /** * Find all stale tasks (stale, critical, or abandoned). */ export declare function findStaleTasks(tasks: Task[], thresholds?: StalenessThresholds): StalenessInfo[]; /** * Get staleness summary statistics. */ export interface StalenessSummary { total: number; fresh: number; stale: number; critical: number; abandoned: number; } export declare function getStalenessSummary(tasks: Task[], thresholds?: StalenessThresholds): StalenessSummary; //# sourceMappingURL=staleness.d.ts.map