/** * Drawing part structure check. * * When a drawing file contains `` nodes but neither a * classic `` nor a chartEx `` reference inside them, * the graphic frame is dangling — Excel shows a placeholder or drops the * frame on load. * * We also scan anchor coordinates: every anchor must have `from` and * `to` child elements, and EMU values (`x`, `y`, `cx`, `cy`, * `colOff`, `rowOff`) when present must parse as finite non-negative * numbers. Excel rejects anchors with NaN coordinates outright. * * Finally we enforce the ChartEx drawing-wrapper invariants that * trigger "Removed Part: /xl/drawings/drawingN.xml (Drawing shape)" * in production Excel logs: * * - Any `` reference MUST live inside an * `` block. The Microsoft ChartEx schema was * never part of the base OOXML spec, so Excel's strict loader * requires MC substitution so legacy readers see a fallback shape. * - The `` MUST be non-empty. An empty Fallback * collapses the anchor to nothing on clients that take that * branch, and Excel's strict loader has been observed to reject * the drawing even on the Choice branch when it sees the * degenerate Fallback. * - `` lives INSIDE the `` * shape slot (between `` and ``), NOT * around the whole anchor. Wrapping the entire anchor duplicates * ``/`` across Choice and Fallback, which Excel * rejects even though MC substitution permits it in theory. */ import type { ValidationContext } from "./context.js"; export declare function checkDrawing(ctx: ValidationContext): void;