import type { ApplyDirection, ApplyReport, FileChange, FileChangeOutcome, FileOps } from "./types.js"; export declare function applySnapshot(snap: { changes: FileChange[]; }, direction: ApplyDirection, ops: FileOps): Promise; export declare function mergeReports(reports: ApplyReport[]): ApplyReport; /** * Apply a whole navigation (undo segment reversed, redo segment applied) and * return one merged report. Line counts for modified files are recomputed as * the precise net change across the whole navigation: they diff the starting * content (the file's state when the navigation began) against the ending * content, so lines edited in several turns are counted exactly once. */ export declare function applyNavigation(undo: { changes: FileChange[]; }[], redo: { changes: FileChange[]; }[], ops: FileOps): Promise; export declare function reportToText(report: ApplyReport): string; export declare function describeOutcome(f: FileChangeOutcome): string;