export interface KnownBranchesState { recorded_at: string; branches: string[]; } export interface BranchSweepResult { /** True on the very first run for a project — state file was just created. */ initial_record: boolean; /** Current local branch list, sorted. */ current_branches: string[]; /** Branches present in the previous snapshot but absent now, sorted. */ deleted_branches: string[]; /** When the previous snapshot was taken (null on initial_record). */ state_recorded_at: string | null; /** Whether branch enumeration succeeded. False = no-op (stat-quo state). */ enumerated: boolean; } export declare function readKnownBranches(twiningDir: string): KnownBranchesState | null; /** * Diff current branches against the recorded snapshot. The state file is * updated only when `commit: true` — preview passes ({ execute: false } in * housekeeping) compute the diff but leave the snapshot untouched, otherwise * a dry-run would silently advance the baseline and consume deletions * before the user has a chance to act on them. * * - First-ever run, commit=true: writes the snapshot, initial_record=true, no deletions. * - First-ever run, commit=false: still reports initial_record=true (so callers * know there's no prior baseline) but does NOT write the file. * - Subsequent run with no changes: returns empty deletion set. * - Subsequent run with deletions: returns the deleted branches. * - Branch enumeration failure (non-git, git missing): returns enumerated=false * without touching the state file. */ export declare function detectDeletedBranches(twiningDir: string, projectRoot: string, commit?: boolean): BranchSweepResult; //# sourceMappingURL=branch-watcher.d.ts.map