import { Node as PMNode, Schema } from 'prosemirror-model';
import { NumberingProperties, StylesDocumentProperties } from '../../../../../../layout-engine/style-engine/src/ooxml/index.js';
import { CommentInput, CommentDiff } from './algorithm/comment-diffing.js';
import { HeaderFooterState, HeaderFootersDiff } from './algorithm/header-footer-diffing.js';
import { PartsDiff, PartsState } from './algorithm/parts-diffing.js';
import { NodeDiff } from './algorithm/generic-diffing.js';
import { StylesDiff } from './algorithm/styles-diffing.js';
import { NumberingDiff } from './algorithm/numbering-diffing.js';
/**
 * 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