export type DocxMoveRevisionRole = 'from' | 'to'; export interface DocxMoveRevisionRegistration { kind: 'move-from' | 'move-to'; wireId: number; id: number; author: string; date: string; rangeId?: string; rangeName?: string; } export interface DocxMoveRevisionPatch { wireId: number; id: number; role: DocxMoveRevisionRole; author: string; date: string; rangeId?: string; rangeName?: string; } /** * Allocates transient revision IDs while the `docx` package creates its * ordinary `w:ins`/`w:del` wrappers. The post-pack patcher changes those * wrappers to native `w:moveFrom`/`w:moveTo` elements and restores the shared * logical revision ID. Negative wire IDs cannot collide with the positive * IDs emitted for ordinary tracked changes. */ export declare class DocxMoveRevisionPatchCollector { readonly patches: DocxMoveRevisionPatch[]; private readonly registrations; private nextWireId; register(element: HTMLElement, id: number, revisionDate?: string): DocxMoveRevisionRegistration | null; } /** * Converts the transient wrappers emitted by `docx` into native Word move * revisions. Every registered side must be emitted at least once; a missing * side is treated as a programming or package-generation error rather than * silently producing a half-move that Word would interpret differently. */ export declare function patchDocxMoveRevisions(buffer: ArrayBuffer, patches: readonly DocxMoveRevisionPatch[]): Promise;