@syncfusion/ej2-docx 0.0.0-stage → 35.1.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/.gitleaksignore +35 -0
  2. package/README.md +68 -2
  3. package/core.js +4 -0
  4. package/dist/ej2-docx.umd.min.js +11 -0
  5. package/dist/ej2-docx.umd.min.js.map +1 -0
  6. package/dist/es6/ej2-docx.es2015.js +66697 -0
  7. package/dist/es6/ej2-docx.es2015.js.map +1 -0
  8. package/dist/es6/ej2-docx.es5.js +77568 -0
  9. package/dist/es6/ej2-docx.es5.js.map +1 -0
  10. package/dist/global/ej2-docx.min.js +11 -0
  11. package/dist/global/ej2-docx.min.js.map +1 -0
  12. package/dist/global/index.d.ts +14 -0
  13. package/features.js +4 -0
  14. package/index.js +4 -0
  15. package/license +10 -0
  16. package/package.json +30 -3
  17. package/src/all.d.ts +50 -0
  18. package/src/all.js +147 -0
  19. package/src/core/compat/base64.d.ts +13 -0
  20. package/src/core/compat/base64.js +90 -0
  21. package/src/core/compat/object-compat.d.ts +30 -0
  22. package/src/core/compat/object-compat.js +40 -0
  23. package/src/core/compat/sha256.d.ts +9 -0
  24. package/src/core/compat/sha256.js +98 -0
  25. package/src/core/errors/docx-error.d.ts +89 -0
  26. package/src/core/errors/docx-error.js +138 -0
  27. package/src/core/errors/error-codes.d.ts +8 -0
  28. package/src/core/errors/error-codes.js +0 -0
  29. package/src/core/errors/index.d.ts +10 -0
  30. package/src/core/errors/index.js +9 -0
  31. package/src/core/index.d.ts +12 -0
  32. package/src/core/index.js +12 -0
  33. package/src/core/mc/alternate-content.d.ts +7 -0
  34. package/src/core/mc/alternate-content.js +67 -0
  35. package/src/core/mc/attributes.d.ts +24 -0
  36. package/src/core/mc/attributes.js +82 -0
  37. package/src/core/mc/index.d.ts +7 -0
  38. package/src/core/mc/index.js +5 -0
  39. package/src/core/mc/inspect.d.ts +16 -0
  40. package/src/core/mc/inspect.js +148 -0
  41. package/src/core/mc/namespaces.d.ts +4 -0
  42. package/src/core/mc/namespaces.js +4 -0
  43. package/src/core/mc/scope.d.ts +6 -0
  44. package/src/core/mc/scope.js +47 -0
  45. package/src/core/opc/content-types.d.ts +34 -0
  46. package/src/core/opc/content-types.js +162 -0
  47. package/src/core/opc/index.d.ts +8 -0
  48. package/src/core/opc/index.js +4 -0
  49. package/src/core/opc/package.d.ts +49 -0
  50. package/src/core/opc/package.js +324 -0
  51. package/src/core/opc/part-name.d.ts +47 -0
  52. package/src/core/opc/part-name.js +205 -0
  53. package/src/core/opc/relationships.d.ts +46 -0
  54. package/src/core/opc/relationships.js +212 -0
  55. package/src/core/preservation/index.d.ts +2 -0
  56. package/src/core/preservation/index.js +1 -0
  57. package/src/core/preservation/opaque-body.d.ts +16 -0
  58. package/src/core/preservation/opaque-body.js +69 -0
  59. package/src/core/registry/block-handlers.d.ts +30 -0
  60. package/src/core/registry/block-handlers.js +36 -0
  61. package/src/core/registry/create-defaults.d.ts +39 -0
  62. package/src/core/registry/create-defaults.js +42 -0
  63. package/src/core/registry/feature-registry.d.ts +20 -0
  64. package/src/core/registry/feature-registry.js +29 -0
  65. package/src/core/registry/index.d.ts +9 -0
  66. package/src/core/registry/index.js +8 -0
  67. package/src/core/registry/inline-handlers.d.ts +20 -0
  68. package/src/core/registry/inline-handlers.js +30 -0
  69. package/src/core/registry/materialize-handlers.d.ts +35 -0
  70. package/src/core/registry/materialize-handlers.js +75 -0
  71. package/src/core/registry/multi-part-handlers.d.ts +37 -0
  72. package/src/core/registry/multi-part-handlers.js +206 -0
  73. package/src/core/registry/package-part-handlers.d.ts +28 -0
  74. package/src/core/registry/package-part-handlers.js +190 -0
  75. package/src/core/registry/part-handlers.d.ts +24 -0
  76. package/src/core/registry/part-handlers.js +172 -0
  77. package/src/core/registry/run-leaf-handlers.d.ts +26 -0
  78. package/src/core/registry/run-leaf-handlers.js +72 -0
  79. package/src/core/security/limits.d.ts +40 -0
  80. package/src/core/security/limits.js +26 -0
  81. package/src/core/xml/index.d.ts +7 -0
  82. package/src/core/xml/index.js +3 -0
  83. package/src/core/xml/model.d.ts +66 -0
  84. package/src/core/xml/model.js +17 -0
  85. package/src/core/xml/parse.d.ts +12 -0
  86. package/src/core/xml/parse.js +382 -0
  87. package/src/core/xml/serialize.d.ts +6 -0
  88. package/src/core/xml/serialize.js +93 -0
  89. package/src/core/zip/crc32.d.ts +2 -0
  90. package/src/core/zip/crc32.js +25 -0
  91. package/src/core/zip/deflate.d.ts +6 -0
  92. package/src/core/zip/deflate.js +6 -0
  93. package/src/core/zip/index.d.ts +10 -0
  94. package/src/core/zip/index.js +4 -0
  95. package/src/core/zip/inflate-raw.d.ts +17 -0
  96. package/src/core/zip/inflate-raw.js +450 -0
  97. package/src/core/zip/names.d.ts +6 -0
  98. package/src/core/zip/names.js +52 -0
  99. package/src/core/zip/read.d.ts +8 -0
  100. package/src/core/zip/read.js +262 -0
  101. package/src/core/zip/write.d.ts +7 -0
  102. package/src/core/zip/write.js +189 -0
  103. package/src/core/zip/zip-entry.d.ts +4 -0
  104. package/src/core/zip/zip-entry.js +0 -0
  105. package/src/features/bibliography/index.d.ts +100 -0
  106. package/src/features/bibliography/index.js +290 -0
  107. package/src/features/bookmarks/index.d.ts +331 -0
  108. package/src/features/bookmarks/index.js +1009 -0
  109. package/src/features/comments/comment-extensions.d.ts +157 -0
  110. package/src/features/comments/comment-extensions.js +356 -0
  111. package/src/features/comments/index.d.ts +579 -0
  112. package/src/features/comments/index.js +1727 -0
  113. package/src/features/content-controls/index.d.ts +821 -0
  114. package/src/features/content-controls/index.js +2857 -0
  115. package/src/features/custom-xml/index.d.ts +236 -0
  116. package/src/features/custom-xml/index.js +661 -0
  117. package/src/features/document/alignment.d.ts +23 -0
  118. package/src/features/document/alignment.js +36 -0
  119. package/src/features/document/alt-chunk.d.ts +103 -0
  120. package/src/features/document/alt-chunk.js +221 -0
  121. package/src/features/document/assert-never.d.ts +1 -0
  122. package/src/features/document/assert-never.js +4 -0
  123. package/src/features/document/augmentations.d.ts +578 -0
  124. package/src/features/document/augmentations.js +0 -0
  125. package/src/features/document/body-always-on.d.ts +36 -0
  126. package/src/features/document/body-always-on.js +66 -0
  127. package/src/features/document/body-blocks.d.ts +7 -0
  128. package/src/features/document/body-blocks.js +78 -0
  129. package/src/features/document/body-item-adapters.d.ts +62 -0
  130. package/src/features/document/body-item-adapters.js +97 -0
  131. package/src/features/document/body-item-collection.d.ts +151 -0
  132. package/src/features/document/body-item-collection.js +440 -0
  133. package/src/features/document/body-item.d.ts +35 -0
  134. package/src/features/document/body-item.js +8 -0
  135. package/src/features/document/body.d.ts +150 -0
  136. package/src/features/document/body.js +263 -0
  137. package/src/features/document/character-format.d.ts +413 -0
  138. package/src/features/document/character-format.js +2054 -0
  139. package/src/features/document/color.d.ts +178 -0
  140. package/src/features/document/color.js +495 -0
  141. package/src/features/document/document.d.ts +410 -0
  142. package/src/features/document/document.js +1049 -0
  143. package/src/features/document/element-type.d.ts +68 -0
  144. package/src/features/document/element-type.js +133 -0
  145. package/src/features/document/entity-type.d.ts +92 -0
  146. package/src/features/document/entity-type.js +93 -0
  147. package/src/features/document/feature-block.d.ts +16 -0
  148. package/src/features/document/feature-block.js +0 -0
  149. package/src/features/document/feature-inline.d.ts +13 -0
  150. package/src/features/document/feature-inline.js +0 -0
  151. package/src/features/document/feature-multi-package-part.d.ts +19 -0
  152. package/src/features/document/feature-multi-package-part.js +8 -0
  153. package/src/features/document/feature-package-level-part.d.ts +18 -0
  154. package/src/features/document/feature-package-level-part.js +8 -0
  155. package/src/features/document/feature-package-part.d.ts +14 -0
  156. package/src/features/document/feature-package-part.js +0 -0
  157. package/src/features/document/feature-run-leaf.d.ts +9 -0
  158. package/src/features/document/feature-run-leaf.js +0 -0
  159. package/src/features/document/headers-footers.d.ts +206 -0
  160. package/src/features/document/headers-footers.js +384 -0
  161. package/src/features/document/index.d.ts +41 -0
  162. package/src/features/document/index.js +34 -0
  163. package/src/features/document/length.d.ts +152 -0
  164. package/src/features/document/length.js +245 -0
  165. package/src/features/document/load-options.d.ts +14 -0
  166. package/src/features/document/load-options.js +0 -0
  167. package/src/features/document/locale-ids.d.ts +227 -0
  168. package/src/features/document/locale-ids.js +485 -0
  169. package/src/features/document/on-off.d.ts +9 -0
  170. package/src/features/document/on-off.js +27 -0
  171. package/src/features/document/page-setup.d.ts +339 -0
  172. package/src/features/document/page-setup.js +244 -0
  173. package/src/features/document/paragraph-format.d.ts +880 -0
  174. package/src/features/document/paragraph-format.js +2807 -0
  175. package/src/features/document/paragraph-item-collection.d.ts +162 -0
  176. package/src/features/document/paragraph-item-collection.js +363 -0
  177. package/src/features/document/paragraph-item.d.ts +83 -0
  178. package/src/features/document/paragraph-item.js +103 -0
  179. package/src/features/document/paragraph.d.ts +435 -0
  180. package/src/features/document/paragraph.js +888 -0
  181. package/src/features/document/run.d.ts +1 -0
  182. package/src/features/document/run.js +768 -0
  183. package/src/features/document/section-partition-flatten.d.ts +124 -0
  184. package/src/features/document/section-partition-flatten.js +217 -0
  185. package/src/features/document/section-properties-model.d.ts +13 -0
  186. package/src/features/document/section-properties-model.js +0 -0
  187. package/src/features/document/section.d.ts +93 -0
  188. package/src/features/document/section.js +178 -0
  189. package/src/features/document/sections.d.ts +103 -0
  190. package/src/features/document/sections.js +217 -0
  191. package/src/features/document/sub-super-script.d.ts +23 -0
  192. package/src/features/document/sub-super-script.js +43 -0
  193. package/src/features/document/text-range.d.ts +445 -0
  194. package/src/features/document/text-range.js +1156 -0
  195. package/src/features/document/typed-body-collections.d.ts +162 -0
  196. package/src/features/document/typed-body-collections.js +371 -0
  197. package/src/features/document/underline-style.d.ts +38 -0
  198. package/src/features/document/underline-style.js +126 -0
  199. package/src/features/document/units.d.ts +8 -0
  200. package/src/features/document/units.js +7 -0
  201. package/src/features/document/wml.d.ts +16 -0
  202. package/src/features/document/wml.js +67 -0
  203. package/src/features/drawing/authoring.d.ts +27 -0
  204. package/src/features/drawing/authoring.js +271 -0
  205. package/src/features/drawing/body-pr.d.ts +271 -0
  206. package/src/features/drawing/body-pr.js +663 -0
  207. package/src/features/drawing/drawing-shape.d.ts +1192 -0
  208. package/src/features/drawing/drawing-shape.js +3239 -0
  209. package/src/features/drawing/encode-builders.d.ts +176 -0
  210. package/src/features/drawing/encode-builders.js +390 -0
  211. package/src/features/drawing/fill-format.d.ts +52 -0
  212. package/src/features/drawing/fill-format.js +124 -0
  213. package/src/features/drawing/host-codec.d.ts +632 -0
  214. package/src/features/drawing/host-codec.js +2595 -0
  215. package/src/features/drawing/index.d.ts +13 -0
  216. package/src/features/drawing/index.js +33 -0
  217. package/src/features/drawing/line-format.d.ts +76 -0
  218. package/src/features/drawing/line-format.js +343 -0
  219. package/src/features/drawing/parse-register.d.ts +50 -0
  220. package/src/features/drawing/parse-register.js +257 -0
  221. package/src/features/drawing/residual-utils.d.ts +47 -0
  222. package/src/features/drawing/residual-utils.js +290 -0
  223. package/src/features/drawing/shape-types.d.ts +433 -0
  224. package/src/features/drawing/shape-types.js +437 -0
  225. package/src/features/drawing/sp-pr.d.ts +396 -0
  226. package/src/features/drawing/sp-pr.js +610 -0
  227. package/src/features/drawing/text-frame.d.ts +90 -0
  228. package/src/features/drawing/text-frame.js +152 -0
  229. package/src/features/drawing/types.d.ts +352 -0
  230. package/src/features/drawing/types.js +60 -0
  231. package/src/features/drawing/wrap-format.d.ts +62 -0
  232. package/src/features/drawing/wrap-format.js +114 -0
  233. package/src/features/editable-ranges/index.d.ts +494 -0
  234. package/src/features/editable-ranges/index.js +1348 -0
  235. package/src/features/fields/index.d.ts +428 -0
  236. package/src/features/fields/index.js +2148 -0
  237. package/src/features/fields/paragraph-field.d.ts +187 -0
  238. package/src/features/fields/paragraph-field.js +692 -0
  239. package/src/features/font-table/font-substitution-table.d.ts +75 -0
  240. package/src/features/font-table/font-substitution-table.js +257 -0
  241. package/src/features/font-table/font-table-entry.d.ts +255 -0
  242. package/src/features/font-table/font-table-entry.js +823 -0
  243. package/src/features/font-table/font-table.d.ts +128 -0
  244. package/src/features/font-table/font-table.js +313 -0
  245. package/src/features/font-table/index.d.ts +27 -0
  246. package/src/features/font-table/index.js +48 -0
  247. package/src/features/glossary/index.d.ts +97 -0
  248. package/src/features/glossary/index.js +286 -0
  249. package/src/features/headers-footers/index.d.ts +506 -0
  250. package/src/features/headers-footers/index.js +1666 -0
  251. package/src/features/hyperlinks/index.d.ts +230 -0
  252. package/src/features/hyperlinks/index.js +685 -0
  253. package/src/features/images/caption-authoring-api.d.ts +33 -0
  254. package/src/features/images/caption-authoring-api.js +33 -0
  255. package/src/features/images/caption-enums.d.ts +52 -0
  256. package/src/features/images/caption-enums.js +141 -0
  257. package/src/features/images/caption-host.d.ts +10 -0
  258. package/src/features/images/caption-host.js +21 -0
  259. package/src/features/images/captions.d.ts +13 -0
  260. package/src/features/images/captions.js +142 -0
  261. package/src/features/images/host-codec.d.ts +103 -0
  262. package/src/features/images/host-codec.js +720 -0
  263. package/src/features/images/image-sniff.d.ts +21 -0
  264. package/src/features/images/image-sniff.js +71 -0
  265. package/src/features/images/index.d.ts +506 -0
  266. package/src/features/images/index.js +1429 -0
  267. package/src/features/images/layout-types.d.ts +232 -0
  268. package/src/features/images/layout-types.js +294 -0
  269. package/src/features/images/public-entry.d.ts +9 -0
  270. package/src/features/images/public-entry.js +9 -0
  271. package/src/features/index.d.ts +35 -0
  272. package/src/features/index.js +36 -0
  273. package/src/features/mail-merge/index.d.ts +113 -0
  274. package/src/features/mail-merge/index.js +315 -0
  275. package/src/features/notes/index.d.ts +573 -0
  276. package/src/features/notes/index.js +1725 -0
  277. package/src/features/numbering/abstract-numbering.d.ts +90 -0
  278. package/src/features/numbering/abstract-numbering.js +292 -0
  279. package/src/features/numbering/index.d.ts +182 -0
  280. package/src/features/numbering/index.js +668 -0
  281. package/src/features/numbering/list-format.d.ts +158 -0
  282. package/src/features/numbering/list-format.js +590 -0
  283. package/src/features/numbering/list-string.d.ts +7 -0
  284. package/src/features/numbering/list-string.js +423 -0
  285. package/src/features/numbering/list-style.d.ts +204 -0
  286. package/src/features/numbering/list-style.js +1084 -0
  287. package/src/features/numbering/numbering-instance.d.ts +101 -0
  288. package/src/features/numbering/numbering-instance.js +329 -0
  289. package/src/features/numbering/numbering-level.d.ts +118 -0
  290. package/src/features/numbering/numbering-level.js +501 -0
  291. package/src/features/numbering/picture-bullet.d.ts +34 -0
  292. package/src/features/numbering/picture-bullet.js +88 -0
  293. package/src/features/ole-object/catalog.d.ts +300 -0
  294. package/src/features/ole-object/catalog.js +908 -0
  295. package/src/features/ole-object/index.d.ts +526 -0
  296. package/src/features/ole-object/index.js +1421 -0
  297. package/src/features/ole-object/relationship.d.ts +27 -0
  298. package/src/features/ole-object/relationship.js +27 -0
  299. package/src/features/ole-object/typed-dom.d.ts +186 -0
  300. package/src/features/ole-object/typed-dom.js +595 -0
  301. package/src/features/properties/index.d.ts +205 -0
  302. package/src/features/properties/index.js +549 -0
  303. package/src/features/revisions/index.d.ts +204 -0
  304. package/src/features/revisions/index.js +695 -0
  305. package/src/features/sections/column-collection.d.ts +119 -0
  306. package/src/features/sections/column-collection.js +478 -0
  307. package/src/features/sections/column.d.ts +15 -0
  308. package/src/features/sections/column.js +37 -0
  309. package/src/features/sections/index.d.ts +91 -0
  310. package/src/features/sections/index.js +1096 -0
  311. package/src/features/sections/margins.d.ts +40 -0
  312. package/src/features/sections/margins.js +105 -0
  313. package/src/features/sections/page-number-style.d.ts +21 -0
  314. package/src/features/sections/page-number-style.js +62 -0
  315. package/src/features/sections/page-orientation.d.ts +10 -0
  316. package/src/features/sections/page-orientation.js +10 -0
  317. package/src/features/sections/page-setup.d.ts +435 -0
  318. package/src/features/sections/page-setup.js +1479 -0
  319. package/src/features/sections/page-size.d.ts +59 -0
  320. package/src/features/sections/page-size.js +68 -0
  321. package/src/features/sections/section-break-code.d.ts +27 -0
  322. package/src/features/sections/section-break-code.js +60 -0
  323. package/src/features/sections/section-document-association.d.ts +18 -0
  324. package/src/features/sections/section-document-association.js +31 -0
  325. package/src/features/sections/section-validation.d.ts +43 -0
  326. package/src/features/sections/section-validation.js +97 -0
  327. package/src/features/settings/attached-template.d.ts +35 -0
  328. package/src/features/settings/attached-template.js +98 -0
  329. package/src/features/settings/compat-settings.d.ts +216 -0
  330. package/src/features/settings/compat-settings.js +508 -0
  331. package/src/features/settings/document-background.d.ts +59 -0
  332. package/src/features/settings/document-background.js +131 -0
  333. package/src/features/settings/document-protection.d.ts +65 -0
  334. package/src/features/settings/document-protection.js +157 -0
  335. package/src/features/settings/document-settings-facades.d.ts +108 -0
  336. package/src/features/settings/document-settings-facades.js +312 -0
  337. package/src/features/settings/document-settings-values.d.ts +43 -0
  338. package/src/features/settings/document-settings-values.js +60 -0
  339. package/src/features/settings/footnote-properties.d.ts +211 -0
  340. package/src/features/settings/footnote-properties.js +591 -0
  341. package/src/features/settings/index.d.ts +356 -0
  342. package/src/features/settings/index.js +829 -0
  343. package/src/features/settings/settings-children.d.ts +151 -0
  344. package/src/features/settings/settings-children.js +505 -0
  345. package/src/features/settings/web-settings.d.ts +88 -0
  346. package/src/features/settings/web-settings.js +227 -0
  347. package/src/features/settings/zoom.d.ts +79 -0
  348. package/src/features/settings/zoom.js +147 -0
  349. package/src/features/styles/builtin-catalog.d.ts +159 -0
  350. package/src/features/styles/builtin-catalog.js +963 -0
  351. package/src/features/styles/builtin-resolver.d.ts +49 -0
  352. package/src/features/styles/builtin-resolver.js +165 -0
  353. package/src/features/styles/default-styles.d.ts +37 -0
  354. package/src/features/styles/default-styles.js +186 -0
  355. package/src/features/styles/default-theme.d.ts +13 -0
  356. package/src/features/styles/default-theme.js +13 -0
  357. package/src/features/styles/doc-defaults.d.ts +58 -0
  358. package/src/features/styles/doc-defaults.js +178 -0
  359. package/src/features/styles/formatting-resolver.d.ts +27 -0
  360. package/src/features/styles/formatting-resolver.js +72 -0
  361. package/src/features/styles/index.d.ts +256 -0
  362. package/src/features/styles/index.js +1325 -0
  363. package/src/features/styles/latent-styles.d.ts +68 -0
  364. package/src/features/styles/latent-styles.js +305 -0
  365. package/src/features/styles/paragraph-properties.d.ts +71 -0
  366. package/src/features/styles/paragraph-properties.js +237 -0
  367. package/src/features/styles/run-properties.d.ts +93 -0
  368. package/src/features/styles/run-properties.js +516 -0
  369. package/src/features/styles/style-base.d.ts +402 -0
  370. package/src/features/styles/style-base.js +1026 -0
  371. package/src/features/styles/style-collection.d.ts +264 -0
  372. package/src/features/styles/style-collection.js +714 -0
  373. package/src/features/styles/style-format-bridge.d.ts +64 -0
  374. package/src/features/styles/style-format-bridge.js +100 -0
  375. package/src/features/styles/style.d.ts +84 -0
  376. package/src/features/styles/style.js +375 -0
  377. package/src/features/styles/styles-with-effects.d.ts +71 -0
  378. package/src/features/styles/styles-with-effects.js +180 -0
  379. package/src/features/styles/table-style.d.ts +272 -0
  380. package/src/features/styles/table-style.js +1226 -0
  381. package/src/features/styles/theme.d.ts +126 -0
  382. package/src/features/styles/theme.js +377 -0
  383. package/src/features/tables/border-style-map.d.ts +24 -0
  384. package/src/features/tables/border-style-map.js +81 -0
  385. package/src/features/tables/borders.d.ts +126 -0
  386. package/src/features/tables/borders.js +527 -0
  387. package/src/features/tables/collections.d.ts +113 -0
  388. package/src/features/tables/collections.js +261 -0
  389. package/src/features/tables/format.d.ts +208 -0
  390. package/src/features/tables/format.js +716 -0
  391. package/src/features/tables/index.d.ts +597 -0
  392. package/src/features/tables/index.js +2386 -0
  393. package/src/features/tables/paddings.d.ts +41 -0
  394. package/src/features/tables/paddings.js +97 -0
  395. package/src/features/tables/tbl-pr-positioning.d.ts +27 -0
  396. package/src/features/tables/tbl-pr-positioning.js +178 -0
  397. package/src/features/tables/tbl-pr.d.ts +528 -0
  398. package/src/features/tables/tbl-pr.js +1208 -0
  399. package/src/features/tables/tc-pr.d.ts +168 -0
  400. package/src/features/tables/tc-pr.js +553 -0
  401. package/src/features/tables/tr-pr.d.ts +60 -0
  402. package/src/features/tables/tr-pr.js +215 -0
  403. package/src/features/watermark/detect.d.ts +76 -0
  404. package/src/features/watermark/detect.js +219 -0
  405. package/src/features/watermark/index.d.ts +28 -0
  406. package/src/features/watermark/index.js +91 -0
  407. package/src/features/watermark/logical-store.d.ts +29 -0
  408. package/src/features/watermark/logical-store.js +31 -0
  409. package/src/features/watermark/model.d.ts +285 -0
  410. package/src/features/watermark/model.js +597 -0
  411. package/src/features/watermark/parse.d.ts +84 -0
  412. package/src/features/watermark/parse.js +815 -0
  413. package/src/features/watermark/serialize.d.ts +98 -0
  414. package/src/features/watermark/serialize.js +1517 -0
  415. package/src/global.js +1 -0
  416. package/src/index.d.ts +2 -0
  417. package/src/index.js +2 -0
