import { Node as PMNode } from 'prosemirror-model';
import { NumberingProperties, StylesDocumentProperties } from '@superdoc/style-engine/ooxml';
import { CommentInput } from '../algorithm/comment-diffing';
/** The canonical diffable state of one document. */
export interface CanonicalDiffableState {
    body: Record<string, unknown>;
    comments: Record<string, unknown>[];
    styles: Record<string, unknown> | null;
    numbering: Record<string, unknown> | null;
}
/**
 * Builds the canonical diffable state from raw editor data.
 *
 * This is the single source of truth for what parts of a document are
 * considered during fingerprinting and diffing.
 */
export declare function buildCanonicalDiffableState(doc: PMNode, comments: CommentInput[], styles: StylesDocumentProperties | null | undefined, numbering: NumberingProperties | null | undefined): CanonicalDiffableState;
/**
 * Produces a stable JSON string from a canonical diffable state.
 * Key ordering is recursively normalized so that equivalent states
 * always produce identical strings regardless of insertion order.
 */
export declare function stableStringify(state: CanonicalDiffableState): string;
//# sourceMappingURL=canonicalize.d.ts.map