/** * Interactive keeper selection for `ref duplicates --fix` (#108). * * Mirrors `src/features/check/fix-interaction.ts`: an Ink `Select` per group, TTY only. Which * record to keep is a judgement call the tool cannot make — `suggestKeeper` only decides which * option is pre-selected. */ import type { CslItem } from "../../core/csl-json/types.js"; import type { ILibrary } from "../../core/library-interface.js"; import type { DuplicateGroup } from "./scanner.js"; export interface DuplicateFixResult { /** Groups presented to the user */ groups: number; /** Groups where a keeper was chosen and pointers were written */ fixed: number; /** Groups the user skipped or cancelled out of */ skipped: number; /** References that now point at a keeper */ marked: string[]; /** References that could not be marked, with the reason */ failed: { id: string; error: string; }[]; } /** One-line description of a candidate, enough to tell versions of the same work apart. */ export declare function describeCandidate(item: CslItem, suggested: boolean): string; /** Header naming what put the group together. */ export declare function describeGroup(group: DuplicateGroup): string; /** * Walk the groups, asking which reference to keep, and point the rest at it. * * @param groups - Groups from a scan * @param library - The library to modify */ export declare function runDuplicateFixInteraction(groups: DuplicateGroup[], library: ILibrary): Promise; //# sourceMappingURL=fix-interaction.d.ts.map