import { type PresenceRecord } from '../awareness/presence.js'; export type ExecFileFn = (file: string, args: string[], opts?: { cwd?: string; maxBuffer?: number; timeout?: number; }) => Promise<{ stdout: string; stderr: string; }>; type WorktreeVerdict = 'empty' | 'stale-clean' | 'stale-dirty' | 'locked' | 'active' | 'orphaned-dir' | 'orphaned-dir-preserved' | 'orphaned-registration' | 'dead-owner'; export interface SweepOptions { execFile: ExecFileFn; repoRoot: string; dryRun?: boolean; maxAgeDaysClean?: number; maxAgeDaysDirty?: number; scope?: 'interactive' | 'diagnose' | 'all'; telemetryPath?: string; lockPath?: string; bypassSoftLaunch?: boolean; readPresence?: () => Promise; } interface SweepCandidateSummary { path: string; verdict: WorktreeVerdict; owner: 'interactive' | 'diagnose' | 'unknown'; ageMs: number; } export interface SweepResult { removed: string[]; warnings: string[]; dryRun: boolean; candidates: SweepCandidateSummary[]; contested?: boolean; } export declare const MIN_EMPTY_AGE_MS = 3600000; export declare function runSweep(options: SweepOptions): Promise; export {};