import { createImportTrackingContext } from './import-context.js';
/**
 * @typedef {ReturnType<typeof createImportTrackingContext>} ImportTrackingContext
 *
 * @typedef {object} ScanRecord
 * @property {string} wordId
 * @property {'insertion' | 'deletion' | 'formatting'} side
 * @property {string} author
 * @property {string} date
 * @property {string | null} parentWordId
 * @property {'insertion' | 'deletion' | 'formatting' | null} parentSide
 */
/**
 * Walks one parsed OOXML part and records every tracked-change element +
 * its parent stack. Used by both the diagnostics emitter and tests.
 *
 * @param {object | undefined} part
 * @returns {ScanRecord[]}
 */
export function scanTrackedElements(part: object | undefined): ScanRecord[];
/**
 * Scan a DOCX (or a single part) for tracked-change shapes that cannot be
 * losslessly reconstructed and emit diagnostics into the provided context.
 *
 * @param {Record<string, object | undefined> | null | undefined} docx
 * @param {{
 *   replacements?: 'paired' | 'independent',
 *   parts?: string[],
 * }} [options]
 * @returns {ImportTrackingContext}
 */
export function scanImportDiagnostics(docx: Record<string, object | undefined> | null | undefined, options?: {
    replacements?: "paired" | "independent";
    parts?: string[];
}): ImportTrackingContext;
export type ImportTrackingContext = ReturnType<typeof createImportTrackingContext>;
export type ScanRecord = {
    wordId: string;
    side: "insertion" | "deletion" | "formatting";
    author: string;
    date: string;
    parentWordId: string | null;
    parentSide: "insertion" | "deletion" | "formatting" | null;
};
//# sourceMappingURL=import-diagnostics.d.ts.map