/** One step of the edit script: a run kept on both sides, removed from the left, or added on the right. */ export type Edit = readonly ['=', number, number] | readonly ['-', number] | readonly ['+', number]; /** * The edit script between two token columns. * * Myers' search finds the shortest one, and is bounded: past `limit` rounds it * stops, since its trace grows as the square of the rounds. One rewritten * section and a few lines that changed further down add up past it on a long * page, and the edit is still local, so the search giving up is no reason to * stop pairing the rows the edit only moved. The columns are then split where * they agree on a run that occurs once in each, as patience diff does: the * longest chain of such runs in the same order on both sides is kept, and each * stretch between two of them is diffed alone, where runs once repeated may * occur once. A stretch with no such run and no shortest edit within `limit` is * one band, every run of it removed and added, which `pairing` compares by * position within the band and `explainsMore` weighs against position. * * The split spends at most what the failed search could have: `limit` steps * for each run of the two columns, counting a diagonal Myers visits, a run it * compares, and a run the split counts. A stretch reached once that is spent is * one band, so no input costs more than twice the search alone, however deep * the stretches nest. */ export declare function edits(left: Float64Array, right: Float64Array, limit: number): Edit[]; //# sourceMappingURL=edit-script.d.ts.map