import { Editor, Operation, Path, Point, Range } from 'slate'; export declare type StringDiff = { start: number; end: number; text: string; }; export declare type TextDiff = { id: number; path: Path; diff: StringDiff; }; /** * Check whether a text diff was applied in a way we can perform the pending action on / * recover the pending selection. */ export declare function verifyDiffState(editor: Editor, textDiff: TextDiff): boolean; export declare function applyStringDiff(text: string, ...diffs: StringDiff[]): string; /** * Remove redundant changes from the diff so that it spans the minimal possible range */ export declare function normalizeStringDiff(targetText: string, diff: StringDiff): StringDiff | null; /** * Return a string diff that is equivalent to applying b after a spanning the range of * both changes */ export declare function mergeStringDiffs(targetText: string, a: StringDiff, b: StringDiff): StringDiff | null; /** * Get the slate range the text diff spans. */ export declare function targetRange(textDiff: TextDiff): Range; /** * Normalize a 'pending point' a.k.a a point based on the dom state before applying * the pending diffs. Since the pending diffs might have been inserted with different * marks we have to 'walk' the offset from the starting position to ensure we still * have a valid point inside the document */ export declare function normalizePoint(editor: Editor, point: Point): Point | null; /** * Normalize a 'pending selection' to ensure it's valid in the current document state. */ export declare function normalizeRange(editor: Editor, range: Range): Range | null; export declare function transformPendingPoint(editor: Editor, point: Point, op: Operation): Point | null; export declare function transformPendingRange(editor: Editor, range: Range, op: Operation): Range | null; export declare function transformTextDiff(textDiff: TextDiff, op: Operation): TextDiff | null; //# sourceMappingURL=diff-text.d.ts.map