import type { IDecisionStore } from "../storage/interfaces.js"; export interface AmendCandidateReport { /** Empty-affected_files active decisions actually examined. */ decisions_scanned: number; /** Examined decisions beyond MAX_DECISIONS — rerun after amending to reach them. */ decisions_truncated: number; /** Skipped: scope "project" enumerates the whole repo and cannot be ranked honestly. */ skipped_project_scope: number; /** Skipped: the scope path does not exist (ENOENT) under the project root. */ scope_missing: number; /** Skipped: stat failed for a non-ENOENT reason (permissions, symlink loop). */ scope_unreadable: number; /** Skipped: the scope resolves OUTSIDE the project root ("../" escapes). */ scope_outside_root: number; decisions_with_candidates: Array<{ id: string; summary: string; scope: string; status: string; candidates: Array<{ file: string; overlap: number; }>; /** Set when the scope walk hit MAX_FILES_PER_SCOPE — ranking saw a subset. */ walk_truncated?: boolean; }>; note: string; } /** * Report candidate affected_files for active decisions whose list is empty. * Pure read — the write path is twining_amend, per record, after human or * agent confirmation. */ export declare function reportAmendCandidates(decisionStore: IDecisionStore, projectRoot: string): Promise; //# sourceMappingURL=amend-candidates.d.ts.map