/** * Return the filenames to prune: everything except the newest `keep` docs by * lexicographic-descending order. The `current` (lastHandoff) filename is * ALWAYS retained — a belt-and-suspenders invariant so the active handoff can * never be deleted, even if it would otherwise fall outside the newest `keep`. * * Lexicographic-descending order is deterministic and offline: SESSION names * carry an ISO date prefix (`SESSION-YYYY-MM-DD[-label].md`), so descending * string order is chronological at day granularity, with intra-day label ties * broken alphabetically. The returned list preserves that descending order. * * Pure: no filesystem access, no side effects. */ export declare function selectPrunable(filenames: readonly string[], keep: number, current: string): string[]; /** * Impure companion to `selectPrunable`: read the handoff `dir`, select the * `SESSION-*.md` docs to prune (keeping the newest `retain` plus `current`), * `unlink` them, and return the pruned filenames. The caller (run-handoff) * invokes this best-effort and swallows any throw — it must never fail a * handoff write. Signature matches the injectable `prune` seam. */ export declare function pruneHandoffDir(dir: string, retain: number, current: string): Promise; //# sourceMappingURL=retention.d.ts.map