@@ -0,0 +1,1192 @@
1
+ /**
2
+ * DrawingShape leaf — residual-preserving DrawingML/VML run child.
3
+ *
4
+ * @private
5
+ */
6
+ import { WordDocument } from '../document/document';
7
+ import { EntityType } from '../document/entity-type';
8
+ import { FeatureRunLeaf } from '../document/feature-run-leaf';
9
+ import { Emus } from '../document/length';
10
+ import { Body } from '../document/body';
11
+ import { BodyItem } from '../document/body-item';
12
+ import { BlockContent, Paragraph, ParagraphOwner } from '../document/paragraph';
13
+ import { OpenXmlElement } from '../../core/xml/index';
14
+ import { HorizontalAlignment as HorizontalAlignmentType, HorizontalOrigin as HorizontalOriginType, TextWrappingStyle as TextWrappingStyleType, TextWrappingType as TextWrappingTypeType, VerticalAlignment as VerticalAlignmentType, VerticalOrigin as VerticalOriginType } from '../images/layout-types';
15
+ import { Table as TableFeature } from '../tables/index';
16
+ import { DrawingHostPlacement } from './host-codec';
17
+ import { ShapeFill, ShapeLine } from './sp-pr';
18
+ import { BodyInsets, TextAnchoring, TextAutoFit, TextBodyWrap, TextHorzOverflow, TextVerticalType, TextVertOverflow } from './body-pr';
19
+ import { AutoShapeType } from './shape-types';
20
+ import { FillFormat, FillFormatOwner } from './fill-format';
21
+ import { LineFormat, LineFormatOwner } from './line-format';
22
+ import { WrapFormat, WrapFormatOwner } from './wrap-format';
23
+ import { TextFrame, TextFrameOwner } from './text-frame';
24
+ import { TextDirection, TextVerticalAlignment } from './body-pr';
25
+ import { DrawingEncoding, DrawingExtent, DrawingPlacement, DrawingVariant } from './types';
26
+ export declare type DirtyMode = 'clean' | 'identity' | 'layout' | 'structure';
27
+ /**
28
+ * Cached `wps:spPr` MVP state read from residual (lazy).
29
+ * @private
30
+ */
31
+ export interface ShapePropertiesStateCached {
32
+ readonly presetGeometry: string | undefined;
33
+ readonly useCustomGeometry: boolean;
34
+ readonly fill: ShapeFill | undefined;
35
+ readonly line: ShapeLine | undefined;
36
+ readonly hasThemeStyle: boolean;
37
+ }
38
+ export interface DrawingShapeInit {
39
+ readonly encoding: DrawingEncoding;
40
+ readonly residual: OpenXmlElement;
41
+ readonly dirty: DirtyMode;
42
+ readonly name?: string | undefined;
43
+ readonly title?: string | undefined;
44
+ readonly description?: string | undefined;
45
+ readonly docPrId?: number | undefined;
46
+ readonly placement?: DrawingHostPlacement | undefined;
47
+ /** Display width in points. */
48
+ readonly width?: number | undefined;
49
+ /** Display height in points. */
50
+ readonly height?: number | undefined;
51
+ readonly presetGeometry?: string | undefined;
52
+ readonly rotation?: number | undefined;
53
+ readonly lockAspectRatio?: boolean | undefined;
54
+ readonly flipHorizontal?: boolean | undefined;
55
+ readonly flipVertical?: boolean | undefined;
56
+ readonly wrapping?: TextWrappingStyleType | undefined;
57
+ /** Wrap side (`wp:wrap*@wrapText`) for square/tight/through. */
58
+ readonly wrapType?: TextWrappingTypeType | undefined;
59
+ /** Top text distance in points. */
60
+ readonly distanceTop?: number | undefined;
61
+ /** Bottom text distance in points. */
62
+ readonly distanceBottom?: number | undefined;
63
+ /** Left text distance in points. */
64
+ readonly distanceLeft?: number | undefined;
65
+ /** Right text distance in points. */
66
+ readonly distanceRight?: number | undefined;
67
+ readonly behindDocument?: boolean | undefined;
68
+ readonly horizontalOrigin?: HorizontalOriginType | undefined;
69
+ readonly verticalOrigin?: VerticalOriginType | undefined;
70
+ /** Horizontal offset in points. */
71
+ readonly horizontalPosition?: number | undefined;
72
+ /** Vertical offset in points. */
73
+ readonly verticalPosition?: number | undefined;
74
+ readonly horizontalAlignment?: HorizontalAlignmentType | undefined;
75
+ readonly verticalAlignment?: VerticalAlignmentType | undefined;
76
+ readonly lockAnchor?: boolean | undefined;
77
+ readonly allowOverlap?: boolean | undefined;
78
+ readonly layoutInCell?: boolean | undefined;
79
+ readonly fill?: ShapeFill | undefined;
80
+ readonly line?: ShapeLine | undefined;
81
+ /** Serialized `w:txbxContent` children for authored text box variants (TASK-8049). */
82
+ readonly txbxContent?: ReadonlyArray<OpenXmlElement> | undefined;
83
+ /** Modeled `wps:bodyPr` element for authored text box variants (TASK-8049). */
84
+ readonly bodyPrElement?: OpenXmlElement | undefined;
85
+ /**
86
+ * Nested group/canvas children (TASK-8051). When defined, the shape is a
87
+ * modeled group host even if the array is empty.
88
+ */
89
+ readonly children?: ReadonlyArray<DrawingShape> | undefined;
90
+ }
91
+ /**
92
+ * Cached `wps:txbx` body state (lazy).
93
+ * @private
94
+ */
95
+ export interface TextBoxStateCached {
96
+ /** True when a `wps:txbx` (WML body) exists under the residual host. */
97
+ readonly present: boolean;
98
+ /**
99
+ * Internal ordered store for `w:txbxContent` (paragraphs/tables/SDTs).
100
+ * Public lists project via adapters.
101
+ */
102
+ readonly blocks: BlockContent[];
103
+ /** Residual `wps:txbx` element for verbatim clone when body is untouched. */
104
+ readonly residualTxbx: OpenXmlElement | undefined;
105
+ /** Residual `w:txbxContent` element (may be absent in odd fixtures). */
106
+ readonly residualTxbxContent: OpenXmlElement | undefined;
107
+ }
108
+ export declare class TextBoxParagraphOwner implements ParagraphOwner {
109
+ private readonly shape;
110
+ constructor(shape: DrawingShape);
111
+ assertAttachedParagraph(target: Paragraph): void;
112
+ /**
113
+ * @private
114
+ */
115
+ owningDocument(): WordDocument;
116
+ }
117
+ /** Deep membership check: direct or nested (table cell / SDT) paragraph. */
118
+ export declare function blockListOwnsParagraph(blocks: ReadonlyArray<BlockContent>, target: Paragraph): boolean;
119
+ export declare function tableOwnsParagraph(table: TableFeature, target: Paragraph): boolean;
120
+ /**
121
+ * Minimum `w:txbxContent` body: one empty paragraph (`EG_BlockLevelElts`
122
+ * minOccurs=1 — `CT_TxbxContent` cannot be empty; Word authors a bare `w:p`).
123
+ */
124
+ /**
125
+ * Shared base for DrawingML / VML run leaves: identity, placement, size,
126
+ * rotation/flip/lock, wrap/distances, position, residual dirty plumbing, and
127
+ * `FeatureRunLeaf` serialization.
128
+ *
129
+ * Concrete leaves are {@link Shape}; group/canvas hosts are {@link GroupShape}.
130
+ * Prefer those subclasses (and {@link createDrawingShape}) at construction time.
131
+ * `instanceof DrawingShape` remains true for both subclasses so existing leaf
132
+ * guards keep working.
133
+ *
134
+ * Clean load/save is residual pass-through. Identity mutators patch `wp:docPr`
135
+ * only. Layout mutators (size/rotation/lock/flip) patch residual extent+xfrm+locks
136
+ * without full dual-AC rebuild. Position mutators (H/V origin, offset vs align,
137
+ * `lockAnchor`/`allowOverlap`/`layoutInCell`) mark the shape structure dirty:
138
+ * the dual MC shell is re-encoded with residual position preserved per-axis
139
+ * when a mode was not modeled. Authoring (`appendShape`) emits dual MC
140
+ * AlternateContent (Choice wps + Fallback VML stub) — GO Policy B.
141
+ * Text box leaves expose `wps:bodyPr` typed state and the `w:txbxContent`
142
+ * block body (paragraphs / tables / nested tables / block SDTs — GO Q6);
143
+ * non-textBox shapes throw on body APIs (TASK-8049).
144
+ *
145
+ * @private
146
+ */
147
+ export declare class DrawingShape implements FeatureRunLeaf, FillFormatOwner, LineFormatOwner, WrapFormatOwner, TextFrameOwner {
148
+ private residual;
149
+ private encodingValue;
150
+ private dirtyMode;
151
+ private nameValue;
152
+ private titleValue;
153
+ private descriptionValue;
154
+ private docPrIdValue;
155
+ private placementValue;
156
+ /** Display width in points. */
157
+ private widthValue;
158
+ /** Display height in points. */
159
+ private heightValue;
160
+ private presetGeometryValue;
161
+ private rotationValue;
162
+ private lockAspectRatioValue;
163
+ private flipHorizontalValue;
164
+ private flipVerticalValue;
165
+ private wrappingValue;
166
+ /** Top text distance in points. */
167
+ private distanceTopValue;
168
+ /** Bottom text distance in points. */
169
+ private distanceBottomValue;
170
+ /** Left text distance in points. */
171
+ private distanceLeftValue;
172
+ /** Right text distance in points. */
173
+ private distanceRightValue;
174
+ private behindDocumentValue;
175
+ /** Whether distance* fields were explicitly modeled (vs residual/default). */
176
+ private distancesModeled;
177
+ /** Whether behindDocument was explicitly modeled. */
178
+ private behindDocumentModeled;
179
+ private horizontalOriginValue;
180
+ private verticalOriginValue;
181
+ /** Horizontal offset in points. */
182
+ private horizontalPositionValue;
183
+ /** Vertical offset in points. */
184
+ private verticalPositionValue;
185
+ private horizontalAlignmentValue;
186
+ private verticalAlignmentValue;
187
+ /** Whether a horizontal position mode (offset or align) is explicitly modeled. */
188
+ private horizontalModeled;
189
+ /** Whether a vertical position mode (offset or align) is explicitly modeled. */
190
+ private verticalModeled;
191
+ private lockAnchorValue;
192
+ private allowOverlapValue;
193
+ private layoutInCellValue;
194
+ /** Geometry/fill/line state (TASK-8048). Defined after first read/mtate. */
195
+ private spPrState;
196
+ private fillValue;
197
+ private fillModeled;
198
+ private lineValue;
199
+ private lineModeled;
200
+ /** Text box body state (TASK-8049). Lazy; defined after first body access. */
201
+ private txbxState;
202
+ private txbxBlocksValue;
203
+ private txbxBodyModeled;
204
+ private bodyPrValue;
205
+ private bodyPrModeled;
206
+ private textBoxOwner;
207
+ /**
208
+ * Nested DrawingML children under a group/canvas host (TASK-8051).
209
+ * Populated when {@link childrenModeled} is true (authored or materialised).
210
+ */
211
+ protected childrenValue: DrawingShape[];
212
+ /** True when nested children are owned by the model (including empty group). */
213
+ protected childrenModeled: boolean;
214
+ /** Lazy residual parse cache when children are not yet modeled. */
215
+ protected childrenCache: DrawingShape[] | undefined;
216
+ /** Parent group/canvas when this leaf is a nested child (TASK-8051). */
217
+ /** Parent group when nested; package-visible for GroupShape reparenting. @private */
218
+ parentGroup: DrawingShape | undefined;
219
+ /** Modeled wrap type (square sides). Default Both when unset. */
220
+ private wrappingTypeValue;
221
+ private fillFormatValue;
222
+ private lineFormatValue;
223
+ private wrapFormatValue;
224
+ private textFrameValue;
225
+ private textBodyValue;
226
+ /**
227
+ * @private
228
+ */
229
+ constructor(encoding: DrawingEncoding, element: OpenXmlElement);
230
+ /**
231
+ * @private
232
+ */
233
+ constructor(init: DrawingShapeInit);
234
+ /**
235
+ * Whether this leaf is DrawingML (`w:drawing` / MC Choice) or VML (`w:pict`).
236
+ *
237
+ * @private
238
+ */
239
+ encoding(): DrawingEncoding;
240
+ /**
241
+ * Placement host for DrawingML leaves, or `unknown` for VML.
242
+ *
243
+ * @private
244
+ */
245
+ placement(): DrawingPlacement;
246
+ /**
247
+ * Shape variant: kind of drawing object this leaf hosts.
248
+ *
249
+ * Detection is via `a:graphicData @uri` for DML and child element localName
250
+ * for VML. Modeled empty groups (`childrenModeled`) read as `'group'` before
251
+ * residual URI detection. Nested residual leaves (`wps:wsp` / `wpg:grpSp`)
252
+ * are classified from their own element when no `w:drawing` host is present
253
+ * (TASK-8051). Authored structure + presetGeometry still short-circuits to
254
+ * `'shape'` / `'textBox'` after group/canvas checks so residual groups are
255
+ * never misread as shapes.
256
+ *
257
+ * @private
258
+ */
259
+ variant(): DrawingVariant;
260
+ /**
261
+ * Nested DrawingML children under a group or canvas host (TASK-8051).
262
+ *
263
+ * Leaf shapes, VML, and unknown variants return `[]`. Residual group/canvas
264
+ * hosts lazy-parse `wps:wsp` / `wpg:grpSp` under `wpg:wgp` or `wpc:wpc`.
265
+ * Modeled groups (including empty authored groups) return the owned list.
266
+ * Public consumers use {@link GroupShape.childShapes}.
267
+ *
268
+ * @private
269
+ */
270
+ children(): ReadonlyArray<DrawingShape>;
271
+ /**
272
+ * Non-visual drawing name from `wp:docPr @name` / nested `cNvPr @name`.
273
+ * @public
274
+ */
275
+ name: string | undefined;
276
+ /**
277
+ * Title from `wp:docPr @title` / nested `cNvPr @title`.
278
+ * @public
279
+ */
280
+ title: string | undefined;
281
+ /**
282
+ * Alternative text from `wp:docPr @descr` / nested `cNvPr @descr`.
283
+ * @public
284
+ */
285
+ alternativeText: string | undefined;
286
+ /**
287
+ * Stable fill format facade (Shape.md).
288
+ * @public
289
+ */
290
+ readonly fillFormat: FillFormat;
291
+ /**
292
+ * Stable line format facade (Shape.md).
293
+ * @public
294
+ */
295
+ readonly lineFormat: LineFormat;
296
+ /**
297
+ * Stable wrap format facade (Shape.md).
298
+ * @public
299
+ */
300
+ readonly wrapFormat: WrapFormat;
301
+ /**
302
+ * Stable text frame facade (Shape.md).
303
+ * @public
304
+ */
305
+ readonly textFrame: TextFrame;
306
+ /**
307
+ * Text-box story content as a document {@link Body} (`w:txbxContent`).
308
+ * First access promotes the leaf to a text-box variant (`wps:txbx`).
309
+ * @public
310
+ */
311
+ readonly textBody: Body;
312
+ /**
313
+ * Auto shape type from preset geometry. Returns AutoShapeType.Unknown when missing/unrecognized/VML; Custom for custGeom.
314
+ * @public
315
+ */
316
+ readonly autoShapeType: AutoShapeType;
317
+ /** @private */
318
+ readShapeFillState(): ShapeFill | undefined;
319
+ /** @private */
320
+ writeShapeFillState(value: ShapeFill | undefined): void;
321
+ /** @private */
322
+ readShapeLineState(): ShapeLine | undefined;
323
+ /** @private */
324
+ writeShapeLineState(value: ShapeLine | undefined): void;
325
+ /** @private */
326
+ readWrapStyle(): TextWrappingStyleType;
327
+ /** @private */
328
+ writeWrapStyle(value: TextWrappingStyleType): void;
329
+ /** @private */
330
+ readWrapType(): TextWrappingTypeType;
331
+ /** @private */
332
+ writeWrapType(value: TextWrappingTypeType): void;
333
+ /** @private */
334
+ readAllowOverlap(): boolean;
335
+ /** @private */
336
+ writeAllowOverlap(value: boolean): void;
337
+ /** @private */
338
+ readDistanceTop(): number;
339
+ /** @private */
340
+ writeDistanceTop(value: number): void;
341
+ /** @private */
342
+ readDistanceBottom(): number;
343
+ /** @private */
344
+ writeDistanceBottom(value: number): void;
345
+ /** @private */
346
+ readDistanceLeft(): number;
347
+ /** @private */
348
+ writeDistanceLeft(value: number): void;
349
+ /** @private */
350
+ readDistanceRight(): number;
351
+ /** @private */
352
+ writeDistanceRight(value: number): void;
353
+ /** @private */
354
+ readTextFrameDirection(): TextDirection | undefined;
355
+ /** @private */
356
+ writeTextFrameDirection(value: TextDirection | undefined): void;
357
+ /** @private */
358
+ readTextFrameVerticalAlignment(): TextVerticalAlignment | undefined;
359
+ /** @private */
360
+ writeTextFrameVerticalAlignment(value: TextVerticalAlignment | undefined): void;
361
+ /** @private */
362
+ readInternalMarginLeft(): number;
363
+ /** @private */
364
+ writeInternalMarginLeft(value: number): void;
365
+ /** @private */
366
+ readInternalMarginTop(): number;
367
+ /** @private */
368
+ writeInternalMarginTop(value: number): void;
369
+ /** @private */
370
+ readInternalMarginRight(): number;
371
+ /** @private */
372
+ writeInternalMarginRight(value: number): void;
373
+ /** @private */
374
+ readInternalMarginBottom(): number;
375
+ /** @private */
376
+ writeInternalMarginBottom(value: number): void;
377
+ /** @private */
378
+ private readBodyInsets;
379
+ /** @private */
380
+ private writeBodyInsets;
381
+ /**
382
+ * BodyInsets sides are **points** (body-pr parse/build converts at the
383
+ * wire boundary). Defaults are Word bodyPr EMU constants converted once.
384
+ * @private
385
+ */
386
+ private readInsetPoints;
387
+ /**
388
+ * Store InternalMargin sides as points on BodyInsets (same unit as
389
+ * body-pr model). Do not convert to EMU here — buildBodyPrElement does.
390
+ * @private
391
+ */
392
+ private writeInsetPoints;
393
+ /** @private */
394
+ ensureTextBodyAccessible(): void;
395
+ /**
396
+ * @private
397
+ * Point the txbx cache at the Body block store after Body mutations.
398
+ */
399
+ syncTxbxBlocksFromBody(blocks: BlockContent[]): void;
400
+ /**
401
+ * Append a nested preset-geometry shape under this group or canvas (TASK-8051).
402
+ *
403
+ * Only valid when {@link variant} is `'group'` or `'canvas'`. Nested children
404
+ * serialize as bare `wps:wsp` (with `wps:cNvPr`) under `wpg:wgp` / `wpc:wpc`
405
+ * — not as a second `w:drawing` host. Marks this host structure-dirty.
406
+ *
407
+ * @throws DocxError `content/invalid-shape` when the host is not a group/canvas,
408
+ * or when geometry/size options are invalid.
409
+ *
410
+ * Public consumers call {@link GroupShape.appendShape}.
411
+ *
412
+ * @private
413
+ */
414
+ /**
415
+ * Append a nested preset-geometry {@link Shape} under this group or canvas.
416
+ * @public
417
+ */
418
+ appendShape(autoShapeType: AutoShapeType, width: number, height: number): Shape;
419
+ /**
420
+ * Extent (width × height) from modeled size or `wp:extent`, as point `number`.
421
+ *
422
+ * Returns `undefined` when no size is modeled and no `wp:extent` / `a:ext`
423
+ * is reachable with numeric `cx`/`cy`. VML leaves return `undefined`.
424
+ *
425
+ * @private
426
+ */
427
+ extent(): DrawingExtent | undefined;
428
+ /**
429
+
430
+ * numbers; kept for back-compat with existing feature-module tests.
431
+ *
432
+ * @private
433
+ */
434
+ extentEmu(): {
435
+ readonly width: Emus;
436
+ readonly height: Emus;
437
+ } | undefined;
438
+ /**
439
+ * Display width (`wp:extent/@cx` preferred; EMU-backed point `number`).
440
+ * Setter marks layout dirty and updates both `wp:extent` and `a:xfrm/a:ext`
441
+ * on save. Does **not** auto-adjust height when {@link lockAspectRatio} is true
442
+ * (images parity — lock is a flag for consumers/Word).
443
+ *
444
+ * @public
445
+ */
446
+ width: number | undefined;
447
+ /**
448
+ * Display height (`wp:extent/@cy` preferred). Same lock semantics as {@link width}.
449
+ *
450
+ * @public
451
+ */
452
+ height: number | undefined;
453
+ /**
454
+ * Clockwise rotation in degrees (`a:xfrm/@rot`).
455
+ * Wire uses ST_Angle = degrees × 60000. Missing attribute reads as `0`.
456
+ * `@rot` is omitted on encode when the value is `0`.
457
+ *
458
+ * @throws RangeError when the value is not finite.
459
+ *
460
+ * @public
461
+ */
462
+ rotation: number;
463
+ /**
464
+ * Aspect-ratio lock (`a:graphicFrameLocks/@noChangeAspect`).
465
+ * Authoring default is `true`; missing locks on load read as `false`.
466
+ * Setting the flag does not recompute width/height (images parity).
467
+ *
468
+ * @public
469
+ */
470
+ lockAspectRatio: boolean;
471
+ /**
472
+ * Horizontal flip (`a:xfrm/@flipH`). Missing attribute reads as `false`.
473
+ *
474
+ * @public
475
+ */
476
+ flipHorizontal: boolean;
477
+ /**
478
+ * Vertical flip (`a:xfrm/@flipV`). Missing attribute reads as `false`.
479
+ *
480
+ * @public
481
+ */
482
+ flipVertical: boolean;
483
+ /**
484
+ * Text wrapping style.
485
+ *
486
+ * - `'inline'` serializes as `wp:inline`. Collapsing an anchored shape to
487
+ * inline **drops** position and wrap residual by design (images parity).
488
+ * - Other values promote to `wp:anchor` with the matching `wp:wrap*` child.
489
+ * Tight/through without a residual wrapPolygon fall back to `wrapNone`
490
+ * (library does not invent polygons).
491
+ *
492
+ * VML leaves report `'none'`.
493
+ *
494
+ * @throws RangeError when `value` is not a known {@link TextWrappingStyle}.
495
+ *
496
+ * @public
497
+ */
498
+ /** @private */
499
+ /** @private */
500
+ private wrappingStyleInternal;
501
+ /**
502
+ * Distance from text above the shape (`wp:inline|wp:anchor/@distT`).
503
+ * Missing residual attribute reads as `emuToPoint(0)`.
504
+ *
505
+ * @public
506
+ */
507
+ /** @private */
508
+ /** @private */
509
+ private distanceTopInternal;
510
+ /**
511
+ * Distance from text below the shape (`wp:inline|wp:anchor/@distB`).
512
+ * Missing residual attribute reads as `0` points.
513
+ *
514
+ * @public
515
+ */
516
+ /** @private */
517
+ /** @private */
518
+ private distanceBottomInternal;
519
+ /**
520
+ * Distance from text to the left of the shape (`wp:inline|wp:anchor/@distL`).
521
+ * Missing residual on anchor reads as author default `emuToPoint(114300)`; inline `0` points.
522
+ *
523
+ * @public
524
+ */
525
+ /** @private */
526
+ /** @private */
527
+ private distanceLeftInternal;
528
+ /**
529
+ * Distance from text to the right of the shape (`wp:inline|wp:anchor/@distR`).
530
+ * Missing residual on anchor reads as author default `emuToPoint(114300)`; inline `0` points.
531
+ *
532
+ * @public
533
+ */
534
+ /** @private */
535
+ /** @private */
536
+ private distanceRightInternal;
537
+ /**
538
+ * Whether the shape is behind document text (`wp:anchor/@behindDoc`).
539
+ * Inline hosts always report `false`. VML leaves report `false`.
540
+ *
541
+ * @private
542
+ */
543
+ /**
544
+ * Whether the shape is drawn below text (`wp:anchor/@behindDoc`).
545
+ * @public
546
+ */
547
+ isBelowText: boolean;
548
+ /**
549
+ * Horizontal origin (`wp:positionH/@relativeFrom`, `ST_RelFromH`).
550
+ * Missing residual position reads as {@link HorizontalOrigin.Column}.
551
+ * Effective getter never returns `undefined` and does not dirty on read.
552
+ *
553
+ * @throws RangeError when `value` is not a known {@link HorizontalOrigin}.
554
+ *
555
+ * @public
556
+ */
557
+ horizontalOrigin: HorizontalOriginType;
558
+ /**
559
+ * Vertical origin (`wp:positionV/@relativeFrom`, `ST_RelFromV`).
560
+ * Missing residual position reads as {@link VerticalOrigin.Paragraph}.
561
+ * Effective getter never returns `undefined` and does not dirty on read.
562
+ *
563
+ * @throws RangeError when `value` is not a known {@link VerticalOrigin}.
564
+ *
565
+ * @public
566
+ */
567
+ verticalOrigin: VerticalOriginType;
568
+ /**
569
+ * Horizontal offset (`wp:positionH/wp:posOffset`).
570
+ * Setting a defined offset clears {@link horizontalAlignment} (align XOR
571
+ * posOffset — CT_PosH schema choice). Setting `undefined` clears the modeled
572
+ * offset (encoder then falls back to offset `0` unless align is modeled).
573
+ *
574
+ * @public
575
+ */
576
+ horizontalPosition: number | undefined;
577
+ /**
578
+ * Vertical offset (`wp:positionV/wp:posOffset`).
579
+ * Setting a defined offset clears {@link verticalAlignment} (align XOR
580
+ * posOffset — CT_PosV schema choice). Setting `undefined` clears the modeled
581
+ * offset (encoder then falls back to offset `0` unless align is modeled).
582
+ *
583
+ * @public
584
+ */
585
+ verticalPosition: number | undefined;
586
+ /**
587
+ * Horizontal alignment (`wp:positionH/wp:align`, `ST_AlignH`).
588
+ * Setting a defined alignment clears {@link horizontalPosition} (align XOR
589
+ * posOffset — CT_PosH schema choice). Effective value is never undefined:
590
+ * modeled alignment, else residual align, else {@link HorizontalAlignment.None}
591
+ * when the axis uses posOffset or the leaf is VML.
592
+ *
593
+ * @throws RangeError when `value` is not a known {@link HorizontalAlignment}.
594
+ *
595
+ * @public
596
+ */
597
+ horizontalAlignment: HorizontalAlignmentType;
598
+ /**
599
+ * Vertical alignment (`wp:positionV/wp:align`, `ST_AlignV`).
600
+ * Setting a defined alignment clears {@link verticalPosition} (align XOR
601
+ * posOffset — CT_PosV schema choice). Effective value is never undefined:
602
+ * modeled alignment, else residual align, else {@link VerticalAlignment.None}
603
+ * when the axis uses posOffset or the leaf is VML.
604
+ *
605
+ * @throws RangeError when `value` is not a known {@link VerticalAlignment}.
606
+ *
607
+ * @public
608
+ */
609
+ verticalAlignment: VerticalAlignmentType;
610
+ /**
611
+ * Lock anchor (`wp:anchor/@locked`): the anchor location must not be modified
612
+ * at runtime by an application editing the document (ECMA-376-1 §20.4.2.1).
613
+ * Inline and VML leaves report `false`.
614
+ *
615
+ * @public
616
+ */
617
+ lockAnchor: boolean;
618
+ /**
619
+ * Allow overlap (`wp:anchor/@allowOverlap`). Inline and VML leaves report
620
+ * `false` (inline hosts have no anchor surface).
621
+ *
622
+ * @public
623
+ */
624
+ /** @private */
625
+ /** @private */
626
+ private allowOverlapInternal;
627
+ /**
628
+ * Layout in table cell (`wp:anchor/@layoutInCell`). Inline and VML leaves
629
+ * report `false` (inline hosts have no anchor surface).
630
+ *
631
+ * @public
632
+ */
633
+ layoutInCell: boolean;
634
+ /** Lazy spPr state read (cached per instance; invalidated on structure dirty). */
635
+ private readSpPrState;
636
+ /**
637
+ * Preset geometry token (`a:prstGeom/@prst`, `ST_ShapeType`).
638
+ * `undefined` when spPr is absent, has `a:custGeom`, or the `@prst` token is
639
+ * not in the schema set (residual passthrough). VML reads `undefined`.
640
+ *
641
+ * @throws RangeError when set to a value outside `ST_ShapeType`.
642
+ *
643
+ * @private
644
+ */
645
+ presetGeometryToken: string | undefined;
646
+ /**
647
+ * Fill MVP (`CT_ShapeProperties` `EG_FillProperties`).
648
+ *
649
+ * Reads:
650
+ * - `a:solidFill/a:srgbClr` → `{ kind: 'solid', srgb }`
651
+ * - `a:noFill` → `{ kind: 'none' }`
652
+ * - `a:pattFill` → `{ kind: 'pattern', preset }` (residual-preserving slice)
653
+ * - theme/absent/gradient/picture → `undefined` or `{ kind: 'theme' }`
654
+ * (never an invented color); check {@link DrawingShape.hasThemeStyle}.
655
+ *
656
+ * Setting `solid`/`none` marks the shape structure dirty and replaces the
657
+ * spPr fill child (`wps:style` theme refs stay residual per GO).
658
+ *
659
+ * @public
660
+ */
661
+ /** @private */
662
+ /** @private */
663
+ private fillInternal;
664
+ /**
665
+ * Line MVP (`a:ln`). `kind: 'theme'` when absent/non-srgb (inherited from
666
+ * `wps:style`); `kind: 'none'` when `a:ln/a:noFill`; `residual: true` flags a
667
+ * line with unmodeled children (join/custDash/nknown dash) — mutating it
668
+ * would drop those children, so serialization keeps the residual element
669
+ * unless the caller models it explicitly.
670
+ *
671
+ * @public
672
+ */
673
+ /** @private */
674
+ /** @private */
675
+ private lineInternal;
676
+ /**
677
+ * Whether theme formatting (`wps:style` with `lnRef`/`fillRef`/`effectRef`/
678
+ * `fontRef`) is present on the shape. Theme-styled shapes without a solid
679
+ *
680
+ * @private
681
+ * override read fill/line as `theme`/`undefined` — set {@link fill}/
682
+ * {@link line} to replace.
683
+ */
684
+ readonly hasThemeStyle: boolean;
685
+ /**
686
+ * Lazy residual txbx state read (cached per instance).
687
+ * @private
688
+ */
689
+ private readTxbxState;
690
+ /**
691
+ * Paragraph-owner context for lazy body parse.
692
+ * @private
693
+ */
694
+ private textBoxOwnerForParse;
695
+ /**
696
+ * Whether this shape hosts a WordprocessingShape text box
697
+ * (`wps:txbx` child). Deep residual walk only — does **not** materialize
698
+ * the body block state (reads stay byte-stable). `linkedTxbx` also reports
699
+ * true for guard purposes — linked text boxes are out of scope (GO) but
700
+ * body APIs still throw the documented non-textBox error only when no txbx
701
+ * of any kind exists.
702
+ *
703
+ * @private
704
+ */
705
+ isTextBox(): boolean;
706
+ /**
707
+ * Whether the residual root carries a Markup Compatibility Fallback branch
708
+ * with a VML `w:pict` tree (Policy B dual AC — TASK-8050).
709
+ *
710
+ * True for authored dual AC and for residual Choice+Fallback fixtures.
711
+ * Pure DrawingML-only or pure VML leaves return false. Does not execute VML.
712
+ *
713
+ * @private
714
+ */
715
+ hasVmlFallback(): boolean;
716
+ /** Guard for body APIs on non-textBox shapes. */
717
+ private requireTextBox;
718
+ /**
719
+ * Lazy residual bodyPr state read (cached per instance).
720
+ * @private
721
+ */
722
+ private readBodyPrState;
723
+ /**
724
+ * Persist a modeled bodyPr slice (marks structure dirty).
725
+ * @private
726
+ */
727
+ private writeBodyPrField;
728
+ /**
729
+ * Text anchor inside the shape (`wps:bodyPr/@anchor`,
730
+ * `ST_TextAnchoringType`: `t|ctr|b|just|dist`). `undefined` = attribute
731
+ * absent (Word default `t`).
732
+ *
733
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
734
+ *
735
+ * @private
736
+ */
737
+ /**
738
+ * Text anchor inside the shape (`wps:bodyPr/@anchor`,
739
+ * `ST_TextAnchoringType`: `t|ctr|b|just|dist`). `undefined` = attribute
740
+ * absent (Word default `t`).
741
+ *
742
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
743
+ *
744
+ * @private
745
+ */
746
+ verticalAnchor: TextAnchoring | undefined;
747
+ /**
748
+ * Center anchoring (`wps:bodyPr/@anchorCtr`). `undefined` = attribute absent.
749
+ *
750
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
751
+ *
752
+ * @private
753
+ */
754
+ /**
755
+ * Center anchoring (`wps:bodyPr/@anchorCtr`). `undefined` = attribute absent.
756
+ *
757
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
758
+ *
759
+ * @private
760
+ */
761
+ anchorCenter: boolean | undefined;
762
+ /**
763
+ * Vertical text type (`wps:bodyPr/@vert`, `ST_TextVerticalType`).
764
+ * `undefined` = attribute absent (horizontal).
765
+ *
766
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
767
+ *
768
+ * @public
769
+ */
770
+ textDirection: TextVerticalType | undefined;
771
+ /**
772
+ * Text wrap inside the shape (`wps:bodyPr/@wrap`,
773
+ * `ST_TextWrappingType`: `none|square` only per schema).
774
+ * `undefined` = attribute absent (square).
775
+ *
776
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
777
+ *
778
+ * @private
779
+ */
780
+ /**
781
+ * Text wrap inside the shape (`wps:bodyPr/@wrap`,
782
+ * `ST_TextWrappingType`: `none|square` only per schema).
783
+ * `undefined` = attribute absent (square).
784
+ *
785
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
786
+ *
787
+ * @private
788
+ */
789
+ textWrapInside: TextBodyWrap | undefined;
790
+ /**
791
+ * Vertical text overflow (`wps:bodyPr/@vertOverflow`,
792
+ * `ST_TextVertOverflowType`). `undefined` = attribute absent.
793
+ *
794
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
795
+ *
796
+ * @private
797
+ */
798
+ /**
799
+ * Vertical text overflow (`wps:bodyPr/@vertOverflow`,
800
+ * `ST_TextVertOverflowType`). `undefined` = attribute absent.
801
+ *
802
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
803
+ *
804
+ * @private
805
+ */
806
+ verticalOverflow: TextVertOverflow | undefined;
807
+ /**
808
+ * Horizontal text overflow (`wps:bodyPr/@horzOverflow`,
809
+ * `ST_TextHorzOverflowType`). `undefined` = attribute absent.
810
+ *
811
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
812
+ *
813
+ * @private
814
+ */
815
+ /**
816
+ * Horizontal text overflow (`wps:bodyPr/@horzOverflow`,
817
+ * `ST_TextHorzOverflowType`). `undefined` = attribute absent.
818
+ *
819
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
820
+ *
821
+ * @private
822
+ */
823
+ horizontalOverflow: TextHorzOverflow | undefined;
824
+ /**
825
+ * WordArt source flag (`wps:bodyPr/@fromWordArt`). `undefined` = absent.
826
+ * Flag only — no WordArt pipeline (GO).
827
+ *
828
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
829
+ *
830
+ * @private
831
+ */
832
+ /**
833
+ * WordArt source flag (`wps:bodyPr/@fromWordArt`). `undefined` = absent.
834
+ * Flag only — no WordArt pipeline (GO).
835
+ *
836
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
837
+ *
838
+ * @private
839
+ */
840
+ fromWordArt: boolean | undefined;
841
+ /**
842
+ * Text insets (`wps:bodyPr/@lIns|tIns|rIns|bIns`, `ST_Coordinate32` EMU).
843
+ * Non-negative EMU `Point`; `undefined` per side = attribute absent
844
+ * (Word default 91440/45720/91440/45720). Absent insets object = no
845
+ * inset attribute modeled.
846
+ *
847
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
848
+ *
849
+ * @private
850
+ */
851
+ /**
852
+ * Text insets (`wps:bodyPr/@lIns|tIns|rIns|bIns`, `ST_Coordinate32` EMU).
853
+ * Non-negative EMU `Point`; `undefined` per side = attribute absent
854
+ * (Word default 91440/45720/91440/45720). Absent insets object = no
855
+ * inset attribute modeled.
856
+ *
857
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
858
+ *
859
+ * @private
860
+ */
861
+ insets: BodyInsets | undefined;
862
+ /**
863
+ * Autofit choice (`wps:bodyPr` child: `a:noAutofit` | `a:normAutofit` |
864
+ * `a:spAutoFit`, `EG_TextAutofit`). `undefined` = no autofit child
865
+ * (Word default noAutofit). Residual `a:prstTxWarp` / 3D / extLst stay
866
+ * residual — setting any bodyPr field rebuilds bodyPr without them
867
+ * (residual flag on read documents what was dropped).
868
+ *
869
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
870
+ *
871
+ * @private
872
+ */
873
+ /**
874
+ * Text insets (`wps:bodyPr/@lIns|tIns|rIns|bIns`, `ST_Coordinate32` EMU).
875
+ * Non-negative EMU `Point`; `undefined` per side = attribute absent
876
+ * (Word default 91440/45720/91440/45720). Absent insets object = no
877
+ * inset attribute modeled.
878
+ *
879
+ * @throws DocxError `content/invalid-shape` on a VML leaf.
880
+ *
881
+ * @private
882
+ */
883
+ autoFit: TextAutoFit | undefined;
884
+ /**
885
+ * Whether residual `wps:bodyPr` carries unmodeled content (`a:prstTxWarp`,
886
+ * 3D children, `extLst`, unknown attributes). Read-only; mutating any
887
+ * bodyPr field rebuilds `wps:bodyPr` from modeled state and drops the
888
+ * residual children (documented in the mapping).
889
+ *
890
+ * @private
891
+ */
892
+ readonly bodyPrResidual: boolean;
893
+ /**
894
+ * Whether the residual bodyPr has WordArt warp (`a:prstTxWarp` child).
895
+ * Read-only flag — warp is not modeled (never invented).
896
+ *
897
+ * @private
898
+ */
899
+ readonly hasPresetTextWarp: boolean;
900
+ /**
901
+ * Modeled blocks inside `w:txbxContent` (GO Q6). Public consumers use
902
+ * {@link Shape.items} / {@link Shape.insertBodyItemAt}.
903
+ * Projects internal {@link BlockContent} store via body-item adapters.
904
+ *
905
+ * @private
906
+ */
907
+ readonly blocks: ReadonlyArray<BodyItem>;
908
+ /**
909
+ * Insert a body item at `index` in the text box block list.
910
+ * Public consumers use {@link Shape.insertBodyItemAt}.
911
+ *
912
+ * @private
913
+ */
914
+ insertBodyItemAt(index: number, item: BodyItem): BodyItem;
915
+ /**
916
+ * Remove the body item at `index` in the text box block list.
917
+ * Public consumers use {@link Shape.removeBodyItemAt}.
918
+ *
919
+ * @private
920
+ */
921
+ removeBodyItemAt(index: number): void;
922
+ /**
923
+ * Remove a body item from the text box block list by projected identity.
924
+ * Public consumers use {@link Shape.removeBodyItem}.
925
+ *
926
+ * @private
927
+ */
928
+ removeBodyItem(item: BodyItem): void;
929
+ /**
930
+ * @private
931
+ * Txbx block store for TextBoxParagraphOwner attach checks.
932
+ */
933
+ internalBlocks(): ReadonlyArray<BlockContent>;
934
+ /**
935
+ * @private
936
+ * Owning document for textbox body paragraphs. Resolves through
937
+ * the anchoring paragraph when bound; throws detached otherwise.
938
+ */
939
+ internalOwningDocument(): WordDocument;
940
+ /**
941
+ * Anchoring paragraph (bound at append/load time).
942
+ * @private
943
+ */
944
+ private anchoringParagraph;
945
+ /**
946
+ * @private
947
+ * Bind the anchoring paragraph for textbox owner document resolution. */
948
+ /** @private */
949
+ /** Anchoring paragraph accessor; package-visible for GroupShape reparenting. @private */
950
+ getAnchoringParagraph(): Paragraph | undefined;
951
+ bindAnchoringParagraph(paragraph: Paragraph | undefined): void;
952
+ /**
953
+ * Relationship ids referenced by `r:embed` or `r:link` in the preserved subtree.
954
+ *
955
+ * @private
956
+ */
957
+ relationshipIds(): ReadonlyArray<string>;
958
+ /**
959
+ * @private
960
+ */
961
+ toOpenXml(): OpenXmlElement;
962
+ /**
963
+ * Replace the materialized `w:txbxContent` inside a cloned residual host
964
+ * (identity / layout dirty paths keep everything else verbatim).
965
+ */
966
+ private replaceTxbxContentInResidual;
967
+ private drawingRoot;
968
+ private markIdentityDirty;
969
+ /**
970
+ * Promote to layout dirty. Never demotes `structure`.
971
+ * Hydrates size/transform/lock from residual when leaving `clean`/`identity`.
972
+ */
973
+ private markLayoutDirty;
974
+ /**
975
+ * Promote the leaf to a textBox variant (`wps:txbx` modeled).
976
+ * Never demotes; idempotent once set.
977
+ * @private
978
+ */
979
+ private markTxbxBodyModeled;
980
+ /**
981
+ * Promote to structure dirty (host kind / wrap / distances / behindDoc).
982
+ * Never demotes. Hydrates identity, layout, wrap, and presetGeometry from residual.
983
+ */
984
+ /** Promote dirty mode to structure; package-visible for GroupShape. @private */
985
+ markStructureDirty(): void;
986
+ private hydrateIdentityAndLayoutFromResidual;
987
+ /**
988
+ * Read identity from nested `wps:cNvPr` / `wpg:cNvPr` when residual is a bare
989
+ * nested shape/group; otherwise from top-level `wp:docPr`.
990
+ */
991
+ private readResidualIdentity;
992
+ /**
993
+ * Parse nested `wps:wsp` / `wpg:grpSp` children under residual `wpg:wgp` or
994
+ * `wpc:wpc` (TASK-8051). Unknown residual siblings are not modeled as children.
995
+ */
996
+ private parseNestedChildrenFromResidual;
997
+ /**
998
+ * Materialize residual or cached children into {@link childrenValue} so nested
999
+ * authoring can push without dropping lazy residual siblings.
1000
+ */
1001
+ protected ensureChildrenModeled(): void;
1002
+ /**
1003
+ * Allocate a package-unique cNvPr/docPr id for a nested child using the
1004
+ * top-level host's anchoring paragraph when available.
1005
+ */
1006
+ private allocateNestedDocPrId;
1007
+ /** True when any nested child (direct) is not clean. */
1008
+ private hasDirtyNestedChildren;
1009
+ /**
1010
+ * Clone residual host and replace nested wsp/grpSp under wgp/wpc with each
1011
+ * child's {@link toOpenXml}, preserving grpSpPr and unknown residual siblings.
1012
+ */
1013
+ private rewriteResidualNestedChildren;
1014
+ /**
1015
+ * Nested child dirt must surface on save even when the parent residual stays
1016
+ * clean — notify by ensuring children are modeled (so hasDirtyNestedChildren
1017
+ * can see them). Parent dirtyMode is left alone; toOpenXml rewrites kids.
1018
+ */
1019
+ protected notifyParentOfChildDirty(): void;
1020
+ private readDistancePoints;
1021
+ }
1022
+ /**
1023
+ * Leaf DrawingML / VML shape (preset geometry, fill/line, optional text box).
1024
+ *
1025
+ * Inherits identity, placement, size, wrap, and position format from
1026
+ * {@link DrawingShape}. Text-box body content uses {@link Shape.items}.
1027
+ * Group hosts use {@link GroupShape}.
1028
+ *
1029
+ * @public
1030
+ */
1031
+ export declare class Shape extends DrawingShape {
1032
+ /**
1033
+ * Public discriminant for {@link Paragraph.items} ({@link EntityType.Shape}).
1034
+ * @public
1035
+ */
1036
+ readonly type: EntityType.Shape | EntityType.GroupShape;
1037
+ /**
1038
+ * @private
1039
+ */
1040
+ constructor(encoding: DrawingEncoding, element: OpenXmlElement);
1041
+ /**
1042
+ * @private
1043
+ */
1044
+ constructor(init: DrawingShapeInit);
1045
+ /**
1046
+ * Ordered text-box body children ({@link BodyItem}) — paragraphs, tables,
1047
+ * block content controls, and residual-opaque blocks in document order.
1048
+ *
1049
+ * Requires a text-box variant (`wps:txbx`). Mutate only through
1050
+ * {@link insertBodyItemAt}, {@link removeBodyItemAt}, and {@link removeBodyItem}.
1051
+ *
1052
+ * @throws DocxError `content/invalid-shape` when the shape is not a text box.
1053
+ *
1054
+ * @public
1055
+ */
1056
+ readonly items: ReadonlyArray<BodyItem>;
1057
+ /**
1058
+ * Inserts a body item at `index` in {@link Shape.items}
1059
+ * (`0…length` inclusive — insert-before / append).
1060
+ *
1061
+ * Attaches paragraphs and binds feature blocks to the owning document.
1062
+ * Returns the same `item` reference for chaining (API-RULES R1.1).
1063
+ *
1064
+ * @param index - Index in {@link Shape.items}.
1065
+ * @param item - Paragraph, feature, or opaque body child.
1066
+ * @returns The inserted {@link BodyItem}.
1067
+ * @throws RangeError if `index` is out of range.
1068
+ * @throws DocxError `content/invalid-shape` when the shape is not a text box.
1069
+ *
1070
+ * @public
1071
+ */
1072
+ insertBodyItemAt(index: number, item: BodyItem): BodyItem;
1073
+ /**
1074
+ * Removes the body item at `index` in {@link Shape.items}
1075
+ * (`0…length-1`). Paragraphs detach; feature blocks may release content.
1076
+ *
1077
+ * @param index - Index in {@link Shape.items}.
1078
+ * @throws RangeError if `index` is out of range.
1079
+ * @throws DocxError `content/invalid-shape` when the shape is not a text box.
1080
+ *
1081
+ * @public
1082
+ */
1083
+ removeBodyItemAt(index: number): void;
1084
+ /**
1085
+ * Removes a body item from {@link Shape.items}.
1086
+ *
1087
+ * Matches by collection entry identity first, then by payload identity
1088
+ * (same {@link Paragraph}, feature value, or opaque XML node).
1089
+ *
1090
+ * @param item - Entry from `items`, or an equivalent payload wrapper.
1091
+ * @throws DetachedObjectError if `item` is not in this text box.
1092
+ * @throws DocxError `content/invalid-shape` when the shape is not a text box.
1093
+ *
1094
+ * @public
1095
+ */
1096
+ removeBodyItem(item: BodyItem): void;
1097
+ }
1098
+ /**
1099
+ * DrawingML group or canvas host with nested {@link Shape} / {@link GroupShape}
1100
+ * children (TASK-8051).
1101
+ *
1102
+ * Inherits identity, placement, size, wrap, and position format from
1103
+ * {@link DrawingShape}. Nested children are exposed as {@link childShapes};
1104
+ * author nested leaves with {@link appendShape}.
1105
+ *
1106
+ * @public
1107
+ */
1108
+ export declare class GroupShape extends Shape {
1109
+ /**
1110
+ * Public discriminant for {@link Paragraph.items} ({@link EntityType.GroupShape}).
1111
+ * @public
1112
+ */
1113
+ readonly type: EntityType.GroupShape;
1114
+ /**
1115
+ * @private
1116
+ */
1117
+ constructor(encoding: DrawingEncoding, element: OpenXmlElement);
1118
+ /**
1119
+ * @private
1120
+ */
1121
+ constructor(init: DrawingShapeInit);
1122
+ /**
1123
+ * Nested DrawingML children under this group or canvas, in document order.
1124
+ * @public
1125
+ */
1126
+ readonly childShapes: ReadonlyArray<DrawingShape>;
1127
+ /**
1128
+ * Nested child items (collection surface).
1129
+ * @public
1130
+ */
1131
+ readonly childItems: ReadonlyArray<DrawingShape>;
1132
+ /**
1133
+ * Nested DrawingML children under this group or canvas.
1134
+ * @private
1135
+ */
1136
+ children(): ReadonlyArray<DrawingShape>;
1137
+ /**
1138
+ * Add an existing drawing leaf as a nested child. Detaches from anchoring paragraph when needed.
1139
+ * @public
1140
+ */
1141
+ add(paragraphItem: DrawingShape | {
1142
+ readonly type?: string;
1143
+ readonly value?: unknown;
1144
+ }): void;
1145
+ /**
1146
+ * Ungroup children into an array of drawing leaves.
1147
+ * @public
1148
+ */
1149
+ unGroup(): ReadonlyArray<DrawingShape>;
1150
+ /**
1151
+ * Append a nested preset-geometry {@link Shape} under this group.
1152
+ * @public
1153
+ */
1154
+ appendShape(autoShapeType: AutoShapeType, width: number, height: number): Shape;
1155
+ /** @private */
1156
+ writeShapeFillState(_value: ShapeFill | undefined): void;
1157
+ /** @private */
1158
+ writeShapeLineState(_value: ShapeLine | undefined): void;
1159
+ /** @private */
1160
+ writeTextFrameDirection(_value: TextDirection | undefined): void;
1161
+ /** @private */
1162
+ writeTextFrameVerticalAlignment(_value: TextVerticalAlignment | undefined): void;
1163
+ /** @private */
1164
+ ensureTextBodyAccessible(): void;
1165
+ }
1166
+ /**
1167
+ * Construct {@link Shape} or {@link GroupShape} from a residual host element.
1168
+ * Nested `wps:wsp` / `wpg:grpSp` residuals and top-level dual-AC trees are
1169
+ * classified by residual localName / Choice URI (TASK-8051).
1170
+ *
1171
+ * @private
1172
+ */
1173
+ export declare function createDrawingShape(encoding: DrawingEncoding, element: OpenXmlElement): DrawingShape;
1174
+ /**
1175
+ * Construct {@link Shape} or {@link GroupShape} from an authored / modeled init.
1176
+ * Modeled `children` (including `[]`) always yields {@link GroupShape}.
1177
+ *
1178
+ * @private
1179
+ */
1180
+ export declare function createDrawingShapeFromInit(init: DrawingShapeInit): DrawingShape;
1181
+ /**
1182
+ * Type guard for leaf {@link Shape} instances (not group/canvas hosts).
1183
+ *
1184
+ * @private
1185
+ */
1186
+ export declare function isShape(value: DrawingShape): value is Shape;
1187
+ /**
1188
+ * Type guard for {@link GroupShape} group/canvas hosts.
1189
+ *
1190
+ * @private
1191
+ */
1192
+ export declare function isGroupShape(value: DrawingShape): value is GroupShape;