import { Node as PMNode, Schema } from 'prosemirror-model'; import { NumberingProperties, StylesDocumentProperties } from '@superdoc/style-engine/ooxml'; import { CommentInput, CommentDiff } from './algorithm/comment-diffing'; import { HeaderFooterState, HeaderFootersDiff } from './algorithm/header-footer-diffing'; import { PartsDiff, PartsState } from './algorithm/parts-diffing'; import { NodeDiff } from './algorithm/generic-diffing'; import { StylesDiff } from './algorithm/styles-diffing'; import { NumberingDiff } from './algorithm/numbering-diffing'; /** * Result payload for document diffing. */ export interface DiffResult { /** Diffs computed from the ProseMirror document structure. */ docDiffs: NodeDiff[]; /** Diffs computed from comment content and metadata. */ commentDiffs: CommentDiff[]; /** Diffs computed from OOXML styles metadata. */ stylesDiff: StylesDiff | null; /** Diffs computed from OOXML numbering metadata. */ numberingDiff: NumberingDiff | null; /** Diffs computed from header/footer parts and section slot refs. */ headerFootersDiff: HeaderFootersDiff | null; /** Diffs computed from OOXML parts and media assets. */ partsDiff: PartsDiff | null; } /** * Computes structural diffs between two ProseMirror documents, emitting insert/delete/modify operations for any block * node (paragraphs, images, tables, etc.). Paragraph mutations include inline text and inline-node diffs so consumers * can reflect character-level and formatting changes as well. * * Diffs are intended to be replayed on top of the old document in reverse order: `pos` marks the cursor location * that should be used before applying the diff at that index. For example, consecutive additions that sit between the * same pair of old nodes will share the same `pos`, so applying them from the end of the list guarantees they appear * in the correct order in the reconstructed document. * * @param oldPmDoc The previous ProseMirror document. * @param newPmDoc The updated ProseMirror document. * @param schema The schema used to interpret document nodes. * @param oldComments Comment list from the old document. * @param newComments Comment list from the new document. * @param oldStyles OOXML style snapshot from the old document. * @param newStyles OOXML style snapshot from the new document. * @param oldNumbering OOXML numbering snapshot from the old document. * @param newNumbering OOXML numbering snapshot from the new document. * @param oldHeaderFooters Header/footer snapshot from the old document. * @param newHeaderFooters Header/footer snapshot from the new document. * @returns Object containing document, comment, style, and numbering diffs. */ export declare function computeDiff(oldPmDoc: PMNode, newPmDoc: PMNode, schema: Schema, oldComments?: CommentInput[], newComments?: CommentInput[], oldStyles?: StylesDocumentProperties | null | undefined, newStyles?: StylesDocumentProperties | null | undefined, oldNumbering?: NumberingProperties | null | undefined, newNumbering?: NumberingProperties | null | undefined, oldHeaderFooters?: HeaderFooterState | null | undefined, newHeaderFooters?: HeaderFooterState | null | undefined, oldPartsState?: PartsState | null | undefined, newPartsState?: PartsState | null | undefined): DiffResult; //# sourceMappingURL=computeDiff.d.ts.map