@league-of-foundry-developers/foundry-vtt-types 13.340.0 → 13.345.1-beta.20250704.94554

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 (1307) hide show
  1. package/README.md +17 -40
  2. package/package.json +64 -48
  3. package/src/configuration/configuration.d.mts +70 -35
  4. package/src/configuration/documents.d.mts +316 -0
  5. package/src/configuration/globals.d.mts +78 -117
  6. package/src/configuration/hooks.d.mts +96 -0
  7. package/src/configuration/index.d.mts +2 -0
  8. package/src/foundry/client/_module.d.mts +112 -0
  9. package/src/foundry/client/_types.d.mts +98 -0
  10. package/src/foundry/client/applications/_module.d.mts +30 -0
  11. package/src/foundry/client/applications/api/application.d.mts +966 -0
  12. package/src/foundry/client/applications/api/category-browser.d.mts +130 -0
  13. package/src/foundry/client/applications/api/dialog.d.mts +641 -0
  14. package/src/foundry/client/applications/api/document-sheet.d.mts +207 -0
  15. package/src/foundry/client/applications/api/handlebars-application.d.mts +240 -0
  16. package/src/foundry/client/applications/apps/av/camera-popout.d.mts +44 -0
  17. package/src/foundry/client/applications/apps/av/cameras.d.mts +118 -0
  18. package/src/foundry/client/applications/apps/combat-tracker-config.d.mts +45 -0
  19. package/src/foundry/client/applications/apps/compendium-art-config.d.mts +73 -0
  20. package/src/foundry/client/applications/apps/document-ownership.d.mts +51 -0
  21. package/src/foundry/client/applications/apps/document-sheet-config.d.mts +109 -0
  22. package/src/foundry/client/applications/apps/file-picker.d.mts +453 -0
  23. package/src/foundry/client/applications/apps/grid-config.d.mts +51 -0
  24. package/src/foundry/client/applications/apps/image-popout.d.mts +111 -0
  25. package/src/foundry/client/applications/apps/permission-config.d.mts +79 -0
  26. package/src/foundry/client/applications/dice/roll-resolver.d.mts +125 -0
  27. package/src/foundry/client/applications/elements/document-tags.d.mts +93 -0
  28. package/src/foundry/client/applications/elements/file-picker.d.mts +63 -0
  29. package/src/foundry/client/applications/elements/form-element.d.mts +108 -0
  30. package/src/foundry/client/applications/elements/multi-select.d.mts +107 -0
  31. package/src/foundry/client/applications/elements/prosemirror-editor.d.mts +54 -0
  32. package/src/foundry/client/applications/forms/fields.d.mts +271 -0
  33. package/src/foundry/client/applications/handlebars.d.mts +475 -0
  34. package/src/foundry/client/applications/hud/container.d.mts +50 -0
  35. package/src/foundry/client/applications/hud/drawing-hud.d.mts +47 -0
  36. package/src/foundry/client/applications/hud/placeable-hud.d.mts +66 -0
  37. package/src/foundry/client/applications/hud/tile-hud.d.mts +43 -0
  38. package/src/foundry/client/applications/hud/token-hud.d.mts +48 -0
  39. package/src/foundry/client/applications/quickstart.d.mts +45 -0
  40. package/src/foundry/client/applications/settings/_module.d.mts +8 -0
  41. package/src/foundry/client/applications/settings/config.d.mts +63 -0
  42. package/src/foundry/client/applications/settings/dependency-resolution.d.mts +40 -0
  43. package/src/foundry/client/applications/settings/menus/av-config.d.mts +50 -0
  44. package/src/foundry/client/applications/settings/menus/default-sheets-config.d.mts +49 -0
  45. package/src/foundry/client/applications/settings/menus/dice-config.d.mts +38 -0
  46. package/src/foundry/client/applications/settings/menus/font-config.d.mts +66 -0
  47. package/src/foundry/client/applications/settings/menus/prototype-overrides.d.mts +47 -0
  48. package/src/foundry/client/applications/settings/menus/ui-config.d.mts +49 -0
  49. package/src/foundry/client/applications/sheets/_module.d.mts +39 -0
  50. package/src/foundry/client/applications/sheets/active-effect-config.d.mts +51 -0
  51. package/src/foundry/client/applications/sheets/actor-sheet.d.mts +56 -0
  52. package/src/foundry/client/applications/sheets/adventure-exporter.d.mts +51 -0
  53. package/src/foundry/client/applications/sheets/adventure-importer.d.mts +49 -0
  54. package/src/foundry/client/applications/sheets/ambient-light-config.d.mts +115 -0
  55. package/src/foundry/client/applications/sheets/ambient-sound-config.d.mts +77 -0
  56. package/src/foundry/client/applications/sheets/base-sheet.d.mts +53 -0
  57. package/src/foundry/client/applications/sheets/card-config.d.mts +51 -0
  58. package/src/foundry/client/applications/sheets/cards-config.d.mts +135 -0
  59. package/src/foundry/client/applications/sheets/combatant-config.d.mts +51 -0
  60. package/src/foundry/client/applications/sheets/drawing-config.d.mts +51 -0
  61. package/src/foundry/client/applications/sheets/folder-config.d.mts +51 -0
  62. package/src/foundry/client/applications/sheets/item-sheet.d.mts +48 -0
  63. package/src/foundry/client/applications/sheets/journal/dialog-show.d.mts +42 -0
  64. package/src/foundry/client/applications/sheets/journal/journal-entry-category-config.d.mts +51 -0
  65. package/src/foundry/client/applications/sheets/journal/journal-entry-page-hbs-sheet.d.mts +41 -0
  66. package/src/foundry/client/applications/sheets/journal/journal-entry-page-image-sheet.d.mts +38 -0
  67. package/src/foundry/client/applications/sheets/journal/journal-entry-page-markdown-sheet.d.mts +38 -0
  68. package/src/foundry/client/applications/sheets/journal/journal-entry-page-pdf-sheet.d.mts +38 -0
  69. package/src/foundry/client/applications/sheets/journal/journal-entry-page-prose-mirror-sheet.d.mts +38 -0
  70. package/src/foundry/client/applications/sheets/journal/journal-entry-page-sheet.d.mts +50 -0
  71. package/src/foundry/client/applications/sheets/journal/journal-entry-page-text-sheet.d.mts +38 -0
  72. package/src/foundry/client/applications/sheets/journal/journal-entry-page-video-sheet.d.mts +40 -0
  73. package/src/foundry/client/applications/sheets/journal/journal-entry-sheet.d.mts +69 -0
  74. package/src/foundry/client/applications/sheets/macro-config.d.mts +51 -0
  75. package/src/foundry/client/applications/sheets/note-config.d.mts +51 -0
  76. package/src/foundry/client/applications/sheets/playlist-config.d.mts +51 -0
  77. package/src/foundry/client/applications/sheets/playlist-sound-config.d.mts +51 -0
  78. package/src/foundry/client/applications/sheets/region-behavior-config.d.mts +68 -0
  79. package/src/foundry/client/applications/sheets/region-config.d.mts +76 -0
  80. package/src/foundry/client/applications/sheets/roll-table-sheet.d.mts +51 -0
  81. package/src/foundry/client/applications/sheets/scene-config.d.mts +51 -0
  82. package/src/foundry/client/applications/sheets/table-result-config.d.mts +51 -0
  83. package/src/foundry/client/applications/sheets/template-config.d.mts +50 -0
  84. package/src/foundry/client/applications/sheets/tile-config.d.mts +51 -0
  85. package/src/foundry/client/applications/sheets/token/mixin.d.mts +47 -0
  86. package/src/foundry/client/applications/sheets/token/prototype-config.d.mts +41 -0
  87. package/src/foundry/client/applications/sheets/token/token-config.d.mts +51 -0
  88. package/src/foundry/client/applications/sheets/user-config.d.mts +65 -0
  89. package/src/foundry/client/applications/sheets/wall-config.d.mts +51 -0
  90. package/src/foundry/client/applications/sidebar/apps/chat-popout.d.mts +44 -0
  91. package/src/foundry/client/applications/sidebar/apps/compendium.d.mts +44 -0
  92. package/src/foundry/client/applications/sidebar/apps/controls-config.d.mts +49 -0
  93. package/src/foundry/client/applications/sidebar/apps/folder-export.d.mts +40 -0
  94. package/src/foundry/client/applications/sidebar/apps/frame-viewer.d.mts +44 -0
  95. package/src/foundry/client/applications/sidebar/apps/invitation-links.d.mts +39 -0
  96. package/src/foundry/client/applications/sidebar/apps/module-management.d.mts +42 -0
  97. package/src/foundry/client/applications/sidebar/apps/support-details.d.mts +39 -0
  98. package/src/foundry/client/applications/sidebar/apps/tours-management.d.mts +61 -0
  99. package/src/foundry/client/applications/sidebar/apps/world-config.d.mts +40 -0
  100. package/src/foundry/client/applications/sidebar/document-directory.d.mts +55 -0
  101. package/src/foundry/client/applications/sidebar/sidebar-tab.d.mts +106 -0
  102. package/src/foundry/client/applications/sidebar/sidebar.d.mts +129 -0
  103. package/src/foundry/client/applications/sidebar/tabs/actor-directory.d.mts +39 -0
  104. package/src/foundry/client/applications/sidebar/tabs/cards-directory.d.mts +39 -0
  105. package/src/foundry/client/applications/sidebar/tabs/chat.d.mts +36 -0
  106. package/src/foundry/client/applications/sidebar/tabs/combat-tracker.d.mts +283 -0
  107. package/src/foundry/client/applications/sidebar/tabs/compendium-directory.d.mts +40 -0
  108. package/src/foundry/client/applications/sidebar/tabs/item-directory.d.mts +39 -0
  109. package/src/foundry/client/applications/sidebar/tabs/journal-directory.d.mts +39 -0
  110. package/src/foundry/client/applications/sidebar/tabs/macro-directory.d.mts +39 -0
  111. package/src/foundry/client/applications/sidebar/tabs/playlist-directory.d.mts +39 -0
  112. package/src/foundry/client/applications/sidebar/tabs/roll-table-directory.d.mts +39 -0
  113. package/src/foundry/client/applications/sidebar/tabs/scene-directory.d.mts +39 -0
  114. package/src/foundry/client/applications/sidebar/tabs/settings.d.mts +39 -0
  115. package/src/foundry/client/applications/ui/game-pause.d.mts +49 -0
  116. package/src/foundry/client/applications/ui/hotbar.d.mts +52 -0
  117. package/src/foundry/client/applications/ui/main-menu.d.mts +50 -0
  118. package/src/foundry/client/applications/ui/players.d.mts +56 -0
  119. package/src/foundry/client/applications/ui/region-legend.d.mts +97 -0
  120. package/src/foundry/client/applications/ui/scene-controls.d.mts +117 -0
  121. package/src/foundry/client/applications/ui/scene-navigation.d.mts +55 -0
  122. package/src/foundry/client/applications/ux/context-menu.d.mts +327 -0
  123. package/src/foundry/client/applications/ux/drag-drop.d.mts +167 -0
  124. package/src/foundry/client/applications/ux/draggable.d.mts +156 -0
  125. package/src/foundry/client/applications/ux/form-data-extended.d.mts +89 -0
  126. package/src/foundry/client/applications/ux/html-secret.d.mts +75 -0
  127. package/src/foundry/client/applications/ux/prosemirror-editor.d.mts +199 -0
  128. package/src/foundry/client/applications/ux/search-filter.d.mts +148 -0
  129. package/src/foundry/client/applications/ux/tabs.d.mts +121 -0
  130. package/src/foundry/client/applications/ux/text-editor.d.mts +478 -0
  131. package/src/foundry/client/appv1/api/application-v1.d.mts +608 -0
  132. package/src/foundry/client/appv1/api/dialog-v1.d.mts +344 -0
  133. package/src/foundry/client/appv1/api/document-sheet-v1.d.mts +166 -0
  134. package/src/foundry/client/appv1/api/form-application-v1.d.mts +361 -0
  135. package/src/foundry/client/appv1/sheets/actor-sheet.d.mts +194 -0
  136. package/src/foundry/client/appv1/sheets/adventure-importer.d.mts +101 -0
  137. package/src/foundry/client/appv1/sheets/item-sheet.d.mts +68 -0
  138. package/src/foundry/client/appv1/sheets/journal-page-sheet.d.mts +179 -0
  139. package/src/foundry/client/appv1/sheets/journal-sheet.d.mts +325 -0
  140. package/src/foundry/client/audio/_types.d.mts +18 -0
  141. package/src/foundry/client/audio/biquad.d.mts +102 -0
  142. package/src/foundry/client/audio/cache.d.mts +79 -0
  143. package/src/foundry/client/audio/convolver.d.mts +94 -0
  144. package/src/foundry/client/audio/helper.d.mts +372 -0
  145. package/src/foundry/client/audio/sound.d.mts +509 -0
  146. package/src/foundry/client/audio/timeout.d.mts +101 -0
  147. package/src/foundry/client/av/client.d.mts +164 -161
  148. package/src/foundry/client/av/clients/simplepeer.d.mts +160 -157
  149. package/src/foundry/client/av/master.d.mts +194 -190
  150. package/src/foundry/client/av/settings.d.mts +321 -228
  151. package/src/foundry/client/canvas/_module.d.mts +23 -0
  152. package/src/foundry/client/canvas/animation/_module.d.mts +8 -0
  153. package/src/foundry/client/canvas/animation/_types.d.mts +20 -0
  154. package/src/foundry/client/canvas/animation/canvas-animation.d.mts +236 -0
  155. package/src/foundry/client/canvas/animation/chat-bubbles.d.mts +31 -0
  156. package/src/foundry/client/canvas/animation/smooth-noise.d.mts +80 -0
  157. package/src/foundry/client/canvas/board.d.mts +878 -0
  158. package/src/foundry/client/canvas/containers/_module.d.mts +25 -0
  159. package/src/foundry/client/canvas/containers/_types.d.mts +14 -0
  160. package/src/foundry/client/canvas/containers/advanced/cached-container.d.mts +138 -0
  161. package/src/foundry/client/canvas/containers/advanced/full-canvas-mixin.d.mts +28 -0
  162. package/src/foundry/client/canvas/containers/advanced/unbound-container.d.mts +21 -0
  163. package/src/foundry/client/canvas/containers/elements/control-icon.d.mts +129 -0
  164. package/src/foundry/client/canvas/containers/elements/cursor.d.mts +42 -0
  165. package/src/foundry/client/canvas/containers/elements/door-control.d.mts +90 -0
  166. package/src/foundry/client/canvas/containers/elements/door-mesh.d.mts +16 -0
  167. package/src/foundry/client/canvas/containers/elements/grid-highlight.d.mts +43 -0
  168. package/src/foundry/client/canvas/containers/elements/grid-mesh.d.mts +103 -0
  169. package/src/foundry/client/canvas/containers/elements/particles/leaves.d.mts +51 -0
  170. package/src/foundry/client/canvas/containers/elements/particles/particle-effect.d.mts +57 -0
  171. package/src/foundry/client/canvas/containers/elements/point-source-mesh.d.mts +73 -0
  172. package/src/foundry/client/canvas/containers/elements/precise-text.d.mts +46 -0
  173. package/src/foundry/client/canvas/containers/elements/quad-mesh.d.mts +54 -0
  174. package/src/foundry/client/canvas/containers/elements/resize-handle.d.mts +83 -0
  175. package/src/foundry/client/canvas/containers/elements/sprite-mesh.d.mts +370 -0
  176. package/src/foundry/client/canvas/extensions/_module.d.mts +9 -0
  177. package/src/foundry/client/canvas/extensions/circle-extension.d.mts +150 -0
  178. package/src/foundry/client/canvas/extensions/graphics-extension.d.mts +45 -0
  179. package/src/foundry/client/canvas/extensions/polygon-extension.d.mts +175 -0
  180. package/src/foundry/client/canvas/extensions/rectangle-extension.d.mts +287 -0
  181. package/src/foundry/client/canvas/framebuffer-snapshot.d.mts +33 -0
  182. package/src/foundry/client/canvas/geometry/_module.d.mts +17 -0
  183. package/src/foundry/client/canvas/geometry/_types.d.mts +34 -0
  184. package/src/foundry/client/canvas/geometry/clockwise-sweep.d.mts +281 -0
  185. package/src/foundry/client/canvas/geometry/edges/collision.d.mts +131 -0
  186. package/src/foundry/client/canvas/geometry/edges/edge.d.mts +258 -0
  187. package/src/foundry/client/canvas/geometry/edges/edges.d.mts +70 -0
  188. package/src/foundry/client/canvas/geometry/edges/vertex.d.mts +198 -0
  189. package/src/foundry/client/canvas/geometry/observable-transform.d.mts +39 -0
  190. package/src/foundry/client/canvas/geometry/quad-tree.d.mts +324 -0
  191. package/src/foundry/client/canvas/geometry/shapes/limited-angle-polygon.d.mts +143 -0
  192. package/src/foundry/client/canvas/geometry/shapes/polygon-mesher.d.mts +141 -0
  193. package/src/foundry/client/canvas/geometry/shapes/ray.d.mts +177 -0
  194. package/src/foundry/client/canvas/geometry/shapes/source-polygon.d.mts +368 -0
  195. package/src/foundry/client/canvas/geometry/unbound-transform.d.mts +22 -0
  196. package/src/foundry/client/canvas/geometry/weiler-atherton-clipping.d.mts +203 -0
  197. package/src/foundry/client/canvas/groups/_module.d.mts +14 -0
  198. package/src/foundry/client/canvas/groups/canvas-group-mixin.d.mts +178 -0
  199. package/src/foundry/client/canvas/groups/effects.d.mts +248 -0
  200. package/src/foundry/client/canvas/groups/environment.d.mts +137 -0
  201. package/src/foundry/client/canvas/groups/hidden.d.mts +65 -0
  202. package/src/foundry/client/canvas/groups/interface.d.mts +110 -0
  203. package/src/foundry/client/canvas/groups/overlay.d.mts +40 -0
  204. package/src/foundry/client/canvas/groups/primary.d.mts +237 -0
  205. package/src/foundry/client/canvas/groups/rendered.d.mts +39 -0
  206. package/src/foundry/client/canvas/groups/visibility.d.mts +263 -0
  207. package/src/foundry/client/canvas/interaction/_module.d.mts +24 -0
  208. package/src/foundry/client/canvas/interaction/_types.d.mts +18 -0
  209. package/src/foundry/client/canvas/interaction/mouse-handler.d.mts +362 -0
  210. package/src/foundry/client/canvas/interaction/ping/alert.d.mts +38 -0
  211. package/src/foundry/client/canvas/interaction/ping/arrow.d.mts +41 -0
  212. package/src/foundry/client/canvas/interaction/ping/chevron.d.mts +98 -0
  213. package/src/foundry/client/canvas/interaction/ping/ping.d.mts +86 -0
  214. package/src/foundry/client/canvas/interaction/ping/pulse.d.mts +104 -0
  215. package/src/foundry/client/canvas/interaction/render-flags.d.mts +182 -0
  216. package/src/foundry/client/canvas/interaction/ruler/base-ruler.d.mts +17 -0
  217. package/src/foundry/client/canvas/interaction/ruler/ruler.d.mts +498 -0
  218. package/src/foundry/client/canvas/layers/_module.d.mts +36 -0
  219. package/src/foundry/client/canvas/layers/_types.d.mts +26 -0
  220. package/src/foundry/client/canvas/layers/base/canvas-layer.d.mts +91 -0
  221. package/src/foundry/client/canvas/layers/base/interaction-layer.d.mts +165 -0
  222. package/src/foundry/client/canvas/layers/base/placeables-layer.d.mts +714 -0
  223. package/src/foundry/client/canvas/layers/controls.d.mts +288 -0
  224. package/src/foundry/client/canvas/layers/drawings.d.mts +123 -0
  225. package/src/foundry/client/canvas/layers/effects/background-effects.d.mts +56 -0
  226. package/src/foundry/client/canvas/layers/effects/coloration-effects.d.mts +51 -0
  227. package/src/foundry/client/canvas/layers/effects/darkness-effects.d.mts +42 -0
  228. package/src/foundry/client/canvas/layers/effects/illumination-effects.d.mts +162 -0
  229. package/src/foundry/client/canvas/layers/effects/weather-effects.d.mts +316 -0
  230. package/src/foundry/client/canvas/layers/grid.d.mts +284 -0
  231. package/src/foundry/client/canvas/layers/lighting.d.mts +92 -0
  232. package/src/foundry/client/canvas/layers/masks/depth.d.mts +68 -0
  233. package/src/foundry/client/canvas/layers/masks/occlusion.d.mts +101 -0
  234. package/src/foundry/client/canvas/layers/masks/vision.d.mts +206 -0
  235. package/src/foundry/client/canvas/layers/notes.d.mts +138 -0
  236. package/src/foundry/client/canvas/layers/regions.d.mts +123 -0
  237. package/src/foundry/client/canvas/layers/sounds.d.mts +345 -0
  238. package/src/foundry/client/canvas/layers/templates.d.mts +79 -0
  239. package/src/foundry/client/canvas/layers/tiles.d.mts +136 -0
  240. package/src/foundry/client/canvas/layers/tokens.d.mts +218 -0
  241. package/src/foundry/client/canvas/layers/walls.d.mts +218 -0
  242. package/src/foundry/client/canvas/loader.d.mts +319 -0
  243. package/src/foundry/client/canvas/perception/_module.d.mts +19 -0
  244. package/src/foundry/client/canvas/perception/_types.d.mts +12 -0
  245. package/src/foundry/client/canvas/perception/detection-mode.d.mts +173 -0
  246. package/src/foundry/client/canvas/perception/detection-modes/darkvision.d.mts +26 -0
  247. package/src/foundry/client/canvas/perception/detection-modes/invisibility-perception.d.mts +29 -0
  248. package/src/foundry/client/canvas/perception/detection-modes/light-perception.d.mts +33 -0
  249. package/src/foundry/client/canvas/perception/detection-modes/super-perception.d.mts +27 -0
  250. package/src/foundry/client/canvas/perception/detection-modes/tremor-perception.d.mts +26 -0
  251. package/src/foundry/client/canvas/perception/fog.d.mts +157 -0
  252. package/src/foundry/client/canvas/perception/perception-manager.d.mts +163 -0
  253. package/src/foundry/client/canvas/perception/vision-mode.d.mts +249 -0
  254. package/src/foundry/client/canvas/placeables/_module.d.mts +20 -0
  255. package/src/foundry/client/canvas/placeables/_types.d.mts +16 -0
  256. package/src/foundry/client/canvas/placeables/drawing.d.mts +412 -0
  257. package/src/foundry/client/canvas/placeables/light.d.mts +266 -0
  258. package/src/foundry/client/canvas/placeables/note.d.mts +203 -0
  259. package/src/foundry/client/canvas/placeables/placeable-object.d.mts +772 -0
  260. package/src/foundry/client/canvas/placeables/region.d.mts +275 -0
  261. package/src/foundry/client/canvas/placeables/regions/_module.d.mts +7 -0
  262. package/src/foundry/client/canvas/placeables/regions/geometry.d.mts +40 -0
  263. package/src/foundry/client/canvas/placeables/regions/mesh.d.mts +75 -0
  264. package/src/foundry/client/canvas/placeables/sound.d.mts +271 -0
  265. package/src/foundry/client/canvas/placeables/template.d.mts +290 -0
  266. package/src/foundry/client/canvas/placeables/tile.d.mts +349 -0
  267. package/src/foundry/client/canvas/placeables/token.d.mts +1295 -0
  268. package/src/foundry/client/canvas/placeables/tokens/_module.d.mts +13 -0
  269. package/src/foundry/client/canvas/placeables/tokens/base-ruler.d.mts +77 -0
  270. package/src/foundry/client/canvas/placeables/tokens/ring-config.d.mts +255 -0
  271. package/src/foundry/client/canvas/placeables/tokens/ring-data.d.mts +149 -0
  272. package/src/foundry/client/canvas/placeables/tokens/ring.d.mts +290 -0
  273. package/src/foundry/client/canvas/placeables/tokens/ruler.d.mts +219 -0
  274. package/src/foundry/client/canvas/placeables/tokens/targets.d.mts +50 -0
  275. package/src/foundry/client/canvas/placeables/tokens/turn-marker-data.d.mts +17 -0
  276. package/src/foundry/client/canvas/placeables/tokens/turn-marker.d.mts +16 -0
  277. package/src/foundry/client/canvas/placeables/wall.d.mts +393 -0
  278. package/src/foundry/client/canvas/primary/_module.d.mts +12 -0
  279. package/src/foundry/client/canvas/primary/primary-canvas-container.d.mts +17 -0
  280. package/src/foundry/client/canvas/primary/primary-canvas-object.d.mts +201 -0
  281. package/src/foundry/client/canvas/primary/primary-graphics.d.mts +62 -0
  282. package/src/foundry/client/canvas/primary/primary-occludable-object.d.mts +205 -0
  283. package/src/foundry/client/canvas/primary/primary-particle-effect.d.mts +17 -0
  284. package/src/foundry/client/canvas/primary/primary-sprite-mesh.d.mts +203 -0
  285. package/src/foundry/client/canvas/rendering/_module.d.mts +10 -0
  286. package/src/foundry/client/canvas/rendering/batching/_module.d.mts +7 -0
  287. package/src/foundry/client/canvas/rendering/batching/batch-renderer.d.mts +136 -0
  288. package/src/foundry/client/canvas/rendering/batching/batch-shader-generator.d.mts +30 -0
  289. package/src/foundry/client/canvas/rendering/blend-modes.d.mts +49 -0
  290. package/src/foundry/client/canvas/rendering/filters/_module.d.mts +23 -0
  291. package/src/foundry/client/canvas/rendering/filters/_types.d.mts +4 -0
  292. package/src/foundry/client/canvas/rendering/filters/base-filter.d.mts +47 -0
  293. package/src/foundry/client/canvas/rendering/filters/base-mask-filter.d.mts +32 -0
  294. package/src/foundry/client/canvas/rendering/filters/blur.d.mts +194 -0
  295. package/src/foundry/client/canvas/rendering/filters/effects-masking.d.mts +144 -0
  296. package/src/foundry/client/canvas/rendering/filters/environment.d.mts +43 -0
  297. package/src/foundry/client/canvas/rendering/filters/glow-overlay.d.mts +78 -0
  298. package/src/foundry/client/canvas/rendering/filters/invisibility.d.mts +32 -0
  299. package/src/foundry/client/canvas/rendering/filters/outline-overlay.d.mts +87 -0
  300. package/src/foundry/client/canvas/rendering/filters/smaa/_types.d.mts +13 -0
  301. package/src/foundry/client/canvas/rendering/filters/smaa/blend.d.mts +19 -0
  302. package/src/foundry/client/canvas/rendering/filters/smaa/edges.d.mts +22 -0
  303. package/src/foundry/client/canvas/rendering/filters/smaa/smaa.d.mts +165 -0
  304. package/src/foundry/client/canvas/rendering/filters/smaa/weights.d.mts +22 -0
  305. package/src/foundry/client/canvas/rendering/filters/transition.d.mts +130 -0
  306. package/src/foundry/client/canvas/rendering/filters/visibility.d.mts +82 -0
  307. package/src/foundry/client/canvas/rendering/filters/vision-mask-filter.d.mts +38 -0
  308. package/src/foundry/client/canvas/rendering/filters/void.d.mts +20 -0
  309. package/src/foundry/client/canvas/rendering/filters/weather-occlusion-mask.d.mts +59 -0
  310. package/src/foundry/client/canvas/rendering/mixins/_module.d.mts +7 -0
  311. package/src/foundry/client/canvas/rendering/mixins/base-shader-mixin.d.mts +134 -0
  312. package/src/foundry/client/canvas/rendering/mixins/fragment-channel-mixin.d.mts +66 -0
  313. package/src/foundry/client/canvas/rendering/shaders/_module.d.mts +93 -0
  314. package/src/foundry/client/canvas/rendering/shaders/_types.d.mts +16 -0
  315. package/src/foundry/client/canvas/rendering/shaders/base-shader.d.mts +109 -0
  316. package/src/foundry/client/canvas/rendering/shaders/graphics/dash-line.d.mts +48 -0
  317. package/src/foundry/client/canvas/rendering/shaders/grid/grid.d.mts +122 -0
  318. package/src/foundry/client/canvas/rendering/shaders/lighting/background-lighting.d.mts +69 -0
  319. package/src/foundry/client/canvas/rendering/shaders/lighting/base-lighting.d.mts +179 -0
  320. package/src/foundry/client/canvas/rendering/shaders/lighting/coloration-lighting.d.mts +76 -0
  321. package/src/foundry/client/canvas/rendering/shaders/lighting/darkness-lighting.d.mts +76 -0
  322. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/bewitching-wave.d.mts +37 -0
  323. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/black-hole.d.mts +20 -0
  324. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/chroma.d.mts +25 -0
  325. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/dense-smoke.d.mts +20 -0
  326. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/emanation.d.mts +25 -0
  327. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/energy-field.d.mts +25 -0
  328. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/fairy-light.d.mts +42 -0
  329. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/flame.d.mts +60 -0
  330. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/fog.d.mts +25 -0
  331. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/force-grid.d.mts +25 -0
  332. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/ghost-light.d.mts +37 -0
  333. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/hexa-dome.d.mts +25 -0
  334. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/light-dome.d.mts +25 -0
  335. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/magical-gloom.d.mts +20 -0
  336. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/pulse.d.mts +49 -0
  337. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/radial-rainbow.d.mts +25 -0
  338. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/revolving-light.d.mts +39 -0
  339. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/roiling-mass.d.mts +20 -0
  340. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/siren-light.d.mts +66 -0
  341. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/smoke-patch.d.mts +37 -0
  342. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/star-light.d.mts +25 -0
  343. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/sunburst.d.mts +37 -0
  344. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/swirling-rainbow.d.mts +25 -0
  345. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/torch.d.mts +50 -0
  346. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/vortex.d.mts +42 -0
  347. package/src/foundry/client/canvas/rendering/shaders/lighting/effects/wave.d.mts +37 -0
  348. package/src/foundry/client/canvas/rendering/shaders/lighting/illumination-lighting.d.mts +79 -0
  349. package/src/foundry/client/canvas/rendering/shaders/region/adjust-darkness-level.d.mts +137 -0
  350. package/src/foundry/client/canvas/rendering/shaders/region/base.d.mts +80 -0
  351. package/src/foundry/client/canvas/rendering/shaders/region/highlight.d.mts +97 -0
  352. package/src/foundry/client/canvas/rendering/shaders/samplers/amplification.d.mts +58 -0
  353. package/src/foundry/client/canvas/rendering/shaders/samplers/base-sampler.d.mts +223 -0
  354. package/src/foundry/client/canvas/rendering/shaders/samplers/baseline-illumination.d.mts +40 -0
  355. package/src/foundry/client/canvas/rendering/shaders/samplers/color-adjustments.d.mts +65 -0
  356. package/src/foundry/client/canvas/rendering/shaders/samplers/colorize-brightness.d.mts +40 -0
  357. package/src/foundry/client/canvas/rendering/shaders/samplers/fog-of-war.d.mts +27 -0
  358. package/src/foundry/client/canvas/rendering/shaders/samplers/primary/depth.d.mts +111 -0
  359. package/src/foundry/client/canvas/rendering/shaders/samplers/primary/occlusion.d.mts +109 -0
  360. package/src/foundry/client/canvas/rendering/shaders/samplers/primary/primary.d.mts +38 -0
  361. package/src/foundry/client/canvas/rendering/shaders/samplers/primary/token-ring.d.mts +79 -0
  362. package/src/foundry/client/canvas/rendering/shaders/vision/background-vision.d.mts +67 -0
  363. package/src/foundry/client/canvas/rendering/shaders/vision/base-vision.d.mts +35 -0
  364. package/src/foundry/client/canvas/rendering/shaders/vision/coloration-vision.d.mts +67 -0
  365. package/src/foundry/client/canvas/rendering/shaders/vision/effects/amplification.d.mts +34 -0
  366. package/src/foundry/client/canvas/rendering/shaders/vision/effects/wave.d.mts +62 -0
  367. package/src/foundry/client/canvas/rendering/shaders/vision/illumination-vision.d.mts +67 -0
  368. package/src/foundry/client/canvas/rendering/shaders/weather/base-weather.d.mts +120 -0
  369. package/src/foundry/client/canvas/rendering/shaders/weather/effect.d.mts +57 -0
  370. package/src/foundry/client/canvas/rendering/shaders/weather/fog.d.mts +52 -0
  371. package/src/foundry/client/canvas/rendering/shaders/weather/rain.d.mts +44 -0
  372. package/src/foundry/client/canvas/rendering/shaders/weather/snow.d.mts +36 -0
  373. package/src/foundry/client/canvas/scene-manager.d.mts +106 -0
  374. package/src/foundry/client/canvas/sources/base-effect-source.d.mts +297 -0
  375. package/src/foundry/client/canvas/sources/base-light-source.d.mts +306 -0
  376. package/src/foundry/client/canvas/sources/global-light-source.d.mts +141 -0
  377. package/src/foundry/client/canvas/sources/point-darkness-source.d.mts +160 -0
  378. package/src/foundry/client/canvas/sources/point-effect-source.d.mts +190 -0
  379. package/src/foundry/client/canvas/sources/point-light-source.d.mts +131 -0
  380. package/src/foundry/client/canvas/sources/point-movement-source.d.mts +65 -0
  381. package/src/foundry/client/canvas/sources/point-sound-source.d.mts +92 -0
  382. package/src/foundry/client/canvas/sources/point-vision-source.d.mts +357 -0
  383. package/src/foundry/client/canvas/sources/rendered-effect-source.d.mts +471 -0
  384. package/src/foundry/client/canvas/texture-extractor.d.mts +171 -0
  385. package/src/foundry/client/canvas/workers/_module.d.mts +6 -0
  386. package/src/foundry/client/canvas/workers/texture-worker.d.mts +147 -0
  387. package/src/foundry/client/client.d.mts +2489 -0
  388. package/src/foundry/client/config.d.mts +2425 -1820
  389. package/src/foundry/client/data/_module.d.mts +13 -0
  390. package/src/foundry/client/data/calendar.d.mts +341 -0
  391. package/src/foundry/client/data/client-backend.d.mts +52 -0
  392. package/src/foundry/client/data/region-behaviors/adjust-darkness-level.d.mts +56 -0
  393. package/src/foundry/client/data/region-behaviors/base.d.mts +60 -0
  394. package/src/foundry/client/data/region-behaviors/display-scrolling-text.d.mts +64 -0
  395. package/src/foundry/client/data/region-behaviors/teleport-token.d.mts +31 -0
  396. package/src/foundry/client/data/region-behaviors/toggle-behavior.d.mts +31 -0
  397. package/src/foundry/client/data/region-shapes/_module.d.mts +7 -0
  398. package/src/foundry/client/data/region-shapes/polygon-tree.d.mts +132 -0
  399. package/src/foundry/client/data/region-shapes/shape.d.mts +129 -0
  400. package/src/foundry/client/data/terrain-data.d.mts +22 -0
  401. package/src/foundry/client/dice/_types.d.mts +65 -0
  402. package/src/foundry/client/dice/parser.d.mts +192 -0
  403. package/src/foundry/client/dice/roll.d.mts +663 -0
  404. package/src/foundry/client/dice/terms/coin.d.mts +71 -0
  405. package/src/foundry/client/dice/terms/dice.d.mts +424 -0
  406. package/src/foundry/client/dice/terms/die.d.mts +248 -0
  407. package/src/foundry/client/dice/terms/fate.d.mts +57 -0
  408. package/src/foundry/client/dice/terms/function.d.mts +106 -0
  409. package/src/foundry/client/dice/terms/numeric.d.mts +54 -0
  410. package/src/foundry/client/dice/terms/operator.d.mts +55 -0
  411. package/src/foundry/client/dice/terms/parenthetical.d.mts +104 -0
  412. package/src/foundry/client/dice/terms/pool.d.mts +272 -0
  413. package/src/foundry/client/dice/terms/string.d.mts +34 -0
  414. package/src/foundry/client/dice/terms/term.d.mts +178 -0
  415. package/src/foundry/client/dice/twister.d.mts +134 -0
  416. package/src/foundry/client/documents/_module.d.mts +51 -0
  417. package/src/foundry/client/documents/_types.d.mts +134 -0
  418. package/src/foundry/client/documents/abstract/_module.d.mts +10 -0
  419. package/src/foundry/client/documents/abstract/canvas-document.d.mts +67 -0
  420. package/src/foundry/client/documents/abstract/client-document.d.mts +659 -0
  421. package/src/foundry/client/documents/abstract/directory-collection-mixin.d.mts +132 -0
  422. package/src/foundry/client/documents/abstract/document-collection.d.mts +243 -0
  423. package/src/foundry/client/documents/abstract/world-collection.d.mts +192 -0
  424. package/src/foundry/client/documents/active-effect.d.mts +977 -0
  425. package/src/foundry/client/documents/actor-delta.d.mts +769 -0
  426. package/src/foundry/client/documents/actor.d.mts +1036 -0
  427. package/src/foundry/client/documents/adventure.d.mts +569 -0
  428. package/src/foundry/client/documents/ambient-light.d.mts +457 -0
  429. package/src/foundry/client/documents/ambient-sound.d.mts +511 -0
  430. package/src/foundry/client/documents/card.d.mts +679 -0
  431. package/src/foundry/client/documents/cards.d.mts +1017 -0
  432. package/src/foundry/client/documents/chat-message.d.mts +831 -0
  433. package/src/foundry/client/documents/collections/_module.d.mts +23 -0
  434. package/src/foundry/client/documents/collections/actors.d.mts +51 -0
  435. package/src/foundry/client/documents/collections/card-stacks.d.mts +25 -0
  436. package/src/foundry/client/documents/collections/chat-messages.d.mts +48 -0
  437. package/src/foundry/client/documents/collections/combat-encounters.d.mts +56 -0
  438. package/src/foundry/client/documents/collections/compendium-collection.d.mts +491 -0
  439. package/src/foundry/client/documents/collections/compendium-folders.d.mts +30 -0
  440. package/src/foundry/client/documents/collections/compendium-packs.d.mts +30 -0
  441. package/src/foundry/client/documents/collections/fog-explorations.d.mts +32 -0
  442. package/src/foundry/client/documents/collections/folders.d.mts +49 -0
  443. package/src/foundry/client/documents/collections/items.d.mts +27 -0
  444. package/src/foundry/client/documents/collections/journal.d.mts +78 -0
  445. package/src/foundry/client/documents/collections/macros.d.mts +34 -0
  446. package/src/foundry/client/documents/collections/playlists.d.mts +45 -0
  447. package/src/foundry/client/documents/collections/roll-tables.d.mts +34 -0
  448. package/src/foundry/client/documents/collections/scenes.d.mts +63 -0
  449. package/src/foundry/client/documents/collections/users.d.mts +72 -0
  450. package/src/foundry/client/documents/collections/world-settings.d.mts +44 -0
  451. package/src/foundry/client/documents/combat.d.mts +1056 -0
  452. package/src/foundry/client/documents/combatant-group.d.mts +509 -0
  453. package/src/foundry/client/documents/combatant.d.mts +609 -0
  454. package/src/foundry/client/documents/drawing.d.mts +580 -0
  455. package/src/foundry/client/documents/fog-exploration.d.mts +495 -0
  456. package/src/foundry/client/documents/folder.d.mts +659 -0
  457. package/src/foundry/client/documents/item.d.mts +736 -0
  458. package/src/foundry/client/documents/journal-entry-category.d.mts +413 -0
  459. package/src/foundry/client/documents/journal-entry-page.d.mts +839 -0
  460. package/src/foundry/client/documents/journal-entry.d.mts +694 -0
  461. package/src/foundry/client/documents/macro.d.mts +610 -0
  462. package/src/foundry/client/documents/measured-template.d.mts +509 -0
  463. package/src/foundry/client/documents/note.d.mts +526 -0
  464. package/src/foundry/client/documents/playlist-sound.d.mts +558 -0
  465. package/src/foundry/client/documents/playlist.d.mts +830 -0
  466. package/src/foundry/client/documents/region-behavior.d.mts +524 -0
  467. package/src/foundry/client/documents/region.d.mts +898 -0
  468. package/src/foundry/client/documents/roll-table.d.mts +916 -0
  469. package/src/foundry/client/documents/scene.d.mts +1441 -0
  470. package/src/foundry/client/documents/setting.d.mts +449 -0
  471. package/src/foundry/client/documents/table-result.d.mts +526 -0
  472. package/src/foundry/client/documents/tile.d.mts +524 -0
  473. package/src/foundry/client/documents/token.d.mts +2168 -0
  474. package/src/foundry/client/documents/user.d.mts +785 -0
  475. package/src/foundry/client/documents/wall.d.mts +599 -0
  476. package/src/foundry/client/game.d.mts +240 -213
  477. package/src/foundry/client/head.d.mts +15 -14
  478. package/src/foundry/client/helpers/_module.d.mts +16 -0
  479. package/src/foundry/client/helpers/_types.d.mts +17 -0
  480. package/src/foundry/client/helpers/client-issues.d.mts +125 -0
  481. package/src/foundry/client/helpers/client-settings.d.mts +480 -0
  482. package/src/foundry/client/helpers/document-index.d.mts +173 -0
  483. package/src/foundry/client/helpers/hooks.d.mts +171 -0
  484. package/src/foundry/client/helpers/interaction/_module.d.mts +11 -0
  485. package/src/foundry/client/helpers/interaction/client-keybindings.d.mts +433 -0
  486. package/src/foundry/client/helpers/interaction/clipboard-helper.d.mts +20 -0
  487. package/src/foundry/client/helpers/interaction/gamepad-manager.d.mts +61 -0
  488. package/src/foundry/client/helpers/interaction/keyboard-manager.d.mts +331 -0
  489. package/src/foundry/client/helpers/interaction/mouse-manager.d.mts +42 -0
  490. package/src/foundry/client/helpers/interaction/tooltip-manager.d.mts +268 -0
  491. package/src/foundry/client/helpers/localization.d.mts +240 -0
  492. package/src/foundry/client/helpers/media/_module.d.mts +8 -0
  493. package/src/foundry/client/helpers/media/compendium-art.d.mts +107 -0
  494. package/src/foundry/client/helpers/media/image-helper.d.mts +235 -0
  495. package/src/foundry/client/helpers/media/video-helper.d.mts +161 -0
  496. package/src/foundry/client/helpers/socket-interface.d.mts +74 -0
  497. package/src/foundry/client/helpers/time.d.mts +87 -0
  498. package/src/foundry/client/helpers/workers.d.mts +145 -0
  499. package/src/foundry/client/hooks.d.mts +1196 -972
  500. package/src/foundry/client/index.d.mts +0 -7
  501. package/src/foundry/client/nue/tour.d.mts +280 -0
  502. package/src/foundry/client/nue/tours/canvas-tour.d.mts +15 -0
  503. package/src/foundry/client/nue/tours/setup-tour.d.mts +31 -0
  504. package/src/foundry/client/nue/tours/sidebar-tour.d.mts +13 -0
  505. package/src/foundry/client/packages/_module.d.mts +22 -0
  506. package/src/foundry/client/packages/_types.d.mts +13 -0
  507. package/src/foundry/client/packages/client-package.d.mts +154 -0
  508. package/src/foundry/client/packages/module.d.mts +87 -0
  509. package/src/foundry/client/packages/system.d.mts +151 -0
  510. package/src/foundry/client/packages/world.d.mts +155 -0
  511. package/src/foundry/client/utils/_module.d.mts +25 -0
  512. package/src/foundry/client/utils/_types.d.mts +3 -0
  513. package/src/foundry/client/utils/helpers.d.mts +213 -0
  514. package/src/foundry/common/_types.d.mts +17 -6
  515. package/src/foundry/common/abstract/_module.d.mts +1 -0
  516. package/src/foundry/common/abstract/_types.d.mts +58 -52
  517. package/src/foundry/common/abstract/backend.d.mts +36 -18
  518. package/src/foundry/common/abstract/data.d.mts +285 -201
  519. package/src/foundry/common/abstract/document.d.mts +1545 -595
  520. package/src/foundry/common/abstract/embedded-collection-delta.d.mts +1 -1
  521. package/src/foundry/common/abstract/embedded-collection.d.mts +10 -5
  522. package/src/foundry/common/abstract/singleton-collection.d.mts +1 -1
  523. package/src/foundry/common/abstract/socket.d.mts +1 -1
  524. package/src/foundry/common/abstract/type-data.d.mts +137 -126
  525. package/src/foundry/common/config.d.mts +9 -3
  526. package/src/foundry/common/constants.d.mts +628 -158
  527. package/src/foundry/common/data/_module.d.mts +1 -0
  528. package/src/foundry/common/data/_types.d.mts +16 -13
  529. package/src/foundry/common/data/data.d.mts +235 -94
  530. package/src/foundry/common/data/fields.d.mts +2351 -1118
  531. package/src/foundry/common/data/validation-failure.d.mts +36 -21
  532. package/src/foundry/common/data/validators.d.mts +2 -2
  533. package/src/foundry/common/documents/_module.d.mts +2 -0
  534. package/src/foundry/common/documents/_types.d.mts +89 -90
  535. package/src/foundry/common/documents/active-effect.d.mts +323 -202
  536. package/src/foundry/common/documents/actor-delta.d.mts +399 -79
  537. package/src/foundry/common/documents/actor.d.mts +358 -111
  538. package/src/foundry/common/documents/adventure.d.mts +292 -140
  539. package/src/foundry/common/documents/ambient-light.d.mts +286 -76
  540. package/src/foundry/common/documents/ambient-sound.d.mts +286 -110
  541. package/src/foundry/common/documents/card.d.mts +303 -190
  542. package/src/foundry/common/documents/cards.d.mts +353 -127
  543. package/src/foundry/common/documents/chat-message.d.mts +320 -171
  544. package/src/foundry/common/documents/combat.d.mts +351 -96
  545. package/src/foundry/common/documents/combatant-group.d.mts +328 -0
  546. package/src/foundry/common/documents/combatant.d.mts +318 -89
  547. package/src/foundry/common/documents/drawing.d.mts +315 -206
  548. package/src/foundry/common/documents/fog-exploration.d.mts +292 -70
  549. package/src/foundry/common/documents/folder.d.mts +291 -85
  550. package/src/foundry/common/documents/item.d.mts +357 -107
  551. package/src/foundry/common/documents/journal-entry-category.d.mts +316 -0
  552. package/src/foundry/common/documents/journal-entry-page.d.mts +309 -188
  553. package/src/foundry/common/documents/journal-entry.d.mts +343 -69
  554. package/src/foundry/common/documents/macro.d.mts +310 -141
  555. package/src/foundry/common/documents/measured-template.d.mts +312 -136
  556. package/src/foundry/common/documents/note.d.mts +297 -153
  557. package/src/foundry/common/documents/playlist-sound.d.mts +297 -104
  558. package/src/foundry/common/documents/playlist.d.mts +339 -132
  559. package/src/foundry/common/documents/region-behavior.d.mts +328 -66
  560. package/src/foundry/common/documents/region.d.mts +326 -89
  561. package/src/foundry/common/documents/roll-table.d.mts +336 -105
  562. package/src/foundry/common/documents/scene.d.mts +440 -357
  563. package/src/foundry/common/documents/setting.d.mts +274 -54
  564. package/src/foundry/common/documents/table-result.d.mts +324 -105
  565. package/src/foundry/common/documents/tile.d.mts +331 -173
  566. package/src/foundry/common/documents/token.d.mts +479 -455
  567. package/src/foundry/common/documents/user.d.mts +286 -174
  568. package/src/foundry/common/documents/wall.d.mts +292 -157
  569. package/src/foundry/common/grid/_types.d.mts +22 -17
  570. package/src/foundry/common/grid/base.d.mts +162 -52
  571. package/src/foundry/common/grid/grid-hex.d.mts +1 -0
  572. package/src/foundry/common/grid/gridless.d.mts +4 -3
  573. package/src/foundry/common/grid/hexagonal.d.mts +50 -24
  574. package/src/foundry/common/grid/square.d.mts +5 -4
  575. package/src/foundry/common/packages/_module.d.mts +5 -5
  576. package/src/foundry/common/packages/_types.d.mts +2 -0
  577. package/src/foundry/common/packages/base-module.d.mts +5 -24
  578. package/src/foundry/common/packages/base-package.d.mts +59 -32
  579. package/src/foundry/common/packages/base-system.d.mts +44 -78
  580. package/src/foundry/common/packages/base-world.d.mts +18 -62
  581. package/src/foundry/common/packages/sub-types.d.mts +7 -9
  582. package/src/foundry/common/primitives/array.d.mts +4 -4
  583. package/src/foundry/common/primitives/math.d.mts +9 -1
  584. package/src/foundry/common/primitives/number.d.mts +2 -2
  585. package/src/foundry/common/primitives/set.d.mts +17 -14
  586. package/src/foundry/common/primitives/string.d.mts +1 -1
  587. package/src/foundry/common/prosemirror/_module.d.mts +44 -28
  588. package/src/foundry/common/prosemirror/_types.d.mts +18 -11
  589. package/src/foundry/common/prosemirror/click-handler.d.mts +8 -5
  590. package/src/foundry/common/prosemirror/content-link-plugin.d.mts +28 -8
  591. package/src/foundry/common/prosemirror/dirty-plugin.d.mts +2 -2
  592. package/src/foundry/common/prosemirror/dom-parser.d.mts +4 -4
  593. package/src/foundry/common/prosemirror/dropdown.d.mts +51 -19
  594. package/src/foundry/common/prosemirror/extensions.d.mts +5 -2
  595. package/src/foundry/common/prosemirror/highlight-matches-plugin.d.mts +43 -56
  596. package/src/foundry/common/prosemirror/image-plugin.d.mts +23 -18
  597. package/src/foundry/common/prosemirror/input-rules.d.mts +20 -15
  598. package/src/foundry/common/prosemirror/keymaps.d.mts +24 -21
  599. package/src/foundry/common/prosemirror/menu.d.mts +124 -85
  600. package/src/foundry/common/prosemirror/paste-transformer.d.mts +7 -13
  601. package/src/foundry/common/prosemirror/plugin.d.mts +11 -7
  602. package/src/foundry/common/prosemirror/schema/_types.d.mts +16 -0
  603. package/src/foundry/common/prosemirror/schema/attribute-capture.d.mts +20 -19
  604. package/src/foundry/common/prosemirror/schema/core.d.mts +7 -45
  605. package/src/foundry/common/prosemirror/schema/image-link-node.d.mts +15 -9
  606. package/src/foundry/common/prosemirror/schema/image-node.d.mts +11 -7
  607. package/src/foundry/common/prosemirror/schema/link-mark.d.mts +16 -11
  608. package/src/foundry/common/prosemirror/schema/lists.d.mts +5 -27
  609. package/src/foundry/common/prosemirror/schema/marks.d.mts +19 -44
  610. package/src/foundry/common/prosemirror/schema/other.d.mts +43 -149
  611. package/src/foundry/common/prosemirror/schema/schema-definition.d.mts +30 -9
  612. package/src/foundry/common/prosemirror/schema/secret-node.d.mts +8 -8
  613. package/src/foundry/common/prosemirror/schema/tables.d.mts +18 -90
  614. package/src/foundry/common/prosemirror/schema/utils.d.mts +3 -1
  615. package/src/foundry/common/prosemirror/schema.d.mts +51 -16
  616. package/src/foundry/common/prosemirror/string-serializer.d.mts +59 -40
  617. package/src/foundry/common/prosemirror/util.d.mts +38 -18
  618. package/src/foundry/common/utils/_module.d.mts +5 -2
  619. package/src/foundry/common/utils/_types.d.mts +27 -0
  620. package/src/foundry/common/utils/bitmask.d.mts +11 -7
  621. package/src/foundry/common/utils/collection.d.mts +63 -28
  622. package/src/foundry/common/utils/color.d.mts +11 -2
  623. package/src/foundry/common/utils/event-emitter.d.mts +43 -21
  624. package/src/foundry/common/utils/geometry.d.mts +13 -10
  625. package/src/foundry/common/utils/helpers.d.mts +321 -265
  626. package/src/foundry/common/utils/http.d.mts +37 -29
  627. package/src/foundry/common/utils/iterable-weak-map.d.mts +43 -30
  628. package/src/foundry/common/utils/iterable-weak-set.d.mts +21 -8
  629. package/src/foundry/common/utils/logging.d.mts +16 -9
  630. package/src/foundry/common/utils/semaphore.d.mts +19 -29
  631. package/src/foundry/common/utils/string-tree.d.mts +56 -47
  632. package/src/foundry/common/utils/word-tree.d.mts +56 -32
  633. package/src/foundry/index.d.mts +0 -2
  634. package/src/foundry/public/scripts/clipper/clipper.d.mts +3 -2
  635. package/src/foundry/public/scripts/index.d.mts +1 -0
  636. package/src/foundry/public/scripts/ktx2/basis_transcoder.d.mts +5 -0
  637. package/src/foundry/public/scripts/ktx2/index.d.mts +2 -0
  638. package/src/foundry/public/scripts/ktx2/pixi-ktx2.min.d.mts +5 -0
  639. package/src/foundry/public/scripts/workers/image-compressor.d.mts +12 -4
  640. package/src/types/augments/particles.d.mts +1 -1
  641. package/src/types/augments/pixi.d.mts +37 -28
  642. package/src/types/augments/smooth.d.mts +1 -1
  643. package/src/types/augments/socket.io-client.d.mts +0 -1
  644. package/src/types/augments/tinyMCE.d.mts +1 -1
  645. package/src/types/config.d.mts +15 -18
  646. package/src/types/documentConfiguration.d.mts +288 -602
  647. package/src/types/lib.d.mts +4 -4
  648. package/src/types/workers/image-compressor.d.mts +102 -67
  649. package/src/utils/index.d.mts +455 -137
  650. package/tsconfig.base.json +24 -0
  651. package/tsconfig.json +12 -0
  652. package/src/foundry/client/apps/app.d.mts +0 -607
  653. package/src/foundry/client/apps/av/av-config.d.mts +0 -93
  654. package/src/foundry/client/apps/av/camera-popout.d.mts +0 -49
  655. package/src/foundry/client/apps/av/cameras.d.mts +0 -194
  656. package/src/foundry/client/apps/av/index.d.mts +0 -3
  657. package/src/foundry/client/apps/dialogs/folder-export.d.mts +0 -16
  658. package/src/foundry/client/apps/dialogs/index.d.mts +0 -1
  659. package/src/foundry/client/apps/dice/dice-config.d.mts +0 -45
  660. package/src/foundry/client/apps/dice/index.d.mts +0 -1
  661. package/src/foundry/client/apps/form.d.mts +0 -493
  662. package/src/foundry/client/apps/forms/actor.d.mts +0 -176
  663. package/src/foundry/client/apps/forms/adventure-exporter.d.mts +0 -132
  664. package/src/foundry/client/apps/forms/adventure-importer.d.mts +0 -85
  665. package/src/foundry/client/apps/forms/base-sheet.d.mts +0 -46
  666. package/src/foundry/client/apps/forms/card-config.d.mts +0 -48
  667. package/src/foundry/client/apps/forms/cards-config.d.mts +0 -142
  668. package/src/foundry/client/apps/forms/combat-config.d.mts +0 -51
  669. package/src/foundry/client/apps/forms/combatant-config.d.mts +0 -45
  670. package/src/foundry/client/apps/forms/default-sheets-config.d.mts +0 -46
  671. package/src/foundry/client/apps/forms/effect-config.d.mts +0 -77
  672. package/src/foundry/client/apps/forms/folder-config.d.mts +0 -60
  673. package/src/foundry/client/apps/forms/fonts.d.mts +0 -168
  674. package/src/foundry/client/apps/forms/grid-config.d.mts +0 -139
  675. package/src/foundry/client/apps/forms/image-popout.d.mts +0 -179
  676. package/src/foundry/client/apps/forms/index.d.mts +0 -26
  677. package/src/foundry/client/apps/forms/item.d.mts +0 -58
  678. package/src/foundry/client/apps/forms/journal-page-sheet.d.mts +0 -313
  679. package/src/foundry/client/apps/forms/journal-sheet.d.mts +0 -313
  680. package/src/foundry/client/apps/forms/macro-config.d.mts +0 -59
  681. package/src/foundry/client/apps/forms/measure-template.d.mts +0 -57
  682. package/src/foundry/client/apps/forms/ownership.d.mts +0 -66
  683. package/src/foundry/client/apps/forms/playlist-config.d.mts +0 -46
  684. package/src/foundry/client/apps/forms/playlist-sound-config.d.mts +0 -63
  685. package/src/foundry/client/apps/forms/roll-table-config.d.mts +0 -162
  686. package/src/foundry/client/apps/forms/scene-config.d.mts +0 -156
  687. package/src/foundry/client/apps/forms/sheet-config.d.mts +0 -191
  688. package/src/foundry/client/apps/forms/user-config.d.mts +0 -72
  689. package/src/foundry/client/apps/hud/chatbubble.d.mts +0 -120
  690. package/src/foundry/client/apps/hud/container.d.mts +0 -54
  691. package/src/foundry/client/apps/hud/controls.d.mts +0 -171
  692. package/src/foundry/client/apps/hud/hotbar.d.mts +0 -174
  693. package/src/foundry/client/apps/hud/hud.d.mts +0 -87
  694. package/src/foundry/client/apps/hud/index.d.mts +0 -9
  695. package/src/foundry/client/apps/hud/menu.d.mts +0 -84
  696. package/src/foundry/client/apps/hud/navigation.d.mts +0 -121
  697. package/src/foundry/client/apps/hud/pause.d.mts +0 -37
  698. package/src/foundry/client/apps/hud/players.d.mts +0 -87
  699. package/src/foundry/client/apps/i18n.d.mts +0 -221
  700. package/src/foundry/client/apps/index.d.mts +0 -11
  701. package/src/foundry/client/apps/placeables/drawing-config.d.mts +0 -80
  702. package/src/foundry/client/apps/placeables/drawing-hud.d.mts +0 -31
  703. package/src/foundry/client/apps/placeables/index.d.mts +0 -10
  704. package/src/foundry/client/apps/placeables/light-config.d.mts +0 -100
  705. package/src/foundry/client/apps/placeables/note-config.d.mts +0 -65
  706. package/src/foundry/client/apps/placeables/sound-config.d.mts +0 -44
  707. package/src/foundry/client/apps/placeables/tile-config.d.mts +0 -54
  708. package/src/foundry/client/apps/placeables/tile-hud.d.mts +0 -42
  709. package/src/foundry/client/apps/placeables/token-config.d.mts +0 -256
  710. package/src/foundry/client/apps/placeables/token-hud.d.mts +0 -139
  711. package/src/foundry/client/apps/placeables/wall-config.d.mts +0 -64
  712. package/src/foundry/client/apps/sidebar/apps/chat-popout.d.mts +0 -39
  713. package/src/foundry/client/apps/sidebar/apps/client-settings.d.mts +0 -98
  714. package/src/foundry/client/apps/sidebar/apps/compendium.d.mts +0 -92
  715. package/src/foundry/client/apps/sidebar/apps/index.d.mts +0 -10
  716. package/src/foundry/client/apps/sidebar/apps/invitation-links.d.mts +0 -32
  717. package/src/foundry/client/apps/sidebar/apps/keybindings-config.d.mts +0 -181
  718. package/src/foundry/client/apps/sidebar/apps/module-management.d.mts +0 -135
  719. package/src/foundry/client/apps/sidebar/apps/permission-config.d.mts +0 -72
  720. package/src/foundry/client/apps/sidebar/apps/support-details.d.mts +0 -121
  721. package/src/foundry/client/apps/sidebar/apps/tours-management.d.mts +0 -54
  722. package/src/foundry/client/apps/sidebar/apps/world-config.d.mts +0 -57
  723. package/src/foundry/client/apps/sidebar/directory-tab-mixin.d.mts +0 -283
  724. package/src/foundry/client/apps/sidebar/document-directory.d.mts +0 -170
  725. package/src/foundry/client/apps/sidebar/index.d.mts +0 -7
  726. package/src/foundry/client/apps/sidebar/package-configuration.d.mts +0 -86
  727. package/src/foundry/client/apps/sidebar/sidebar-tab.d.mts +0 -80
  728. package/src/foundry/client/apps/sidebar/sidebar.d.mts +0 -100
  729. package/src/foundry/client/apps/sidebar/tabs/actors-directory.d.mts +0 -29
  730. package/src/foundry/client/apps/sidebar/tabs/cards-directory.d.mts +0 -21
  731. package/src/foundry/client/apps/sidebar/tabs/chat-log.d.mts +0 -371
  732. package/src/foundry/client/apps/sidebar/tabs/combat-tracker.d.mts +0 -165
  733. package/src/foundry/client/apps/sidebar/tabs/compendium-directory.d.mts +0 -111
  734. package/src/foundry/client/apps/sidebar/tabs/index.d.mts +0 -12
  735. package/src/foundry/client/apps/sidebar/tabs/items-directory.d.mts +0 -23
  736. package/src/foundry/client/apps/sidebar/tabs/journal-directory.d.mts +0 -22
  737. package/src/foundry/client/apps/sidebar/tabs/macros-directory.d.mts +0 -25
  738. package/src/foundry/client/apps/sidebar/tabs/playlists-directory.d.mts +0 -283
  739. package/src/foundry/client/apps/sidebar/tabs/roll-table-directory.d.mts +0 -22
  740. package/src/foundry/client/apps/sidebar/tabs/scenes-directory.d.mts +0 -43
  741. package/src/foundry/client/apps/sidebar/tabs/settings.d.mts +0 -90
  742. package/src/foundry/client/apps/templates.d.mts +0 -486
  743. package/src/foundry/client/av/clients/index.d.mts +0 -1
  744. package/src/foundry/client/av/index.d.mts +0 -4
  745. package/src/foundry/client/core/clipboard.d.mts +0 -20
  746. package/src/foundry/client/core/document-index.d.mts +0 -118
  747. package/src/foundry/client/core/gamepad.d.mts +0 -76
  748. package/src/foundry/client/core/hooks.d.mts +0 -132
  749. package/src/foundry/client/core/image.d.mts +0 -238
  750. package/src/foundry/client/core/index.d.mts +0 -21
  751. package/src/foundry/client/core/issues.d.mts +0 -102
  752. package/src/foundry/client/core/keybindings.d.mts +0 -413
  753. package/src/foundry/client/core/keyboard.d.mts +0 -271
  754. package/src/foundry/client/core/mouse.d.mts +0 -28
  755. package/src/foundry/client/core/nue.d.mts +0 -38
  756. package/src/foundry/client/core/packages.d.mts +0 -208
  757. package/src/foundry/client/core/settings.d.mts +0 -364
  758. package/src/foundry/client/core/socket.d.mts +0 -62
  759. package/src/foundry/client/core/sorting.d.mts +0 -76
  760. package/src/foundry/client/core/time.d.mts +0 -73
  761. package/src/foundry/client/core/tooltip.d.mts +0 -198
  762. package/src/foundry/client/core/tour.d.mts +0 -279
  763. package/src/foundry/client/core/tours.d.mts +0 -22
  764. package/src/foundry/client/core/utils.d.mts +0 -94
  765. package/src/foundry/client/core/video.d.mts +0 -161
  766. package/src/foundry/client/core/workers.d.mts +0 -128
  767. package/src/foundry/client/data/abstract/canvas-document.d.mts +0 -80
  768. package/src/foundry/client/data/abstract/client-document.d.mts +0 -726
  769. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +0 -141
  770. package/src/foundry/client/data/abstract/document-collection.d.mts +0 -218
  771. package/src/foundry/client/data/abstract/index.d.mts +0 -5
  772. package/src/foundry/client/data/abstract/world-collection.d.mts +0 -163
  773. package/src/foundry/client/data/collections/actors.d.mts +0 -58
  774. package/src/foundry/client/data/collections/cards.d.mts +0 -21
  775. package/src/foundry/client/data/collections/combats.d.mts +0 -52
  776. package/src/foundry/client/data/collections/compendium-collection.d.mts +0 -461
  777. package/src/foundry/client/data/collections/compendium-folders.d.mts +0 -27
  778. package/src/foundry/client/data/collections/compendium-packs.d.mts +0 -27
  779. package/src/foundry/client/data/collections/fog.d.mts +0 -26
  780. package/src/foundry/client/data/collections/folder.d.mts +0 -42
  781. package/src/foundry/client/data/collections/index.d.mts +0 -17
  782. package/src/foundry/client/data/collections/items.d.mts +0 -23
  783. package/src/foundry/client/data/collections/journal.d.mts +0 -73
  784. package/src/foundry/client/data/collections/macros.d.mts +0 -41
  785. package/src/foundry/client/data/collections/messages.d.mts +0 -44
  786. package/src/foundry/client/data/collections/playlists.d.mts +0 -41
  787. package/src/foundry/client/data/collections/scenes.d.mts +0 -77
  788. package/src/foundry/client/data/collections/settings.d.mts +0 -38
  789. package/src/foundry/client/data/collections/tables.d.mts +0 -30
  790. package/src/foundry/client/data/collections/users.d.mts +0 -59
  791. package/src/foundry/client/data/documents/active-effect.d.mts +0 -389
  792. package/src/foundry/client/data/documents/actor-delta.d.mts +0 -99
  793. package/src/foundry/client/data/documents/actor.d.mts +0 -318
  794. package/src/foundry/client/data/documents/adventure.d.mts +0 -106
  795. package/src/foundry/client/data/documents/ambient-light.d.mts +0 -44
  796. package/src/foundry/client/data/documents/ambient-sound.d.mts +0 -31
  797. package/src/foundry/client/data/documents/card.d.mts +0 -128
  798. package/src/foundry/client/data/documents/cards.d.mts +0 -349
  799. package/src/foundry/client/data/documents/chat-message.d.mts +0 -231
  800. package/src/foundry/client/data/documents/combat.d.mts +0 -329
  801. package/src/foundry/client/data/documents/combatant.d.mts +0 -115
  802. package/src/foundry/client/data/documents/drawing.d.mts +0 -36
  803. package/src/foundry/client/data/documents/fog-exploration.d.mts +0 -72
  804. package/src/foundry/client/data/documents/folder.d.mts +0 -153
  805. package/src/foundry/client/data/documents/index.d.mts +0 -32
  806. package/src/foundry/client/data/documents/item.d.mts +0 -71
  807. package/src/foundry/client/data/documents/journal-entry-page.d.mts +0 -232
  808. package/src/foundry/client/data/documents/journal-entry.d.mts +0 -82
  809. package/src/foundry/client/data/documents/macro.d.mts +0 -86
  810. package/src/foundry/client/data/documents/measured-template.d.mts +0 -41
  811. package/src/foundry/client/data/documents/note.d.mts +0 -47
  812. package/src/foundry/client/data/documents/playlist-sound.d.mts +0 -128
  813. package/src/foundry/client/data/documents/playlist.d.mts +0 -207
  814. package/src/foundry/client/data/documents/region-behavior.d.mts +0 -78
  815. package/src/foundry/client/data/documents/region.d.mts +0 -160
  816. package/src/foundry/client/data/documents/scene.d.mts +0 -264
  817. package/src/foundry/client/data/documents/setting.d.mts +0 -55
  818. package/src/foundry/client/data/documents/table-result.d.mts +0 -42
  819. package/src/foundry/client/data/documents/table.d.mts +0 -322
  820. package/src/foundry/client/data/documents/tile.d.mts +0 -33
  821. package/src/foundry/client/data/documents/token.d.mts +0 -347
  822. package/src/foundry/client/data/documents/user.d.mts +0 -165
  823. package/src/foundry/client/data/documents/wall.d.mts +0 -31
  824. package/src/foundry/client/data/index.d.mts +0 -3
  825. package/src/foundry/client/pixi/board.d.mts +0 -821
  826. package/src/foundry/client/pixi/core/containers/base-canvas-group.d.mts +0 -154
  827. package/src/foundry/client/pixi/core/containers/cached-container.d.mts +0 -136
  828. package/src/foundry/client/pixi/core/containers/full-canvas-container.d.mts +0 -34
  829. package/src/foundry/client/pixi/core/containers/index.d.mts +0 -8
  830. package/src/foundry/client/pixi/core/containers/point-source-mesh.d.mts +0 -72
  831. package/src/foundry/client/pixi/core/containers/quad-mesh.d.mts +0 -53
  832. package/src/foundry/client/pixi/core/containers/quadtree.d.mts +0 -256
  833. package/src/foundry/client/pixi/core/containers/sprite-mesh.d.mts +0 -369
  834. package/src/foundry/client/pixi/core/containers/unbound-container.d.mts +0 -39
  835. package/src/foundry/client/pixi/core/index.d.mts +0 -4
  836. package/src/foundry/client/pixi/core/interaction/canvas-animation.d.mts +0 -236
  837. package/src/foundry/client/pixi/core/interaction/control-icon.d.mts +0 -128
  838. package/src/foundry/client/pixi/core/interaction/index.d.mts +0 -8
  839. package/src/foundry/client/pixi/core/interaction/mouse-handler.d.mts +0 -358
  840. package/src/foundry/client/pixi/core/interaction/ping.d.mts +0 -81
  841. package/src/foundry/client/pixi/core/interaction/pings/chevron.d.mts +0 -81
  842. package/src/foundry/client/pixi/core/interaction/pings/index.d.mts +0 -2
  843. package/src/foundry/client/pixi/core/interaction/pings/pulse.d.mts +0 -166
  844. package/src/foundry/client/pixi/core/interaction/render-flags.d.mts +0 -135
  845. package/src/foundry/client/pixi/core/interaction/resize-handle.d.mts +0 -82
  846. package/src/foundry/client/pixi/core/interaction/targets.d.mts +0 -48
  847. package/src/foundry/client/pixi/core/loader.d.mts +0 -256
  848. package/src/foundry/client/pixi/core/shapes/index.d.mts +0 -5
  849. package/src/foundry/client/pixi/core/shapes/limited-angle-polygon.d.mts +0 -139
  850. package/src/foundry/client/pixi/core/shapes/polygon-mesher.d.mts +0 -138
  851. package/src/foundry/client/pixi/core/shapes/precise-text.d.mts +0 -45
  852. package/src/foundry/client/pixi/core/shapes/ray.d.mts +0 -183
  853. package/src/foundry/client/pixi/core/shapes/source-polygon.d.mts +0 -339
  854. package/src/foundry/client/pixi/extensions/circle.d.mts +0 -143
  855. package/src/foundry/client/pixi/extensions/graphics.d.mts +0 -45
  856. package/src/foundry/client/pixi/extensions/index.d.mts +0 -5
  857. package/src/foundry/client/pixi/extensions/observable-transform.d.mts +0 -38
  858. package/src/foundry/client/pixi/extensions/polygon.d.mts +0 -163
  859. package/src/foundry/client/pixi/extensions/rectangle.d.mts +0 -274
  860. package/src/foundry/client/pixi/groups/effects.d.mts +0 -237
  861. package/src/foundry/client/pixi/groups/environment.d.mts +0 -129
  862. package/src/foundry/client/pixi/groups/hidden.d.mts +0 -56
  863. package/src/foundry/client/pixi/groups/index.d.mts +0 -7
  864. package/src/foundry/client/pixi/groups/interface.d.mts +0 -98
  865. package/src/foundry/client/pixi/groups/overlay.d.mts +0 -30
  866. package/src/foundry/client/pixi/groups/primary.d.mts +0 -222
  867. package/src/foundry/client/pixi/groups/rendered.d.mts +0 -30
  868. package/src/foundry/client/pixi/index.d.mts +0 -10
  869. package/src/foundry/client/pixi/layers/base/canvas-layer.d.mts +0 -91
  870. package/src/foundry/client/pixi/layers/base/index.d.mts +0 -3
  871. package/src/foundry/client/pixi/layers/base/interaction-layer.d.mts +0 -163
  872. package/src/foundry/client/pixi/layers/base/placeables-layer.d.mts +0 -631
  873. package/src/foundry/client/pixi/layers/controls/cursor.d.mts +0 -33
  874. package/src/foundry/client/pixi/layers/controls/door.d.mts +0 -77
  875. package/src/foundry/client/pixi/layers/controls/index.d.mts +0 -4
  876. package/src/foundry/client/pixi/layers/controls/layer.d.mts +0 -264
  877. package/src/foundry/client/pixi/layers/controls/ruler.d.mts +0 -475
  878. package/src/foundry/client/pixi/layers/effects/background-effects.d.mts +0 -48
  879. package/src/foundry/client/pixi/layers/effects/coloration-effects.d.mts +0 -39
  880. package/src/foundry/client/pixi/layers/effects/darkness-effects.d.mts +0 -30
  881. package/src/foundry/client/pixi/layers/effects/illumination-effects.d.mts +0 -148
  882. package/src/foundry/client/pixi/layers/effects/index.d.mts +0 -7
  883. package/src/foundry/client/pixi/layers/effects/visibility.d.mts +0 -228
  884. package/src/foundry/client/pixi/layers/effects/weather/particles/effect.d.mts +0 -47
  885. package/src/foundry/client/pixi/layers/effects/weather/particles/index.d.mts +0 -2
  886. package/src/foundry/client/pixi/layers/effects/weather/particles/leaves.d.mts +0 -20
  887. package/src/foundry/client/pixi/layers/effects/weather-effects.d.mts +0 -224
  888. package/src/foundry/client/pixi/layers/grid/highlight.d.mts +0 -33
  889. package/src/foundry/client/pixi/layers/grid/index.d.mts +0 -3
  890. package/src/foundry/client/pixi/layers/grid/layer.d.mts +0 -267
  891. package/src/foundry/client/pixi/layers/grid/mesh.d.mts +0 -73
  892. package/src/foundry/client/pixi/layers/index.d.mts +0 -6
  893. package/src/foundry/client/pixi/layers/masks/depth.d.mts +0 -67
  894. package/src/foundry/client/pixi/layers/masks/index.d.mts +0 -3
  895. package/src/foundry/client/pixi/layers/masks/occlusion.d.mts +0 -98
  896. package/src/foundry/client/pixi/layers/masks/vision.d.mts +0 -202
  897. package/src/foundry/client/pixi/layers/placeables/drawings.d.mts +0 -108
  898. package/src/foundry/client/pixi/layers/placeables/index.d.mts +0 -9
  899. package/src/foundry/client/pixi/layers/placeables/lighting.d.mts +0 -80
  900. package/src/foundry/client/pixi/layers/placeables/notes.d.mts +0 -108
  901. package/src/foundry/client/pixi/layers/placeables/regions.d.mts +0 -100
  902. package/src/foundry/client/pixi/layers/placeables/sounds.d.mts +0 -316
  903. package/src/foundry/client/pixi/layers/placeables/templates.d.mts +0 -69
  904. package/src/foundry/client/pixi/layers/placeables/tiles.d.mts +0 -114
  905. package/src/foundry/client/pixi/layers/placeables/tokens.d.mts +0 -189
  906. package/src/foundry/client/pixi/layers/placeables/walls.d.mts +0 -207
  907. package/src/foundry/client/pixi/perception/clockwise-sweep.d.mts +0 -186
  908. package/src/foundry/client/pixi/perception/detection-mode.d.mts +0 -214
  909. package/src/foundry/client/pixi/perception/fog.d.mts +0 -139
  910. package/src/foundry/client/pixi/perception/index.d.mts +0 -6
  911. package/src/foundry/client/pixi/perception/perception-manager.d.mts +0 -167
  912. package/src/foundry/client/pixi/perception/vision-mode.d.mts +0 -220
  913. package/src/foundry/client/pixi/perception/weiler-atherton-clipping.d.mts +0 -190
  914. package/src/foundry/client/pixi/placeable.d.mts +0 -639
  915. package/src/foundry/client/pixi/placeables/drawing.d.mts +0 -293
  916. package/src/foundry/client/pixi/placeables/index.d.mts +0 -10
  917. package/src/foundry/client/pixi/placeables/light.d.mts +0 -142
  918. package/src/foundry/client/pixi/placeables/note.d.mts +0 -115
  919. package/src/foundry/client/pixi/placeables/primary-canvas-objects/index.d.mts +0 -4
  920. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-canvas-object.d.mts +0 -198
  921. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-graphics.d.mts +0 -60
  922. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-occludable-object.d.mts +0 -202
  923. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-sprite-mesh.d.mts +0 -194
  924. package/src/foundry/client/pixi/placeables/region.d.mts +0 -177
  925. package/src/foundry/client/pixi/placeables/sound.d.mts +0 -135
  926. package/src/foundry/client/pixi/placeables/template.d.mts +0 -212
  927. package/src/foundry/client/pixi/placeables/tile.d.mts +0 -286
  928. package/src/foundry/client/pixi/placeables/token.d.mts +0 -950
  929. package/src/foundry/client/pixi/placeables/wall.d.mts +0 -277
  930. package/src/foundry/client/pixi/webgl/extensions/batch-renderer.d.mts +0 -112
  931. package/src/foundry/client/pixi/webgl/extensions/batch-shader-generator.d.mts +0 -31
  932. package/src/foundry/client/pixi/webgl/extensions/blend-modes.d.mts +0 -53
  933. package/src/foundry/client/pixi/webgl/extensions/index.d.mts +0 -3
  934. package/src/foundry/client/pixi/webgl/helpers/framebuffer-snapshot.d.mts +0 -31
  935. package/src/foundry/client/pixi/webgl/helpers/index.d.mts +0 -3
  936. package/src/foundry/client/pixi/webgl/helpers/smooth-noise.d.mts +0 -72
  937. package/src/foundry/client/pixi/webgl/helpers/texture-extractor.d.mts +0 -119
  938. package/src/foundry/client/pixi/webgl/index.d.mts +0 -3
  939. package/src/foundry/client/pixi/webgl/shaders/base-shader-mixin.d.mts +0 -119
  940. package/src/foundry/client/pixi/webgl/shaders/base-shader.d.mts +0 -111
  941. package/src/foundry/client/pixi/webgl/shaders/filters/base-filter.d.mts +0 -48
  942. package/src/foundry/client/pixi/webgl/shaders/filters/base-mask-filter.d.mts +0 -31
  943. package/src/foundry/client/pixi/webgl/shaders/filters/blur.d.mts +0 -187
  944. package/src/foundry/client/pixi/webgl/shaders/filters/effects-masking.d.mts +0 -122
  945. package/src/foundry/client/pixi/webgl/shaders/filters/environment.d.mts +0 -41
  946. package/src/foundry/client/pixi/webgl/shaders/filters/glow-overlay.d.mts +0 -76
  947. package/src/foundry/client/pixi/webgl/shaders/filters/index.d.mts +0 -13
  948. package/src/foundry/client/pixi/webgl/shaders/filters/invisibility.d.mts +0 -30
  949. package/src/foundry/client/pixi/webgl/shaders/filters/outline-overlay.d.mts +0 -87
  950. package/src/foundry/client/pixi/webgl/shaders/filters/transition.d.mts +0 -126
  951. package/src/foundry/client/pixi/webgl/shaders/filters/visibility.d.mts +0 -74
  952. package/src/foundry/client/pixi/webgl/shaders/filters/vision-mask-filter.d.mts +0 -36
  953. package/src/foundry/client/pixi/webgl/shaders/filters/void.d.mts +0 -19
  954. package/src/foundry/client/pixi/webgl/shaders/filters/weather-occlusion-masks.d.mts +0 -57
  955. package/src/foundry/client/pixi/webgl/shaders/fragment-channel-mixin.d.mts +0 -60
  956. package/src/foundry/client/pixi/webgl/shaders/grid/grid.d.mts +0 -113
  957. package/src/foundry/client/pixi/webgl/shaders/grid/index.d.mts +0 -1
  958. package/src/foundry/client/pixi/webgl/shaders/index.d.mts +0 -10
  959. package/src/foundry/client/pixi/webgl/shaders/lighting/background-lighting.d.mts +0 -66
  960. package/src/foundry/client/pixi/webgl/shaders/lighting/base-lighting.d.mts +0 -178
  961. package/src/foundry/client/pixi/webgl/shaders/lighting/coloration-lighting.d.mts +0 -74
  962. package/src/foundry/client/pixi/webgl/shaders/lighting/darkness-lighting.d.mts +0 -74
  963. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/bewitching-wave.d.mts +0 -35
  964. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/black-hole.d.mts +0 -19
  965. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/chroma.d.mts +0 -24
  966. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/emanation.d.mts +0 -24
  967. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/energy-field.d.mts +0 -24
  968. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fairy-light.d.mts +0 -40
  969. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/flame.d.mts +0 -57
  970. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fog.d.mts +0 -24
  971. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/force-grid.d.mts +0 -24
  972. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/ghost-light.d.mts +0 -35
  973. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/hexa-dome.d.mts +0 -24
  974. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/index.d.mts +0 -25
  975. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/light-dome.d.mts +0 -24
  976. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/magical-gloom.d.mts +0 -19
  977. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/pulse.d.mts +0 -46
  978. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/radial-rainbow.d.mts +0 -24
  979. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/revolving-light.d.mts +0 -37
  980. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/roiling-mass.d.mts +0 -19
  981. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/siren-light.d.mts +0 -63
  982. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/smoke-patch.d.mts +0 -34
  983. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/star-light.d.mts +0 -24
  984. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/sunburst.d.mts +0 -35
  985. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/swirling-rainbow.d.mts +0 -23
  986. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/torch.d.mts +0 -47
  987. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/vortex.d.mts +0 -40
  988. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/wave.d.mts +0 -35
  989. package/src/foundry/client/pixi/webgl/shaders/lighting/illumination-lighting.d.mts +0 -80
  990. package/src/foundry/client/pixi/webgl/shaders/lighting/index.d.mts +0 -6
  991. package/src/foundry/client/pixi/webgl/shaders/region/adjust-darkness-level.d.mts +0 -135
  992. package/src/foundry/client/pixi/webgl/shaders/region/base.d.mts +0 -79
  993. package/src/foundry/client/pixi/webgl/shaders/region/highlight.d.mts +0 -95
  994. package/src/foundry/client/pixi/webgl/shaders/region/index.d.mts +0 -3
  995. package/src/foundry/client/pixi/webgl/shaders/samplers/base-sampler.d.mts +0 -205
  996. package/src/foundry/client/pixi/webgl/shaders/samplers/baseline-illumination.d.mts +0 -39
  997. package/src/foundry/client/pixi/webgl/shaders/samplers/color-adjustment.d.mts +0 -118
  998. package/src/foundry/client/pixi/webgl/shaders/samplers/depth.d.mts +0 -107
  999. package/src/foundry/client/pixi/webgl/shaders/samplers/fog-of-war.d.mts +0 -25
  1000. package/src/foundry/client/pixi/webgl/shaders/samplers/index.d.mts +0 -8
  1001. package/src/foundry/client/pixi/webgl/shaders/samplers/occlusion.d.mts +0 -106
  1002. package/src/foundry/client/pixi/webgl/shaders/samplers/primary.d.mts +0 -35
  1003. package/src/foundry/client/pixi/webgl/shaders/samplers/token-ring.d.mts +0 -75
  1004. package/src/foundry/client/pixi/webgl/shaders/vision/background-vision.d.mts +0 -43
  1005. package/src/foundry/client/pixi/webgl/shaders/vision/base-vision.d.mts +0 -33
  1006. package/src/foundry/client/pixi/webgl/shaders/vision/coloration-vision.d.mts +0 -42
  1007. package/src/foundry/client/pixi/webgl/shaders/vision/effects/amplification.d.mts +0 -33
  1008. package/src/foundry/client/pixi/webgl/shaders/vision/effects/index.d.mts +0 -2
  1009. package/src/foundry/client/pixi/webgl/shaders/vision/effects/wave.d.mts +0 -61
  1010. package/src/foundry/client/pixi/webgl/shaders/vision/illumination-vision.d.mts +0 -37
  1011. package/src/foundry/client/pixi/webgl/shaders/vision/index.d.mts +0 -5
  1012. package/src/foundry/client/pixi/webgl/shaders/weather/base-weather.d.mts +0 -111
  1013. package/src/foundry/client/pixi/webgl/shaders/weather/effect.d.mts +0 -63
  1014. package/src/foundry/client/pixi/webgl/shaders/weather/fog.d.mts +0 -51
  1015. package/src/foundry/client/pixi/webgl/shaders/weather/index.d.mts +0 -5
  1016. package/src/foundry/client/pixi/webgl/shaders/weather/rain.d.mts +0 -43
  1017. package/src/foundry/client/pixi/webgl/shaders/weather/snow.d.mts +0 -35
  1018. package/src/foundry/client/pixi/workers/index.d.mts +0 -1
  1019. package/src/foundry/client/pixi/workers/texture-worker.d.mts +0 -105
  1020. package/src/foundry/client/tours/canvas-tour.d.mts +0 -9
  1021. package/src/foundry/client/tours/index.d.mts +0 -3
  1022. package/src/foundry/client/tours/setup-tour.d.mts +0 -26
  1023. package/src/foundry/client/tours/sidebar-tour.d.mts +0 -9
  1024. package/src/foundry/client/ui/dialog.d.mts +0 -337
  1025. package/src/foundry/client/ui/drag.d.mts +0 -128
  1026. package/src/foundry/client/ui/dragdrop.d.mts +0 -124
  1027. package/src/foundry/client/ui/editor.d.mts +0 -546
  1028. package/src/foundry/client/ui/filepicker.d.mts +0 -477
  1029. package/src/foundry/client/ui/filter.d.mts +0 -148
  1030. package/src/foundry/client/ui/forms.d.mts +0 -85
  1031. package/src/foundry/client/ui/index.d.mts +0 -10
  1032. package/src/foundry/client/ui/prosemirror.d.mts +0 -171
  1033. package/src/foundry/client/ui/secrets.d.mts +0 -75
  1034. package/src/foundry/client/ui/tabs.d.mts +0 -117
  1035. package/src/foundry/client-esm/_module.d.mts +0 -112
  1036. package/src/foundry/client-esm/_types.d.mts +0 -8
  1037. package/src/foundry/client-esm/applications/_module.d.mts +0 -30
  1038. package/src/foundry/client-esm/applications/api/application.d.mts +0 -877
  1039. package/src/foundry/client-esm/applications/api/category-browser.d.mts +0 -40
  1040. package/src/foundry/client-esm/applications/api/dialog.d.mts +0 -346
  1041. package/src/foundry/client-esm/applications/api/document-sheet.d.mts +0 -140
  1042. package/src/foundry/client-esm/applications/api/handlebars-application.d.mts +0 -210
  1043. package/src/foundry/client-esm/applications/apps/av/camera-popout.d.mts +0 -23
  1044. package/src/foundry/client-esm/applications/apps/av/cameras.d.mts +0 -95
  1045. package/src/foundry/client-esm/applications/apps/combat-tracker-config.d.mts +0 -21
  1046. package/src/foundry/client-esm/applications/apps/compendium-art-config.d.mts +0 -54
  1047. package/src/foundry/client-esm/applications/apps/document-ownership.d.mts +0 -21
  1048. package/src/foundry/client-esm/applications/apps/document-sheet-config.d.mts +0 -24
  1049. package/src/foundry/client-esm/applications/apps/file-picker.d.mts +0 -410
  1050. package/src/foundry/client-esm/applications/apps/grid-config.d.mts +0 -25
  1051. package/src/foundry/client-esm/applications/apps/image-popout.d.mts +0 -56
  1052. package/src/foundry/client-esm/applications/apps/permission-config.d.mts +0 -60
  1053. package/src/foundry/client-esm/applications/dice/roll-resolver.d.mts +0 -110
  1054. package/src/foundry/client-esm/applications/elements/document-tags.d.mts +0 -92
  1055. package/src/foundry/client-esm/applications/elements/file-picker.d.mts +0 -62
  1056. package/src/foundry/client-esm/applications/elements/form-element.d.mts +0 -106
  1057. package/src/foundry/client-esm/applications/elements/multi-select.d.mts +0 -105
  1058. package/src/foundry/client-esm/applications/elements/prosemirror-editor.d.mts +0 -53
  1059. package/src/foundry/client-esm/applications/forms/fields.d.mts +0 -270
  1060. package/src/foundry/client-esm/applications/handlebars.d.mts +0 -3
  1061. package/src/foundry/client-esm/applications/hud/container.d.mts +0 -15
  1062. package/src/foundry/client-esm/applications/hud/drawing-hud.d.mts +0 -19
  1063. package/src/foundry/client-esm/applications/hud/placeable-hud.d.mts +0 -41
  1064. package/src/foundry/client-esm/applications/hud/tile-hud.d.mts +0 -19
  1065. package/src/foundry/client-esm/applications/hud/token-hud.d.mts +0 -20
  1066. package/src/foundry/client-esm/applications/quickstart.d.mts +0 -20
  1067. package/src/foundry/client-esm/applications/settings/_module.d.mts +0 -7
  1068. package/src/foundry/client-esm/applications/settings/config.d.mts +0 -21
  1069. package/src/foundry/client-esm/applications/settings/dependency-resolution.d.mts +0 -19
  1070. package/src/foundry/client-esm/applications/settings/menus/av-config.d.mts +0 -27
  1071. package/src/foundry/client-esm/applications/settings/menus/default-sheets-config.d.mts +0 -19
  1072. package/src/foundry/client-esm/applications/settings/menus/dice-config.d.mts +0 -18
  1073. package/src/foundry/client-esm/applications/settings/menus/font-config.d.mts +0 -43
  1074. package/src/foundry/client-esm/applications/settings/menus/prototype-overrides.d.mts +0 -21
  1075. package/src/foundry/client-esm/applications/settings/menus/ui-config.d.mts +0 -26
  1076. package/src/foundry/client-esm/applications/sheets/_module.d.mts +0 -37
  1077. package/src/foundry/client-esm/applications/sheets/active-effect-config.d.mts +0 -25
  1078. package/src/foundry/client-esm/applications/sheets/actor-sheet.d.mts +0 -31
  1079. package/src/foundry/client-esm/applications/sheets/adventure-exporter.d.mts +0 -25
  1080. package/src/foundry/client-esm/applications/sheets/adventure-importer.d.mts +0 -25
  1081. package/src/foundry/client-esm/applications/sheets/ambient-light-config.d.mts +0 -80
  1082. package/src/foundry/client-esm/applications/sheets/ambient-sound-config.d.mts +0 -52
  1083. package/src/foundry/client-esm/applications/sheets/base-sheet.d.mts +0 -23
  1084. package/src/foundry/client-esm/applications/sheets/card-config.d.mts +0 -25
  1085. package/src/foundry/client-esm/applications/sheets/cards-config.d.mts +0 -49
  1086. package/src/foundry/client-esm/applications/sheets/combatant-config.d.mts +0 -25
  1087. package/src/foundry/client-esm/applications/sheets/drawing-config.d.mts +0 -25
  1088. package/src/foundry/client-esm/applications/sheets/folder-config.d.mts +0 -25
  1089. package/src/foundry/client-esm/applications/sheets/item-sheet.d.mts +0 -22
  1090. package/src/foundry/client-esm/applications/sheets/journal/dialog-show.d.mts +0 -19
  1091. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-category-config.d.mts +0 -25
  1092. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-hbs-sheet.d.mts +0 -19
  1093. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-image-sheet.d.mts +0 -18
  1094. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-markdown-sheet.d.mts +0 -18
  1095. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-pdf-sheet.d.mts +0 -18
  1096. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-prose-mirror-sheet.d.mts +0 -18
  1097. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-sheet.d.mts +0 -28
  1098. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-text-sheet.d.mts +0 -18
  1099. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-video-sheet.d.mts +0 -18
  1100. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-sheet.d.mts +0 -35
  1101. package/src/foundry/client-esm/applications/sheets/macro-config.d.mts +0 -25
  1102. package/src/foundry/client-esm/applications/sheets/note-config.d.mts +0 -25
  1103. package/src/foundry/client-esm/applications/sheets/playlist-config.d.mts +0 -25
  1104. package/src/foundry/client-esm/applications/sheets/playlist-sound-config.d.mts +0 -25
  1105. package/src/foundry/client-esm/applications/sheets/region-behavior-config.d.mts +0 -37
  1106. package/src/foundry/client-esm/applications/sheets/region-config.d.mts +0 -43
  1107. package/src/foundry/client-esm/applications/sheets/roll-table-config.d.mts +0 -25
  1108. package/src/foundry/client-esm/applications/sheets/roll-table-sheet.d.mts +0 -25
  1109. package/src/foundry/client-esm/applications/sheets/scene-config.d.mts +0 -25
  1110. package/src/foundry/client-esm/applications/sheets/table-result-config.d.mts +0 -25
  1111. package/src/foundry/client-esm/applications/sheets/template-config.d.mts +0 -25
  1112. package/src/foundry/client-esm/applications/sheets/tile-config.d.mts +0 -25
  1113. package/src/foundry/client-esm/applications/sheets/token/mixin.d.mts +0 -27
  1114. package/src/foundry/client-esm/applications/sheets/token/prototype-config.d.mts +0 -18
  1115. package/src/foundry/client-esm/applications/sheets/token/token-config.d.mts +0 -25
  1116. package/src/foundry/client-esm/applications/sheets/user-config.d.mts +0 -44
  1117. package/src/foundry/client-esm/applications/sheets/wall-config.d.mts +0 -25
  1118. package/src/foundry/client-esm/applications/sidebar/apps/chat-popout.d.mts +0 -22
  1119. package/src/foundry/client-esm/applications/sidebar/apps/compendium.d.mts +0 -21
  1120. package/src/foundry/client-esm/applications/sidebar/apps/controls-config.d.mts +0 -20
  1121. package/src/foundry/client-esm/applications/sidebar/apps/folder-export.d.mts +0 -18
  1122. package/src/foundry/client-esm/applications/sidebar/apps/frame-viewer.d.mts +0 -22
  1123. package/src/foundry/client-esm/applications/sidebar/apps/invitation-links.d.mts +0 -17
  1124. package/src/foundry/client-esm/applications/sidebar/apps/module-management.d.mts +0 -21
  1125. package/src/foundry/client-esm/applications/sidebar/apps/support-details.d.mts +0 -17
  1126. package/src/foundry/client-esm/applications/sidebar/apps/tours-management.d.mts +0 -20
  1127. package/src/foundry/client-esm/applications/sidebar/apps/world-config.d.mts +0 -19
  1128. package/src/foundry/client-esm/applications/sidebar/document-directory.d.mts +0 -30
  1129. package/src/foundry/client-esm/applications/sidebar/sidebar-tab.d.mts +0 -86
  1130. package/src/foundry/client-esm/applications/sidebar/sidebar.d.mts +0 -18
  1131. package/src/foundry/client-esm/applications/sidebar/tabs/actor-directory.d.mts +0 -20
  1132. package/src/foundry/client-esm/applications/sidebar/tabs/cards-directory.d.mts +0 -20
  1133. package/src/foundry/client-esm/applications/sidebar/tabs/chat.d.mts +0 -19
  1134. package/src/foundry/client-esm/applications/sidebar/tabs/combat-tracker.d.mts +0 -19
  1135. package/src/foundry/client-esm/applications/sidebar/tabs/compendium-directory.d.mts +0 -19
  1136. package/src/foundry/client-esm/applications/sidebar/tabs/item-directory.d.mts +0 -20
  1137. package/src/foundry/client-esm/applications/sidebar/tabs/journal-directory.d.mts +0 -20
  1138. package/src/foundry/client-esm/applications/sidebar/tabs/macro-directory.d.mts +0 -20
  1139. package/src/foundry/client-esm/applications/sidebar/tabs/playlist-directory.d.mts +0 -20
  1140. package/src/foundry/client-esm/applications/sidebar/tabs/roll-table-directory.d.mts +0 -20
  1141. package/src/foundry/client-esm/applications/sidebar/tabs/scene-directory.d.mts +0 -20
  1142. package/src/foundry/client-esm/applications/sidebar/tabs/settings.d.mts +0 -18
  1143. package/src/foundry/client-esm/applications/ui/game-pause.d.mts +0 -22
  1144. package/src/foundry/client-esm/applications/ui/hotbar.d.mts +0 -29
  1145. package/src/foundry/client-esm/applications/ui/main-menu.d.mts +0 -27
  1146. package/src/foundry/client-esm/applications/ui/players.d.mts +0 -26
  1147. package/src/foundry/client-esm/applications/ui/region-legend.d.mts +0 -57
  1148. package/src/foundry/client-esm/applications/ui/scene-controls.d.mts +0 -20
  1149. package/src/foundry/client-esm/applications/ui/scene-navigation.d.mts +0 -28
  1150. package/src/foundry/client-esm/applications/ux/context-menu.d.mts +0 -359
  1151. package/src/foundry/client-esm/applications/ux/drag-drop.d.mts +0 -21
  1152. package/src/foundry/client-esm/applications/ux/draggable.d.mts +0 -9
  1153. package/src/foundry/client-esm/applications/ux/form-data-extended.d.mts +0 -17
  1154. package/src/foundry/client-esm/applications/ux/html-secret.d.mts +0 -21
  1155. package/src/foundry/client-esm/applications/ux/prosemirror-editor.d.mts +0 -9
  1156. package/src/foundry/client-esm/applications/ux/search-filter.d.mts +0 -9
  1157. package/src/foundry/client-esm/applications/ux/tabs.d.mts +0 -29
  1158. package/src/foundry/client-esm/applications/ux/text-editor.d.mts +0 -9
  1159. package/src/foundry/client-esm/appv1/api/application-v1.d.mts +0 -5
  1160. package/src/foundry/client-esm/appv1/api/dialog-v1.d.mts +0 -5
  1161. package/src/foundry/client-esm/appv1/api/document-sheet-v1.d.mts +0 -5
  1162. package/src/foundry/client-esm/appv1/api/form-application-v1.d.mts +0 -5
  1163. package/src/foundry/client-esm/appv1/sheets/actor-sheet.d.mts +0 -5
  1164. package/src/foundry/client-esm/appv1/sheets/adventure-importer.d.mts +0 -5
  1165. package/src/foundry/client-esm/appv1/sheets/item-sheet.d.mts +0 -5
  1166. package/src/foundry/client-esm/appv1/sheets/journal-page-sheet.d.mts +0 -7
  1167. package/src/foundry/client-esm/appv1/sheets/journal-sheet.d.mts +0 -5
  1168. package/src/foundry/client-esm/audio/_types.d.mts +0 -16
  1169. package/src/foundry/client-esm/audio/biquad.d.mts +0 -51
  1170. package/src/foundry/client-esm/audio/cache.d.mts +0 -68
  1171. package/src/foundry/client-esm/audio/convolver.d.mts +0 -71
  1172. package/src/foundry/client-esm/audio/helper.d.mts +0 -326
  1173. package/src/foundry/client-esm/audio/sound.d.mts +0 -401
  1174. package/src/foundry/client-esm/audio/timeout.d.mts +0 -85
  1175. package/src/foundry/client-esm/av/client.d.mts +0 -18
  1176. package/src/foundry/client-esm/av/clients/simplepeer.d.mts +0 -11
  1177. package/src/foundry/client-esm/av/master.d.mts +0 -12
  1178. package/src/foundry/client-esm/av/settings.d.mts +0 -30
  1179. package/src/foundry/client-esm/canvas/_module.d.mts +0 -11
  1180. package/src/foundry/client-esm/canvas/edges/collision.d.mts +0 -136
  1181. package/src/foundry/client-esm/canvas/edges/edge.d.mts +0 -248
  1182. package/src/foundry/client-esm/canvas/edges/edges.d.mts +0 -32
  1183. package/src/foundry/client-esm/canvas/edges/vertex.d.mts +0 -164
  1184. package/src/foundry/client-esm/canvas/regions/_module.d.mts +0 -9
  1185. package/src/foundry/client-esm/canvas/regions/geometry.d.mts +0 -31
  1186. package/src/foundry/client-esm/canvas/regions/mesh.d.mts +0 -61
  1187. package/src/foundry/client-esm/canvas/regions/polygon-tree.d.mts +0 -101
  1188. package/src/foundry/client-esm/canvas/regions/shape.d.mts +0 -118
  1189. package/src/foundry/client-esm/canvas/scene-manager.d.mts +0 -102
  1190. package/src/foundry/client-esm/canvas/smaa/blend.d.mts +0 -6
  1191. package/src/foundry/client-esm/canvas/smaa/edges.d.mts +0 -6
  1192. package/src/foundry/client-esm/canvas/smaa/smaa.d.mts +0 -55
  1193. package/src/foundry/client-esm/canvas/smaa/weights.d.mts +0 -6
  1194. package/src/foundry/client-esm/canvas/sources/base-effect-source.d.mts +0 -264
  1195. package/src/foundry/client-esm/canvas/sources/base-light-source.d.mts +0 -197
  1196. package/src/foundry/client-esm/canvas/sources/global-light-source.d.mts +0 -62
  1197. package/src/foundry/client-esm/canvas/sources/point-darkness-source.d.mts +0 -101
  1198. package/src/foundry/client-esm/canvas/sources/point-effect-source.d.mts +0 -103
  1199. package/src/foundry/client-esm/canvas/sources/point-light-source.d.mts +0 -55
  1200. package/src/foundry/client-esm/canvas/sources/point-movement-source.d.mts +0 -31
  1201. package/src/foundry/client-esm/canvas/sources/point-sound-source.d.mts +0 -47
  1202. package/src/foundry/client-esm/canvas/sources/point-vision-source.d.mts +0 -213
  1203. package/src/foundry/client-esm/canvas/sources/rendered-effect-source.d.mts +0 -367
  1204. package/src/foundry/client-esm/canvas/tokens/_module.d.mts +0 -8
  1205. package/src/foundry/client-esm/canvas/tokens/ring-config.d.mts +0 -190
  1206. package/src/foundry/client-esm/canvas/tokens/ring-data.d.mts +0 -174
  1207. package/src/foundry/client-esm/canvas/tokens/ring.d.mts +0 -192
  1208. package/src/foundry/client-esm/client.d.mts +0 -279
  1209. package/src/foundry/client-esm/config.d.mts +0 -1
  1210. package/src/foundry/client-esm/data/_module.d.mts +0 -13
  1211. package/src/foundry/client-esm/data/calendar.d.mts +0 -213
  1212. package/src/foundry/client-esm/data/client-backend.d.mts +0 -51
  1213. package/src/foundry/client-esm/data/region-behaviors/adjust-darkness-level.d.mts +0 -57
  1214. package/src/foundry/client-esm/data/region-behaviors/base.d.mts +0 -59
  1215. package/src/foundry/client-esm/data/region-behaviors/display-scrolling-text.d.mts +0 -64
  1216. package/src/foundry/client-esm/data/region-behaviors/teleport-token.d.mts +0 -32
  1217. package/src/foundry/client-esm/data/region-behaviors/toggle-behavior.d.mts +0 -31
  1218. package/src/foundry/client-esm/data/terrain-data.d.mts +0 -22
  1219. package/src/foundry/client-esm/dice/_types.d.mts +0 -61
  1220. package/src/foundry/client-esm/dice/parser.d.mts +0 -213
  1221. package/src/foundry/client-esm/dice/roll.d.mts +0 -679
  1222. package/src/foundry/client-esm/dice/terms/coin.d.mts +0 -75
  1223. package/src/foundry/client-esm/dice/terms/dice.d.mts +0 -390
  1224. package/src/foundry/client-esm/dice/terms/die.d.mts +0 -248
  1225. package/src/foundry/client-esm/dice/terms/fate.d.mts +0 -57
  1226. package/src/foundry/client-esm/dice/terms/function.d.mts +0 -106
  1227. package/src/foundry/client-esm/dice/terms/numeric.d.mts +0 -56
  1228. package/src/foundry/client-esm/dice/terms/operator.d.mts +0 -55
  1229. package/src/foundry/client-esm/dice/terms/parenthetical.d.mts +0 -105
  1230. package/src/foundry/client-esm/dice/terms/pool.d.mts +0 -287
  1231. package/src/foundry/client-esm/dice/terms/string.d.mts +0 -34
  1232. package/src/foundry/client-esm/dice/terms/term.d.mts +0 -169
  1233. package/src/foundry/client-esm/dice/twister.d.mts +0 -134
  1234. package/src/foundry/client-esm/documents/_module.d.mts +0 -11
  1235. package/src/foundry/client-esm/documents/_types.d.mts +0 -8
  1236. package/src/foundry/client-esm/documents/abstract/_module.d.mts +0 -6
  1237. package/src/foundry/client-esm/documents/collections/_module.d.mts +0 -6
  1238. package/src/foundry/client-esm/game.d.mts +0 -7
  1239. package/src/foundry/client-esm/helpers/_module.d.mts +0 -8
  1240. package/src/foundry/client-esm/helpers/_types.d.mts +0 -51
  1241. package/src/foundry/client-esm/helpers/compendium-art.d.mts +0 -47
  1242. package/src/foundry/client-esm/hooks.d.mts +0 -1
  1243. package/src/foundry/client-esm/nue/tour.d.mts +0 -9
  1244. package/src/foundry/client-esm/nue/tours/canvas-tour.d.mts +0 -12
  1245. package/src/foundry/client-esm/nue/tours/setup-tour.d.mts +0 -11
  1246. package/src/foundry/client-esm/nue/tours/sidebar-tour.d.mts +0 -11
  1247. package/src/foundry/client-esm/packages/_module.d.mts +0 -22
  1248. package/src/foundry/client-esm/packages/_types.d.mts +0 -11
  1249. package/src/foundry/client-esm/packages/client-package.d.mts +0 -11
  1250. package/src/foundry/client-esm/packages/module.d.mts +0 -8
  1251. package/src/foundry/client-esm/packages/system.d.mts +0 -8
  1252. package/src/foundry/client-esm/packages/world.d.mts +0 -8
  1253. package/src/foundry/client-esm/ui.d.mts +0 -1
  1254. package/src/foundry/client-esm/utils/_module.d.mts +0 -7
  1255. package/src/foundry/client-esm/utils/_types.d.mts +0 -2
  1256. package/src/foundry/client-esm/utils/helpers.d.mts +0 -6
  1257. package/src/foundry/common/documents/module.d.mts +0 -35
  1258. package/src/foundry/common/prosemirror/index.d.mts +0 -22
  1259. package/src/foundry/common/prosemirror/schema/index.d.mts +0 -12
  1260. package/src/tsconfig.json +0 -19
  1261. /package/src/foundry/{client-esm → client}/applications/_types.d.mts +0 -0
  1262. /package/src/foundry/{client-esm → client}/applications/api/_module.d.mts +0 -0
  1263. /package/src/foundry/{client-esm → client}/applications/apps/_module.d.mts +0 -0
  1264. /package/src/foundry/{client-esm → client}/applications/apps/av/_module.d.mts +0 -0
  1265. /package/src/foundry/{client-esm → client}/applications/dice/_module.d.mts +0 -0
  1266. /package/src/foundry/{client-esm → client}/applications/elements/_module.d.mts +0 -0
  1267. /package/src/foundry/{client-esm → client}/applications/elements/codemirror/element.d.mts +0 -0
  1268. /package/src/foundry/{client-esm → client}/applications/elements/codemirror/extensions.d.mts +0 -0
  1269. /package/src/foundry/{client-esm → client}/applications/elements/codemirror/view.d.mts +0 -0
  1270. /package/src/foundry/{client-esm → client}/applications/elements/color-picker.d.mts +0 -0
  1271. /package/src/foundry/{client-esm → client}/applications/elements/document-embed.d.mts +0 -0
  1272. /package/src/foundry/{client-esm → client}/applications/elements/enriched-content.d.mts +0 -0
  1273. /package/src/foundry/{client-esm → client}/applications/elements/hue-slider.d.mts +0 -0
  1274. /package/src/foundry/{client-esm → client}/applications/elements/range-picker.d.mts +0 -0
  1275. /package/src/foundry/{client-esm → client}/applications/elements/secret-block.d.mts +0 -0
  1276. /package/src/foundry/{client-esm → client}/applications/elements/string-tags.d.mts +0 -0
  1277. /package/src/foundry/{client-esm → client}/applications/hud/_module.d.mts +0 -0
  1278. /package/src/foundry/{client-esm → client}/applications/settings/menus/_module.d.mts +0 -0
  1279. /package/src/foundry/{client-esm → client}/applications/sheets/journal/_module.d.mts +0 -0
  1280. /package/src/foundry/{client-esm → client}/applications/sheets/token/_module.d.mts +0 -0
  1281. /package/src/foundry/{client-esm → client}/applications/sidebar/_module.d.mts +0 -0
  1282. /package/src/foundry/{client-esm → client}/applications/sidebar/apps/_module.d.mts +0 -0
  1283. /package/src/foundry/{client-esm → client}/applications/sidebar/tabs/_module.d.mts +0 -0
  1284. /package/src/foundry/{client-esm → client}/applications/ui/_module.d.mts +0 -0
  1285. /package/src/foundry/{client-esm → client}/applications/ui/notifications.d.mts +0 -0
  1286. /package/src/foundry/{client-esm → client}/applications/ux/_module.d.mts +0 -0
  1287. /package/src/foundry/{client-esm → client}/appv1/_module.d.mts +0 -0
  1288. /package/src/foundry/{client-esm → client}/appv1/api/_module.d.mts +0 -0
  1289. /package/src/foundry/{client-esm → client}/appv1/sheets/_module.d.mts +0 -0
  1290. /package/src/foundry/{client-esm → client}/audio/_module.d.mts +0 -0
  1291. /package/src/foundry/{client-esm → client}/av/_module.d.mts +0 -0
  1292. /package/src/foundry/{client-esm → client}/av/clients/_module.d.mts +0 -0
  1293. /package/src/foundry/{client-esm/canvas → client/canvas/geometry}/edges/_module.d.mts +0 -0
  1294. /package/src/foundry/{client-esm → client}/canvas/sources/_module.d.mts +0 -0
  1295. /package/src/foundry/{client-esm → client}/data/_types.d.mts +0 -0
  1296. /package/src/foundry/{client-esm → client}/data/combat-config.d.mts +0 -0
  1297. /package/src/foundry/{client-esm → client}/data/region-behaviors/_module.d.mts +0 -0
  1298. /package/src/foundry/{client-esm → client}/data/region-behaviors/execute-macro.d.mts +0 -0
  1299. /package/src/foundry/{client-esm → client}/data/region-behaviors/execute-script.d.mts +0 -0
  1300. /package/src/foundry/{client-esm → client}/data/region-behaviors/pause-game.d.mts +0 -0
  1301. /package/src/foundry/{client-esm → client}/data/region-behaviors/suppress-weather.d.mts +0 -0
  1302. /package/src/foundry/{client-esm → client}/dice/_module.d.mts +0 -0
  1303. /package/src/foundry/{client-esm → client}/dice/terms/_module.d.mts +0 -0
  1304. /package/src/foundry/{client-esm → client}/nue/_module.d.mts +0 -0
  1305. /package/src/foundry/{client-esm → client}/nue/nue-manager.d.mts +0 -0
  1306. /package/src/foundry/{client-esm → client}/nue/tours/_module.d.mts +0 -0
  1307. /package/src/foundry/{client-esm → client}/nue/tours-collection.d.mts +0 -0
@@ -1,8 +1,7 @@
1
1
  import type {
2
- ConfiguredDocuments,
2
+ ConfiguredDocumentClass,
3
+ ConfiguredDocumentInstance,
3
4
  ConfiguredMetadata,
4
- DefaultDocuments,
5
- ConstructorData,
6
5
  } from "../../../types/documentConfiguration.d.mts";
7
6
  import type {
8
7
  GetKey,
@@ -11,15 +10,29 @@ import type {
11
10
  MustConform,
12
11
  ToMethod,
13
12
  AnyObject,
14
- DeepPartial,
15
13
  EmptyObject,
16
14
  InexactPartial,
17
15
  RemoveIndexSignatures,
18
16
  FixedInstanceType,
19
- } from "../../../utils/index.d.mts";
17
+ NullishProps,
18
+ DiscriminatedUnion,
19
+ PickValue,
20
+ Identity,
21
+ Brand,
22
+ AnyMutableObject,
23
+ MaybePromise,
24
+ Override,
25
+ } from "#utils";
20
26
  import type * as CONST from "../constants.mts";
21
- import type { DataField, EmbeddedCollectionField, EmbeddedDocumentField } from "../data/fields.d.mts";
22
- import type { fields } from "../data/_module.d.mts";
27
+ import type {
28
+ DataSchema,
29
+ DataField,
30
+ DocumentStatsField,
31
+ EmbeddedCollectionField,
32
+ EmbeddedDocumentField,
33
+ SchemaField,
34
+ TypeDataField,
35
+ } from "../data/fields.d.mts";
23
36
  import type { LogCompatibilityWarningOptions } from "../utils/logging.mts";
24
37
  import type {
25
38
  DatabaseAction,
@@ -31,22 +44,35 @@ import type {
31
44
  } from "./_types.d.mts";
32
45
  import type DataModel from "./data.mts";
33
46
  import type DocumentSocketResponse from "./socket.d.mts";
34
-
35
- type DataSchema = foundry.data.fields.DataSchema;
47
+ import type EmbeddedCollection from "./embedded-collection.d.mts";
36
48
 
37
49
  export default Document;
38
50
 
51
+ type InexactPartialExcept<T extends object, RequiredKey> = {
52
+ [K in keyof T as Extract<K, RequiredKey>]: T[K];
53
+ } & {
54
+ [K in keyof T as Exclude<K, RequiredKey>]?: T[K] | undefined;
55
+ };
56
+
39
57
  type _ClassMustBeAssignableToInternal = MustConform<typeof Document, Document.Internal.Constructor>;
40
58
  type _InstanceMustBeAssignableToInternal = MustConform<Document.Any, Document.Internal.Instance.Any>;
41
59
 
42
- type _ConfigurationFailureClassMustBeAssignableToInternal = MustConform<
43
- Document.ConfigurationFailureClass,
44
- Document.Internal.Constructor
45
- >;
46
- type _ConfigurationFailureInstanceMustBeAssignableToInternal = MustConform<
47
- Document.ConfigurationFailureInstance,
48
- Document.Internal.Instance.Any
49
- >;
60
+ // Note(LukeAbby): Properties from `Schema` technically derive from `DataModel`. This means that if
61
+ // `name?: string` etc. were to be put in `Document` directly they'd actually override the schema.
62
+ // Therefore this workaround is used to force `DataModel` to override the properties.
63
+ declare const _InternalDocument: (new (...args: any[]) => {
64
+ // TODO: removing undefined breaks everything, but should be valid to do, investigate
65
+ name?: string | null | undefined;
66
+
67
+ // `{}` is used so that `{}` and the actual shape of `system` are merged.
68
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
69
+ system?: {} | undefined;
70
+ _stats?: DocumentStatsField.InitializedData | undefined;
71
+
72
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
73
+ flags?: {} | undefined;
74
+ }) &
75
+ typeof DataModel;
50
76
 
51
77
  /**
52
78
  * An extension of the base DataModel which defines a Document.
@@ -56,30 +82,26 @@ declare abstract class Document<
56
82
  DocumentName extends Document.Type,
57
83
  Schema extends DataSchema,
58
84
  Parent extends Document.Any | null = null,
59
- > extends DataModel<Schema, Parent, InterfaceToObject<Document.ConstructionContext<Parent>>> {
60
- static [Document.Internal.DocumentBrand]: true;
61
-
62
- [Document.Internal.DocumentName]: DocumentName;
63
- [Document.Internal.Schema]: Schema;
64
- [Document.Internal.Parent]: Parent;
65
-
85
+ > extends _InternalDocument<Schema, Parent, InterfaceToObject<Document.ConstructionContext<Parent>>> {
66
86
  /**
67
87
  * @param data - Initial data provided to construct the Document
68
88
  * @param context - Construction context options
69
89
  */
70
- constructor(data?: fields.SchemaField.InnerConstructorType<Schema>, context?: Document.ConstructionContext<Parent>);
90
+ // Note: The constructor has been replaced with `never` in `Document` itself because it never makes
91
+ // sense to try to construct `new Document(...)` directly. Not only is it an abstract class but
92
+ // also it varies based upon the `Schema`. While this could be supported it also simplifies
93
+ // typechecking and helps stymy circularities.
94
+ constructor(...args: never);
71
95
 
72
96
  override parent: Parent;
73
97
 
74
- protected override _configure(options?: {
75
- pack?: string | null | undefined;
76
- parentCollection?: string | null | undefined;
77
- }): void;
98
+ // options: not null (destructured)
99
+ protected override _configure(options?: Document.ConfigureOptions): void;
78
100
 
79
101
  /**
80
102
  * An immutable reverse-reference to the name of the collection that this Document exists in on its parent, if any.
81
103
  */
82
- readonly parentCollection: string | null;
104
+ readonly parentCollection: Document.MetadataFor<DocumentName>["collection"] | null;
83
105
 
84
106
  /**
85
107
  * An immutable reference to a containing Compendium collection to which this Document belongs.
@@ -94,16 +116,9 @@ declare abstract class Document<
94
116
  /**
95
117
  * Ensure that all Document classes share the same schema of their base declaration.
96
118
  */
97
- static get schema(): foundry.data.fields.SchemaField.Any;
98
-
99
- protected _initialize(options?: any): void;
100
-
101
- /**
102
- * A mapping of singleton embedded Documents which exist in this model.
103
- */
104
- readonly singletons: Record<string, Document.AnyChild<this>>;
119
+ static get schema(): SchemaField.Any;
105
120
 
106
- protected static override _initializationOrder(): Generator<[string, DataField.Any]>;
121
+ protected static override _initializationOrder(): Generator<[string, DataField.Any], void, undefined>;
107
122
 
108
123
  /**
109
124
  * Default metadata which applies to each instance of this Document type.
@@ -111,23 +126,30 @@ declare abstract class Document<
111
126
  * ```typescript
112
127
  * {
113
128
  * name: "Document",
129
+ * label: "DOCUMENT.Document"
130
+ * coreTypes: [BASE_DOCUMENT_TYPE],
114
131
  * collection: "documents",
132
+ * embedded: {},
133
+ * hasTypeData: false,
115
134
  * indexed: false,
116
135
  * compendiumIndexFields: [],
117
- * label: "DOCUMENT.Document",
118
- * coreTypes: [],
119
- * embedded: {},
120
136
  * permissions: {
121
- * create: "ASSISTANT",
122
- * update: "ASSISTANT",
123
- * delete: "ASSISTANT"
137
+ * view: "LIMITED" // At least limited permission is required to view the Document
138
+ * create: "ASSISTANT", // Assistants or Gamemasters can create Documents
139
+ * update: "ASSISTANT", // Document owners can update Documents (this includes GM users)
140
+ * delete: "ASSISTANT" // Assistants or Gamemasters can create Documents
124
141
  * },
125
- * preserveOnImport: ["_id", "sort", "ownership"],
142
+ * preserveOnImport: ["_id", "sort", "ownership", folder],
126
143
  * schemaVersion: undefined
127
144
  * }
128
145
  * ```
129
146
  */
130
- static metadata: Readonly<Document.Metadata.Any>;
147
+ static metadata: Document.Metadata.Any;
148
+
149
+ /**
150
+ * @defaultValue `["DOCUMENT"]`
151
+ */
152
+ static override LOCALIZATION_PREFIXES: string[];
131
153
 
132
154
  /**
133
155
  * The database backend used to execute operations and handle results
@@ -137,7 +159,7 @@ declare abstract class Document<
137
159
  /**
138
160
  * Return a reference to the implemented subclass of this base document type.
139
161
  */
140
- static get implementation(): Document.AnyConstructor;
162
+ static get implementation(): Document.Internal.Constructor;
141
163
 
142
164
  /**
143
165
  * The base document definition that this document class extends from.
@@ -152,12 +174,12 @@ declare abstract class Document<
152
174
  /**
153
175
  * The named collection to which this Document belongs.
154
176
  */
155
- get collectionName(): Document.Internal.SimpleMetadata<DocumentName>["collection"];
177
+ get collectionName(): Document.MetadataFor<DocumentName>["collection"];
156
178
 
157
179
  /**
158
180
  * The canonical name of this Document type, for example "Actor".
159
181
  */
160
- static get documentName(): string;
182
+ static get documentName(): Document.Type;
161
183
 
162
184
  /**
163
185
  * The canonical name of this Document type, for example "Actor".
@@ -166,26 +188,30 @@ declare abstract class Document<
166
188
 
167
189
  /**
168
190
  * The allowed types which may exist for this Document class
169
- * @remarks Document.TYPES is overly generic so subclasses don't cause problems
170
191
  */
171
192
  static get TYPES(): string[];
172
193
 
173
194
  /**
174
195
  * Does this Document support additional subtypes?
175
196
  */
176
- static get hasTypeData(): boolean;
197
+ static get hasTypeData(): undefined | true;
177
198
 
178
199
  /**
179
200
  * The Embedded Document hierarchy for this Document.
180
201
  */
181
- static get hierarchy(): Record<string, EmbeddedCollectionField<any, any> | EmbeddedDocumentField<any>>;
202
+ static get hierarchy(): Record<string, EmbeddedCollectionField.Any | EmbeddedDocumentField.Any>;
182
203
 
183
204
  /**
184
205
  * Identify the collection in a parent Document that this Document exists belongs to, if any.
185
206
  * @param parentCollection - An explicitly provided parent collection name.
207
+ * @remarks If passed a value for `parentCollection`, simply returns that value
208
+ *
209
+ * Foundry marked `@internal`
186
210
  */
187
211
  _getParentCollection(parentCollection?: string): string | null;
188
212
 
213
+ _id: string | null;
214
+
189
215
  /**
190
216
  * The canonical identifier for this Document
191
217
  */
@@ -196,27 +222,43 @@ declare abstract class Document<
196
222
  */
197
223
  get isEmbedded(): boolean;
198
224
 
225
+ /**
226
+ * Is this document in a compendium?
227
+ */
228
+ get inCompendium(): boolean;
229
+
199
230
  /**
200
231
  * A Universally Unique Identifier (uuid) for this Document instance.
201
232
  */
202
233
  get uuid(): string;
203
234
 
204
235
  /**
205
- * Test whether a given User has a sufficient role in order to create Documents of this type in general.
236
+ * Test whether a given User has sufficient permissions to create Documents of this type in general. This does not
237
+ * guarantee that the User is able to create all Documents of this type, as certain document-specific requirements
238
+ * may also be present.
239
+ *
240
+ * Generally speaking, this method is used to verify whether a User should be presented with the option to create
241
+ * Documents of this type in the UI.
206
242
  * @param user - The User being tested
207
243
  * @returns Does the User have a sufficient role to create?
208
244
  */
209
- static canUserCreate(user: User): boolean;
245
+ static canUserCreate(user: User.Implementation): boolean;
210
246
 
211
247
  /**
212
- * Get the explicit permission level that a specific User has over this Document, a value in CONST.DOCUMENT_OWNERSHIP_LEVELS.
213
- * This method returns the value recorded in Document ownership, regardless of the User's role.
248
+ * Get the explicit permission level that a User has over this Document, a value in {@link CONST.DOCUMENT_OWNERSHIP_LEVELS | `CONST.DOCUMENT_OWNERSHIP_LEVELS`}.
249
+ * Compendium content ignores the ownership field in favor of User role-based ownership. Otherwise, Documents use
250
+ * granular per-User ownership definitions and Embedded Documents defer to their parent ownership.
251
+ *
252
+ * This method returns the value recorded in Document ownership, regardless of the User's role, for example a
253
+ * GAMEMASTER user might still return a result of NONE if they are not explicitly denoted as having a level.
254
+ *
214
255
  * To test whether a user has a certain capability over the document, testUserPermission should be used.
215
- * @param user - The User being tested
216
- * (default: `game.user`)
256
+ * @param user - The User being tested (default: `game.user`)
217
257
  * @returns A numeric permission level from CONST.DOCUMENT_OWNERSHIP_LEVELS or null
258
+ *
259
+ * @privateRemarks Making this just `User.Implementation` causes circularities
218
260
  */
219
- getUserLevel(user?: User): CONST.DOCUMENT_OWNERSHIP_LEVELS | null;
261
+ getUserLevel(user?: User.Internal.Implementation | null): CONST.DOCUMENT_OWNERSHIP_LEVELS | null;
220
262
 
221
263
  /**
222
264
  * Test whether a certain User has a requested permission level (or greater) over the Document
@@ -224,28 +266,31 @@ declare abstract class Document<
224
266
  * @param permission - The permission level from DOCUMENT_PERMISSION_LEVELS to test
225
267
  * @param options - Additional options involved in the permission test
226
268
  * @returns Does the user have this permission level over the Document?
269
+ *
270
+ * @privateRemarks Making this just `User.Implementation` causes circularities
227
271
  */
272
+ // options: not null (destructured)
228
273
  testUserPermission(
229
- user: User,
230
- permission: keyof typeof CONST.DOCUMENT_OWNERSHIP_LEVELS | CONST.DOCUMENT_OWNERSHIP_LEVELS,
231
- options?: InexactPartial<{
232
- /**
233
- * Require the exact permission level requested?
234
- * @defaultValue `false`
235
- */
236
- exact: boolean;
237
- }>,
274
+ user: User.Internal.Implementation,
275
+ permission: Document.ActionPermission,
276
+ options?: Document.TestUserPermissionOptions,
238
277
  ): boolean;
239
278
 
240
279
  /**
241
280
  * Test whether a given User has permission to perform some action on this Document
242
281
  * @param user - The User attempting modification
243
282
  * @param action - The attempted action
244
- * @param data - Data involved in the attempted action
245
- * (default: `{}`)
283
+ * @param data - Data involved in the attempted action (default: `{}`)
246
284
  * @returns Does the User have permission?
285
+ *
286
+ * @privateRemarks Making this just `User.Implementation` causes circularities
247
287
  */
248
- canUserModify(user: User, action: "create" | "update" | "delete", data?: object): boolean;
288
+ // data: not null (parameter default only)
289
+ canUserModify<Action extends "create" | "update" | "delete">(
290
+ user: User.Internal.Implementation,
291
+ action: Action,
292
+ data?: Document.CanUserModifyData<Schema, Action>,
293
+ ): boolean;
249
294
 
250
295
  /**
251
296
  * Clone a document, creating a new document by combining current data with provided overrides.
@@ -254,40 +299,22 @@ declare abstract class Document<
254
299
  * @param context - Additional context options passed to the create method
255
300
  * @returns The cloned Document instance
256
301
  */
257
- override clone<Save extends boolean = false>(
258
- data?: fields.SchemaField.AssignmentType<Schema, EmptyObject>,
259
- context?: InexactPartial<
260
- {
261
- /**
262
- * Save the clone to the World database?
263
- * @defaultValue `false`
264
- */
265
- save: Save;
266
-
267
- /**
268
- * Keep the same ID of the original document
269
- * @defaultValue `false`
270
- */
271
- keepId: boolean;
272
-
273
- /**
274
- * Track the clone source
275
- * @defaultValue `false`
276
- */
277
- addSource: boolean;
278
- } & Document.ConstructionContext<this["parent"]>
279
- >, // FIXME(LukeAbby): Adding Document.Stored to the return causes a recursive type error in Scene
280
- ): Save extends true ? Promise<this> : this;
302
+ // data: not null (property access), context: not null (destructured)
303
+ override clone<Save extends boolean | null | undefined = undefined>(
304
+ data?: SchemaField.UpdateData<Schema>,
305
+ context?: Document.CloneContext<Save>,
306
+ ): Document.Clone<this, Save>;
281
307
 
282
308
  /**
283
309
  * For Documents which include game system data, migrate the system data object to conform to its latest data model.
284
310
  * The data model is defined by the template.json specification included by the game system.
285
311
  * @returns The migrated system data object
312
+ * @throws If this document type either doesn't have subtypes or it does but the one on this document is a DataModel
286
313
  */
287
314
  migrateSystemData(): object;
288
315
 
289
- override toObject(source: true): this["_source"];
290
- override toObject(source?: boolean): ReturnType<this["schema"]["toObject"]>;
316
+ /** @remarks `Document#toObject` calls `this.constructor.shimData()` on the data before returning */
317
+ override toObject(source?: boolean | null): SchemaField.SourceData<Schema>;
291
318
 
292
319
  /**
293
320
  * Create multiple Documents using provided input data.
@@ -323,16 +350,12 @@ declare abstract class Document<
323
350
  * const data = [{name: "Compendium Actor", type: "character", img: "path/to/profile.jpg"}];
324
351
  * const created = await Actor.createDocuments(data, {pack: "mymodule.mypack"});
325
352
  * ```
353
+ *
354
+ * @remarks If a document is skipped by a hook or `_preCreate` then that element is skipped in the
355
+ * return type. This means that you receive only documents that were actually created.
326
356
  */
327
- static createDocuments<T extends Document.AnyConstructor, Temporary extends boolean | undefined>(
328
- this: T,
329
- data: Array<Document.ConstructorDataFor<NoInfer<T>>>,
330
- operation?: InexactPartial<
331
- Omit<Document.Database.OperationOf<NoInfer<T>["metadata"]["name"], "create">, "data">
332
- > & {
333
- temporary?: Temporary;
334
- },
335
- ): Promise<Document.ToStoredIf<T, Temporary>[] | undefined>;
357
+ // Note: This uses `never` because it's unsound to try to do `Document.createDocuments` directly.
358
+ static createDocuments(data: never, operation?: never): Promise<Document.Any[]>;
336
359
 
337
360
  /**
338
361
  * Update multiple Document instances using provided differential data.
@@ -368,14 +391,12 @@ declare abstract class Document<
368
391
  * const actor = await pack.getDocument(documentId);
369
392
  * const updated = await Actor.updateDocuments([{_id: actor.id, name: "New Name"}], {pack: "mymodule.mypack"});
370
393
  * ```
394
+ *
395
+ * @remarks If a document is skipped by a hook or `_preCreate` then that element is skipped in the
396
+ * return type. This means that you receive only documents that were actually updated.
371
397
  */
372
- static updateDocuments<T extends Document.AnyConstructor>(
373
- this: T,
374
- updates?: Array<DeepPartial<Document.UpdateDataFor<NoInfer<T>>>>,
375
- operation?: InexactPartial<
376
- Omit<Document.Database.OperationOf<FixedInstanceType<NoInfer<T>>["documentName"], "update">, "updates">
377
- >,
378
- ): Promise<Document.ToConfiguredInstance<T>[]>;
398
+ // Note: This uses `never` because it's unsound to try to do `Document.updateDocuments`
399
+ static updateDocuments(updates: never, operation?: never): Promise<Document.Any[]>;
379
400
 
380
401
  /**
381
402
  * Delete one or multiple existing Documents using an array of provided ids.
@@ -413,18 +434,16 @@ declare abstract class Document<
413
434
  * const actor = await pack.getDocument(documentId);
414
435
  * const deleted = await Actor.deleteDocuments([actor.id], {pack: "mymodule.mypack"});
415
436
  * ```
437
+ *
438
+ * @remarks If a document is skipped by a hook or `_preDelete` then that element is skipped in the
439
+ * return type. This means that you receive only documents that were actually deleted.
416
440
  */
417
- static deleteDocuments<T extends Document.AnyConstructor>(
418
- this: T,
419
- ids?: string[],
420
- operation?: InexactPartial<
421
- Omit<Document.Database.OperationOf<FixedInstanceType<NoInfer<T>>["documentName"], "delete">, "ids">
422
- >,
423
- ): Promise<Document.ToConfiguredInstance<T>[]>;
441
+ // Note: This uses `never` because it's unsound to try to pass the operation for `Document.deleteDocument`
442
+ static deleteDocuments(ids?: readonly string[], operation?: never): Promise<Document.Any[]>;
424
443
 
425
444
  /**
426
445
  * Create a new Document using provided input data, saving it to the database.
427
- * @see {@link Document.createDocuments}
446
+ * @see {@linkcode Document.createDocuments}
428
447
  * @param data - Initial data used to create this Document, or a Document instance to persist.
429
448
  * @param operation - Parameters of the creation operation
430
449
  * (default: `{}`)
@@ -449,55 +468,56 @@ declare abstract class Document<
449
468
  * const created = await Item.create(data, {pack: "mymodule.mypack"});
450
469
  * ```
451
470
  *
452
- * @remarks If no document has actually been created, the returned {@link Promise} resolves to `undefined`.
471
+ * @remarks If the document creation is skipped by a hook or `_preCreate` then `undefined` is
472
+ * returned.
453
473
  */
454
- static create<T extends Document.AnyConstructor, Temporary extends boolean | undefined>(
455
- this: T,
456
- data: Document.ConstructorDataFor<NoInfer<T>> | Document.ConstructorDataFor<NoInfer<T>>[],
457
- operation?: InexactPartial<
458
- Omit<Document.Database.OperationOf<NoInfer<T>["metadata"]["name"], "create">, "data">
459
- > & {
460
- temporary?: Temporary;
461
- },
462
- ): Promise<Document.ToStoredIf<T, Temporary> | undefined>;
474
+ // Note: This uses `never` because it's unsound to try to call `Document.create` directly.
475
+ // TODO: This can take an array of data and return an array of documents, in addition to its current typing
476
+ static create(data: never, operation?: never): Promise<Document.Any | undefined>;
463
477
 
464
478
  /**
465
479
  * Update this Document using incremental data, saving it to the database.
466
- * @see {@link Document.updateDocuments}
480
+ * @see {@linkcode Document.updateDocuments}
467
481
  * @param data - Differential update data which modifies the existing values of this document data
468
482
  * (default: `{}`)
469
483
  * @param operation - Parameters of the update operation
470
484
  * (default: `{}`)
471
485
  * @returns The updated Document instance
472
486
  *
473
- * @remarks If no document has actually been updated, the returned {@link Promise} resolves to `undefined`.
487
+ * @remarks If the document update is skipped by a hook or `_preUpdate` then `undefined` is
488
+ * returned.
474
489
  */
475
- update(
476
- // TODO: Determine if this is Partial, DeepPartial, or InexactPartial.
477
- data?: Partial<Document.ConstructorDataForSchema<Schema>>,
478
- operation?: InexactPartial<Omit<Document.Database.OperationOf<DocumentName, "update">, "updates">>,
479
- ): Promise<this | undefined>;
490
+ // Note: This uses `never` because it's unsound to try to call `Document#update` directly.
491
+ update(data: never, operation: never): Promise<this | undefined>;
480
492
 
481
493
  /**
482
494
  * Delete this Document, removing it from the database.
483
- * @see {@link Document.deleteDocuments}
495
+ * @see {@linkcode Document.deleteDocuments}
484
496
  * @param operation - Parameters of the deletion operation
485
497
  * (default: `{}`)
486
498
  * @returns The deleted Document instance
487
499
  *
488
- * @remarks If no document has actually been deleted, the returned {@link Promise} resolves to `undefined`.
500
+ * @remarks If the document deletion is skipped by a hook or `_preUpdate` then `undefined` is
501
+ * returned.
489
502
  */
490
- delete(
491
- operation?: InexactPartial<Omit<Document.Database.OperationOf<DocumentName, "delete">, "ids">>,
492
- ): Promise<this | undefined>;
503
+ // Note: This uses `never` because it's unsound to try to call `Document#delete` directly.
504
+ delete(operation: never): Promise<this | undefined>;
493
505
 
494
506
  /**
495
507
  * Get a World-level Document of this type by its id.
496
508
  * @param documentId - The Document ID
497
- * @param options - Additional options which customize the request
509
+ * @param operation - Additional options which customize the request
498
510
  * @returns The retrieved Document, or null
511
+ *
512
+ * @remarks If the Document is in a compendium (i.e `operation.pack` is provided), returns the index
513
+ * entry (or `null`), instead of the Document.
514
+ *
515
+ * {@link FogExploration.get | `FogExploration.get`} can possibly forward args and return to/from
516
+ * {@link FogExploration.load | `FogExploration.load`}, which accounts for the `Promise<>` part
517
+ * of the return; All other documents return `SomeDoc.Implementation | null`
499
518
  */
500
- static get(documentId: string, options?: InexactPartial<DatabaseGetOperation>): Document.Any | null;
519
+ // TODO: Type for possible index entry return
520
+ static get(documentId: string, operation?: Document.Database.GetOptions): MaybePromise<Document.Any | null>;
501
521
 
502
522
  /**
503
523
  * A compatibility method that returns the appropriate name of an embedded collection within this Document.
@@ -516,7 +536,7 @@ declare abstract class Document<
516
536
  * // returns "items"
517
537
  * ```
518
538
  */
519
- static getCollectionName(name: string): string | null;
539
+ static getCollectionName(name: never): string | null;
520
540
 
521
541
  /**
522
542
  * Obtain a reference to the Array of source data within the data object for a certain embedded Document name
@@ -524,9 +544,8 @@ declare abstract class Document<
524
544
  * @returns The Collection instance of embedded Documents of the requested type
525
545
  * @remarks Usually returns some form of DocumentCollection, but not always (e.g. Token["actors"])
526
546
  */
527
- getEmbeddedCollection<EmbeddedName extends foundry.CONST.EMBEDDED_DOCUMENT_TYPES>(
528
- embeddedName: EmbeddedName,
529
- ): Collection<Document.ConfiguredInstanceForName<EmbeddedName>>;
547
+ // Note: This uses `never` because it's unsound to try to call `Document#getEmbeddedCollection` directly.
548
+ getEmbeddedCollection(embeddedName: never): unknown;
530
549
 
531
550
  /**
532
551
  * Get an embedded document by its id from a named collection in the parent document.
@@ -536,26 +555,16 @@ declare abstract class Document<
536
555
  * @returns The retrieved embedded Document instance, or undefined
537
556
  * @throws If the embedded collection does not exist, or if strict is true and the Embedded Document could not be found.
538
557
  */
558
+ // Note: This uses `never` because it's unsound to try to call `Document#getEmbeddedDocument` directly.
539
559
  getEmbeddedDocument(
540
- embeddedName: string,
560
+ embeddedName: never,
541
561
  id: string,
542
- options: InexactPartial<{
543
- /**
544
- * Throw an Error if the requested id does not exist. See Collection#get
545
- * @defaultValue `false`
546
- */
547
- strict: boolean;
548
- /**
549
- * Allow retrieving an invalid Embedded Document.
550
- * @defaultValue `false`
551
- */
552
- invalid: boolean;
553
- }>,
554
- ): Document.AnyChild<this> | undefined;
562
+ options: Document.GetEmbeddedDocumentOptions,
563
+ ): Document.Any | undefined;
555
564
 
556
565
  /**
557
566
  * Create multiple embedded Document instances within this parent Document using provided input data.
558
- * @see {@link Document.createDocuments}
567
+ * @see {@linkcode Document.createDocuments}
559
568
  * @param embeddedName - The name of the embedded Document type
560
569
  * @param data - An array of data objects used to create multiple documents
561
570
  * (default: `[]`)
@@ -563,23 +572,18 @@ declare abstract class Document<
563
572
  * (default: `{}`)
564
573
  * @returns An array of created Document instances
565
574
  */
566
- // TODO: I think we could do a better job on all the embedded methods of limiting the types here based on the
567
- // allowed embedded types of the parent (vs. allowing any document to create embedded
568
- // documents of any type)
569
- createEmbeddedDocuments<
570
- EmbeddedName extends foundry.CONST.EMBEDDED_DOCUMENT_TYPES,
571
- Temporary extends boolean | undefined,
572
- >(
573
- embeddedName: EmbeddedName,
574
- data?: Array<Document.ConstructorDataForName<Extract<EmbeddedName, Document.Type>>>,
575
- operation?: InexactPartial<Document.Database.OperationOf<Extract<EmbeddedName, Document.Type>, "create">> & {
576
- temporary?: Temporary;
577
- },
578
- ): Promise<Array<Document.ConfiguredInstanceForName<Extract<EmbeddedName, Document.Type>>> | undefined>;
575
+ // Note: This uses `never` because it's unsound to try to call `Document#createEmbeddedDocuments` directly.
576
+ // Note(LukeAbby): Returns `unknown` instead of `Promise<Array<Document.AnyStored> | undefined>` to stymy errors.
577
+ createEmbeddedDocuments(
578
+ embeddedName: never,
579
+ // Note: Not optional because `createEmbeddedDocuments("Actor")` does effectively nothing.
580
+ data: never,
581
+ operation?: never,
582
+ ): unknown;
579
583
 
580
584
  /**
581
585
  * Update multiple embedded Document instances within a parent Document using provided differential data.
582
- * @see {@link Document.updateDocuments}
586
+ * @see {@linkcode Document.updateDocuments}
583
587
  * @param embeddedName - The name of the embedded Document type
584
588
  * @param updates - An array of differential data objects, each used to update a single Document
585
589
  * (default: `[]`)
@@ -587,33 +591,34 @@ declare abstract class Document<
587
591
  * (default: `{}`)
588
592
  * @returns An array of updated Document instances
589
593
  */
590
- updateEmbeddedDocuments<EmbeddedName extends foundry.CONST.EMBEDDED_DOCUMENT_TYPES>(
591
- embeddedName: EmbeddedName,
592
- updates?: Array<AnyObject>,
593
- context?: Document.ModificationContext<this["parent"]>,
594
- ): Promise<Array<Document.Stored<Document.ConfiguredInstanceForName<Extract<EmbeddedName, Document.Type>>>>>;
594
+ // Note: This uses `never` because it's unsound to try to call `Document#updateEmbeddedDocuments` directly.
595
+ // Note(LukeAbby): Returns `unknown` instead of `Promise<Array<Document.AnyStored> | undefined>` to stymy errors.
596
+ updateEmbeddedDocuments(
597
+ embeddedName: never,
598
+ // Note: Not optional because `updateEmbeddedDocuments("Actor")` does effectively nothing.
599
+ updates: never,
600
+ context?: never,
601
+ ): unknown;
595
602
 
596
603
  /**
597
604
  * Delete multiple embedded Document instances within a parent Document using provided string ids.
598
- * @see {@link Document.deleteDocuments}
605
+ * @see {@linkcode Document.deleteDocuments}
599
606
  * @param embeddedName - The name of the embedded Document type
600
607
  * @param ids - An array of string ids for each Document to be deleted
601
608
  * @param operation - Parameters of the database deletion workflow
602
609
  * (default: `{}`)
603
610
  * @returns An array of deleted Document instances
604
611
  */
605
- deleteEmbeddedDocuments<EmbeddedName extends foundry.CONST.EMBEDDED_DOCUMENT_TYPES>(
606
- embeddedName: EmbeddedName,
607
- ids: Array<string>,
608
- operation?: Document.Database.OperationOf<DocumentName, "delete">,
609
- ): Promise<Array<Document.Stored<Document.ConfiguredInstanceForName<EmbeddedName>>>>;
612
+ // Note: This uses `never` because it's unsound to try to call `Document#deleteEmbeddedDocuments` directly.
613
+ // Note(LukeAbby): Returns `unknown` instead of `Promise<Array<Document.AnyStored> | undefined>` to stymy errors.
614
+ deleteEmbeddedDocuments(embeddedName: never, ids: Array<string>, operation?: never): unknown;
610
615
 
611
616
  /**
612
617
  * Iterate over all embedded Documents that are hierarchical children of this Document.
613
618
  * @param _parentPath - A parent field path already traversed
614
619
  * @remarks Not called within Foundry's client-side code, likely exists for server documents
615
620
  */
616
- traverseEmbeddedDocuments(_parentPath?: string): Generator<[string, Document.Any]>;
621
+ traverseEmbeddedDocuments(_parentPath?: string): Generator<[string, Document.AnyChild<this>], void, undefined>;
617
622
 
618
623
  /**
619
624
  * Get the value of a "flag" for this document
@@ -623,10 +628,7 @@ declare abstract class Document<
623
628
  * @param key - The flag key
624
629
  * @returns The flag value
625
630
  */
626
- getFlag<
627
- S extends Document.FlagKeyOf<Document.ConfiguredFlagsForName<DocumentName>>,
628
- K extends Document.FlagKeyOf<Document.FlagGetKey<Document.ConfiguredFlagsForName<DocumentName>, S>>,
629
- >(scope: S, key: K): Document.GetFlag<DocumentName, S, K>;
631
+ getFlag(scope: never, key: never): unknown;
630
632
 
631
633
  /**
632
634
  * Assign a "flag" to this document.
@@ -646,11 +648,7 @@ declare abstract class Document<
646
648
  * @param value - The flag value
647
649
  * @returns A Promise resolving to the updated document
648
650
  */
649
- setFlag<
650
- S extends Document.FlagKeyOf<Document.ConfiguredFlagsForName<DocumentName>>,
651
- K extends Document.FlagKeyOf<Document.FlagGetKey<Document.ConfiguredFlagsForName<DocumentName>, S>>,
652
- V extends Document.GetFlag<DocumentName, S, K>,
653
- >(scope: S, key: K, value: V): Promise<this>;
651
+ setFlag(scope: never, key: never, value: never): Promise<this>;
654
652
 
655
653
  /**
656
654
  * Remove a flag assigned to the document
@@ -658,22 +656,18 @@ declare abstract class Document<
658
656
  * @param key - The flag key
659
657
  * @returns The updated document instance
660
658
  */
661
- unsetFlag(scope: string, key: string): Promise<this>;
659
+ unsetFlag(scope: never, key: never): Promise<this>;
662
660
 
663
661
  /**
664
662
  * Pre-process a creation operation for a single Document instance.
665
663
  * Pre-operation events only occur for the client which requested the operation.
666
- * Modifications to the pending Document instance must be performed using {@link Document#updateSource}.
664
+ * Modifications to the pending Document instance must be performed using {@link Document.updateSource | `Document#updateSource`}.
667
665
  * @param data - The initial data object provided to the document creation request
668
666
  * @param options - Additional options which modify the creation request
669
667
  * @param user - The User requesting the document creation
670
668
  * @returns Return false to exclude this Document from the creation operation
671
669
  */
672
- protected _preCreate(
673
- data: fields.SchemaField.AssignmentType<Schema>,
674
- options: Document.PreCreateOptions<DocumentName>,
675
- user: User,
676
- ): Promise<boolean | void>;
670
+ protected _preCreate(data: never, options: never, user: User.Internal.Implementation): Promise<boolean | void>;
677
671
 
678
672
  /**
679
673
  * Post-process a creation operation for a single Document instance.
@@ -682,48 +676,44 @@ declare abstract class Document<
682
676
  * @param options - Additional options which modify the creation request
683
677
  * @param userId - The id of the User requesting the document update
684
678
  */
685
- protected _onCreate(
686
- data: fields.SchemaField.InnerAssignmentType<Schema>,
687
- options: Document.OnCreateOptions<DocumentName>,
688
- userId: string,
689
- ): void;
679
+ protected _onCreate(data: never, options: never, userId: string): MaybePromise<void>;
690
680
 
691
681
  /**
692
682
  * Pre-process a creation operation, potentially altering its instructions or input data. Pre-operation events only
693
683
  * occur for the client which requested the operation.
694
684
  *
695
- * This batch-wise workflow occurs after individual {@link Document#_preCreate} workflows and provides a final
685
+ * This batch-wise workflow occurs after individual {@link Document._preCreate | `Document#_preCreate`} workflows and provides a final
696
686
  * pre-flight check before a database operation occurs.
697
687
  *
698
688
  * Modifications to pending documents must mutate the documents array or alter individual document instances using
699
- * {@link Document#updateSource}.
689
+ * {@link Document.updateSource | `Document#updateSource`}.
700
690
  * @param documents - Pending document instances ot be created
701
691
  * @param operation - Parameters of the database creation operation
702
692
  * @param user - The User requesting the creation operation
703
693
  * @returns Return false to cancel the creation operation entirely
704
694
  */
705
- protected static _preCreateOperation<T extends Document.AnyConstructor>(
706
- this: T,
707
- documents: Document.ToConfiguredInstance<NoInfer<T>>[],
708
- operation: Document.Database.OperationOf<NoInfer<T>["metadata"]["name"], "create">,
709
- user: User,
695
+ // Note: This uses `never` because it's unsound to try to do `Document._preCreateOperation` directly.
696
+ protected static _preCreateOperation(
697
+ documents: never[],
698
+ operation: never,
699
+ user: User.Internal.Implementation,
710
700
  ): Promise<boolean | void>;
711
701
 
712
702
  /**
713
703
  * Post-process a creation operation, reacting to database changes which have occurred. Post-operation events occur
714
704
  * for all connected clients.
715
705
  *
716
- * This batch-wise workflow occurs after individual {@link Document#_onCreate} workflows.
706
+ * This batch-wise workflow occurs after individual {@link Document._onCreate | `Document#_onCreate`} workflows.
717
707
  *
718
708
  * @param documents - The Document instances which were created
719
709
  * @param operation - Parameters of the database creation operation
720
710
  * @param user - The User who performed the creation operation
721
711
  */
722
- protected static _onCreateOperation<T extends Document.AnyConstructor>(
723
- this: T,
724
- documents: Document.ToConfiguredInstance<NoInfer<T>>[],
725
- operation: Document.Database.OperationOf<NoInfer<T>["metadata"]["name"], "create">,
726
- user: User,
712
+ // Note: This uses `never` because it's unsound to try to do `Document._onCreateOperation` directly.
713
+ protected static _onCreateOperation(
714
+ documents: never,
715
+ operation: never,
716
+ user: User.Internal.Implementation,
727
717
  ): Promise<void>;
728
718
 
729
719
  /**
@@ -734,11 +724,7 @@ declare abstract class Document<
734
724
  * @param user - The User requesting the document update
735
725
  * @returns A return value of false indicates the update operation should be cancelled
736
726
  */
737
- protected _preUpdate(
738
- changed: fields.SchemaField.AssignmentType<Schema>,
739
- options: Document.PreUpdateOptions<DocumentName>,
740
- user: User,
741
- ): Promise<boolean | void>;
727
+ protected _preUpdate(changed: never, options: never, user: User.Internal.Implementation): Promise<boolean | void>;
742
728
 
743
729
  /**
744
730
  * Perform follow-up operations after a Document of this type is updated.
@@ -747,49 +733,45 @@ declare abstract class Document<
747
733
  * @param options - Additional options which modify the update request
748
734
  * @param userId - The id of the User requesting the document update
749
735
  */
750
- protected _onUpdate(
751
- changed: fields.SchemaField.InnerUpdateData<Schema>,
752
- options: Document.OnUpdateOptions<DocumentName>,
753
- userId: string,
754
- ): void;
736
+ protected _onUpdate(changed: never, options: never, userId: string): MaybePromise<void>;
755
737
 
756
738
  /**
757
739
  * Pre-process an update operation, potentially altering its instructions or input data. Pre-operation events only
758
740
  * occur for the client which requested the operation.
759
741
  *
760
- * This batch-wise workflow occurs after individual {@link Document#_preUpdate} workflows and provides a final
742
+ * This batch-wise workflow occurs after individual {@link Document._preUpdate | `Document#_preUpdate`} workflows and provides a final
761
743
  * pre-flight check before a database operation occurs.
762
744
  *
763
745
  * Modifications to the requested updates are performed by mutating the data array of the operation.
764
- * {@link Document#updateSource}.
746
+ * {@link Document.updateSource | `Document#updateSource`}.
765
747
  *
766
748
  * @param documents - Document instances to be updated
767
749
  * @param operation - Parameters of the database update operation
768
750
  * @param user - The User requesting the update operation
769
751
  * @returns Return false to cancel the update operation entirely
770
752
  */
771
- protected static _preUpdateOperation<T extends Document.AnyConstructor>(
772
- this: T,
773
- documents: Document.ToConfiguredInstance<NoInfer<T>>[],
774
- operation: Document.Database.OperationOf<FixedInstanceType<NoInfer<T>>["documentName"], "update">,
775
- user: User,
753
+ // Note: This uses `never` because it's unsound to try to do `Document._preUpdateOperation` directly.
754
+ protected static _preUpdateOperation(
755
+ documents: never,
756
+ operation: never,
757
+ user: User.Internal.Implementation,
776
758
  ): Promise<boolean | void>;
777
759
 
778
760
  /**
779
761
  * Post-process an update operation, reacting to database changes which have occurred. Post-operation events occur
780
762
  * for all connected clients.
781
763
  *
782
- * This batch-wise workflow occurs after individual {@link Document#_onUpdate} workflows.
764
+ * This batch-wise workflow occurs after individual {@link Document._onUpdate | `Document#_onUpdate`} workflows.
783
765
  *
784
766
  * @param documents - The Document instances which were updated
785
767
  * @param operation - Parameters of the database update operation
786
768
  * @param user - The User who performed the update operation
787
769
  */
788
- protected static _onUpdateOperation<T extends Document.AnyConstructor>(
789
- this: T,
790
- documents: Document.ToConfiguredInstance<NoInfer<T>>[],
791
- operation: Document.Database.OperationOf<FixedInstanceType<NoInfer<T>>["documentName"], "update">,
792
- user: User,
770
+ // Note: This uses `never` because it's unsound to try to do `Document._onUpdateOperation` directly.
771
+ protected static _onUpdateOperation(
772
+ documents: never,
773
+ operation: never,
774
+ user: User.Internal.Implementation,
793
775
  ): Promise<void>;
794
776
 
795
777
  /**
@@ -799,7 +781,7 @@ declare abstract class Document<
799
781
  * @param user - The User requesting the document deletion
800
782
  * @returns A return value of false indicates the delete operation should be cancelled
801
783
  */
802
- protected _preDelete(options: Document.PreDeleteOptions<DocumentName>, user: User): Promise<boolean | void>;
784
+ protected _preDelete(options: never, user: User.Internal.Implementation): Promise<boolean | void>;
803
785
 
804
786
  /**
805
787
  * Perform follow-up operations after a Document of this type is deleted.
@@ -807,17 +789,17 @@ declare abstract class Document<
807
789
  * @param options - Additional options which modify the deletion request
808
790
  * @param userId - The id of the User requesting the document update
809
791
  */
810
- protected _onDelete(options: Document.OnDeleteOptions<DocumentName>, userId: string): void;
792
+ protected _onDelete(options: never, userId: string): MaybePromise<void>;
811
793
 
812
794
  /**
813
795
  * Pre-process a deletion operation, potentially altering its instructions or input data. Pre-operation events only
814
796
  * occur for the client which requested the operation.
815
797
  *
816
- * This batch-wise workflow occurs after individual {@link Document#_preDelete} workflows and provides a final
798
+ * This batch-wise workflow occurs after individual {@link Document._preDelete | `Document#_preDelete`} workflows and provides a final
817
799
  * pre-flight check before a database operation occurs.
818
800
  *
819
801
  * Modifications to the requested deletions are performed by mutating the operation object.
820
- * {@link Document#updateSource}.
802
+ * {@link Document.updateSource | `Document#updateSource`}.
821
803
  *
822
804
  * @param documents - Document instances to be deleted
823
805
  * @param operation - Parameters of the database update operation
@@ -825,50 +807,50 @@ declare abstract class Document<
825
807
  * @returns Return false to cancel the deletion operation entirely
826
808
  * @internal
827
809
  */
828
- protected static _preDeleteOperation<T extends Document.AnyConstructor>(
829
- this: T,
830
- documents: Document.ToConfiguredInstance<NoInfer<T>>[],
831
- operation: Document.Database.OperationOf<FixedInstanceType<NoInfer<T>>["documentName"], "delete">,
832
- user: User,
810
+ // Note: This uses `never` because it's unsound to try to do `Document._preDeleteOperation` directly.
811
+ protected static _preDeleteOperation(
812
+ documents: never,
813
+ operation: never,
814
+ user: User.Internal.Implementation,
833
815
  ): Promise<unknown>;
834
816
 
835
817
  /**
836
818
  * Post-process a deletion operation, reacting to database changes which have occurred. Post-operation events occur
837
819
  * for all connected clients.
838
820
  *
839
- * This batch-wise workflow occurs after individual {@link Document#_onDelete} workflows.
821
+ * This batch-wise workflow occurs after individual {@link Document._onDelete | `Document#_onDelete`} workflows.
840
822
  *
841
823
  * @param documents - The Document instances which were deleted
842
824
  * @param operation - Parameters of the database deletion operation
843
825
  * @param user - The User who performed the deletion operation
844
826
  */
845
- protected static _onDeleteOperation<T extends Document.AnyConstructor>(
846
- this: T,
847
- documents: Document.ToConfiguredInstance<NoInfer<T>>[],
848
- operation: Document.Database.OperationOf<FixedInstanceType<NoInfer<T>>["documentName"], "delete">,
849
- user: User,
827
+ // Note: This uses `never` because it's unsound to try to do `Document._onDeleteOperation` directly.
828
+ protected static _onDeleteOperation(
829
+ documents: never,
830
+ operation: never,
831
+ user: User.Internal.Implementation,
850
832
  ): Promise<unknown>;
851
833
 
852
- /**
853
- * Configure whether V10 Document Model migration warnings should be logged for this class.
854
- */
855
- static LOG_V10_COMPATIBILITY_WARNINGS: boolean;
856
-
857
- /**
858
- * @deprecated since v11, will be removed in v13
859
- * @remarks "You are accessing `Document.hasSystemData` which is deprecated. Please use `Document.hasTypeData` instead."
860
- */
861
- static get hasSystemData(): boolean;
862
-
863
834
  /**
864
835
  * A reusable helper for adding migration shims.
865
836
  */
866
- protected static _addDataFieldShims(data: object, shims: object, options: object): unknown;
837
+ // options: not null (parameter default only in _addDataFieldShim)
838
+ protected static _addDataFieldShims(
839
+ data: AnyMutableObject,
840
+ shims: Record<string, string>,
841
+ options?: Document.DataFieldShimOptions,
842
+ ): void;
867
843
 
868
844
  /**
869
845
  * A reusable helper for adding a migration shim
870
846
  */
871
- protected static _addDataFieldShim(data: object, oldKey: string, newKey: string, options?: object): unknown;
847
+ // options: not null (parameter default only)
848
+ protected static _addDataFieldShim(
849
+ data: AnyMutableObject,
850
+ oldKey: string,
851
+ newKey: string,
852
+ options?: Document.DataFieldShimOptions,
853
+ ): void;
872
854
 
873
855
  /**
874
856
  * Define a simple migration from one field name to another.
@@ -877,15 +859,16 @@ declare abstract class Document<
877
859
  * @param oldKey - The old field name
878
860
  * @param newKey - The new field name
879
861
  * @param apply - An application function, otherwise the old value is applied
880
- * @internal
862
+ * @remarks Foundry marked `@internal`
881
863
  */
882
864
  protected static _addDataFieldMigration(
883
- data: object,
865
+ data: AnyMutableObject,
884
866
  oldKey: string,
885
867
  newKey: string,
886
- apply?: (data: object) => any,
868
+ apply?: (data: AnyMutableObject) => unknown,
887
869
  ): unknown;
888
870
 
871
+ // options: not null (destructured where forwarded)
889
872
  protected static _logDataFieldMigration(
890
873
  oldKey: string,
891
874
  newKey: string,
@@ -894,89 +877,60 @@ declare abstract class Document<
894
877
 
895
878
  /**
896
879
  * @deprecated since v12, will be removed in v14
897
- * @remarks `"The Document._onCreateDocuments static method is deprecated in favor of Document._onCreateOperation"`
880
+ * @remarks "The `Document._onCreateDocuments` static method is deprecated in favor of {@link Document._onCreateOperation | `Document._onCreateOperation`}"
898
881
  */
899
- protected static _onCreateDocuments<T extends Document.AnyConstructor>(
900
- this: T,
901
- documents: Array<Document.ToConfiguredInstance<NoInfer<T>>>,
882
+ // Note: This uses `never` because it's unsound to try to do `Document._onCreateDocuments` directly.
883
+ protected static _onCreateDocuments(
884
+ documents: never,
902
885
  context: Document.ModificationContext<Document.Any | null>,
903
886
  ): Promise<void>;
904
887
 
905
888
  /**
906
889
  * @deprecated since v12, will be removed in v14
907
- * @remarks `"The Document._onUpdateDocuments static method is deprecated in favor of Document._onUpdateOperation"`
890
+ * @remarks "The `Document._onUpdateDocuments` static method is deprecated in favor of {@link Document._onUpdateOperation | `Document._onUpdateOperation`}"
908
891
  */
909
- protected static _onUpdateDocuments<T extends Document.AnyConstructor>(
910
- this: T,
911
- documents: Array<Document.ToConfiguredInstance<NoInfer<T>>>,
892
+ // Note: This uses `never` because it's unsound to try to do `Document._onUpdateDocuments` directly.
893
+ protected static _onUpdateDocuments(
894
+ documents: never,
912
895
  context: Document.ModificationContext<Document.Any | null>,
913
896
  ): Promise<unknown>;
914
897
 
915
898
  /**
916
899
  * @deprecated since v12, will be removed in v14
917
- * @remarks `"The Document._onDeleteDocuments static method is deprecated in favor of Document._onDeleteOperation"`
900
+ * @remarks "The `Document._onDeleteDocuments` static method is deprecated in favor of {@link Document._onDeleteOperation | `Document._onDeleteOperation`}"
918
901
  */
919
- protected static _onDeleteDocuments<T extends Document.AnyConstructor>(
920
- this: T,
921
- documents: Array<Document.ToConfiguredInstance<NoInfer<T>>>,
902
+ // Note: This uses `never` because it's unsound to try to do `Document._onDeleteDocuments` directly.
903
+ protected static _onDeleteDocuments(
904
+ documents: never,
922
905
  context: Document.ModificationContext<Document.Any | null>,
923
906
  ): Promise<unknown>;
924
- }
925
-
926
- declare abstract class AnyDocument extends Document<any, any, any> {
927
- constructor(arg0: never, ...args: never[]);
928
-
929
- // Note(LukeAbby): Specifically adding the `DocumentBrand` should be redundant but in practice it seems to help tsc more efficiently deduce that it's actually inheriting from `Document`.
930
- // This is odd but probably is because it bails from looking up the parent class properties at times or something.
931
- static [Document.Internal.DocumentBrand]: true;
932
-
933
- flags?: unknown;
934
907
 
935
- getFlag(scope: never, key: never): any;
908
+ " fvtt_types_internal_document_name": DocumentName;
909
+ " fvtt_types_internal_document_schema": Schema;
910
+ " fvtt_types_internal_document_parent": Parent;
936
911
  }
937
912
 
938
- // Note(LukeAbby): The point of this class is to show up in intellisense.
939
- // When something fails to be configured it should be replaced with `typeof ConfigurationFailure & typeof Item` or whatever the relevant class is.
940
- // This helps to minimize the number of errors that appears in a repo with broken configuration as they can be very misleading and confusing.
941
- declare abstract class ConfigurationFailure extends AnyDocument {
942
- static [Document.Internal.DocumentBrand]: true;
913
+ // An empty schema is the most accurate because index signatures are stripped.
914
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
915
+ declare abstract class AnyDocument extends Document<Document.Type, {}, Document.Any | null> {
916
+ constructor(...args: never);
917
+
918
+ // Note(LukeAbby): This uses `object` instead of `AnyObject` to avoid more thorough evaluation of
919
+ // the involved types which can cause a loop.
920
+ _source: object;
943
921
  }
944
922
 
945
923
  declare namespace Document {
946
- /** Any Document, except for Settings */
947
- type Any = AnyDocument;
948
- type AnyConstructor = typeof AnyDocument;
924
+ interface Any extends AnyDocument {}
925
+ interface AnyStored extends Document.Internal.Stored<Any> {}
926
+ interface AnyValid extends AnyDocument {
927
+ get invalid(): false;
928
+ }
929
+ interface AnyInvalid extends Document.Internal.Invalid<AnyValid> {}
949
930
 
950
- type ConfigurationFailureClass = typeof ConfigurationFailure;
951
- type ConfigurationFailureInstance = ConfigurationFailure;
931
+ interface AnyConstructor extends Identity<typeof AnyDocument> {}
952
932
 
953
- type Type =
954
- | "ActiveEffect"
955
- | "ActorDelta"
956
- | "Actor"
957
- | "Adventure"
958
- | "Card"
959
- | "Cards"
960
- | "ChatMessage"
961
- | "Combat"
962
- | "Combatant"
963
- | "FogExploration"
964
- | "Folder"
965
- | "Item"
966
- | "JournalEntryPage"
967
- | "JournalEntry"
968
- | "Macro"
969
- | "PlaylistSound"
970
- | "Playlist"
971
- | "RegionBehavior"
972
- | "Region"
973
- | "RollTable"
974
- | "Scene"
975
- | "Setting"
976
- | "TableResult"
977
- | "User"
978
- // All placeables also have a corresponding document class.
979
- | PlaceableType;
933
+ type Type = CONST.ALL_DOCUMENT_TYPES;
980
934
 
981
935
  type PlaceableType =
982
936
  | "AmbientLight"
@@ -989,8 +943,79 @@ declare namespace Document {
989
943
  | "Token"
990
944
  | "Wall";
991
945
 
946
+ type PrimaryType = CONST.PRIMARY_DOCUMENT_TYPES;
947
+ type EmbeddedType = CONST.EMBEDDED_DOCUMENT_TYPES;
948
+ type WorldType = CONST.WORLD_DOCUMENT_TYPES;
949
+ type CompendiumType = CONST.COMPENDIUM_DOCUMENT_TYPES;
950
+
951
+ type WithSubTypes = WithSystem | "Folder" | "Macro" | "TableResult";
952
+
953
+ type WithSystem =
954
+ | "ActiveEffect"
955
+ | "ActorDelta"
956
+ | "Actor"
957
+ | "Card"
958
+ | "Cards"
959
+ | "ChatMessage"
960
+ | "Combat"
961
+ | "Combatant"
962
+ | "CombatantGroup"
963
+ | "Item"
964
+ | "JournalEntryPage"
965
+ | "RegionBehavior";
966
+
992
967
  type CoreTypesForName<Name extends Type> = string &
993
- GetKey<Document.Internal.SimpleMetadata<Name>, "coreTypes", ["base"]>[number];
968
+ GetKey<Document.MetadataFor<Name>, "coreTypes", [CONST.BASE_DOCUMENT_TYPE]>[number];
969
+
970
+ type ConfiguredSubTypesOf<Name extends Type> = Name extends "ActorDelta"
971
+ ? ConfiguredSubTypesOf<"Actor">
972
+ : // ESLint doesn't know that `DataModelConfig` and `SourceConfig` are meant to be declaration merged into.
973
+ // Therefore it hastily thinks the results are always `never`.
974
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents, @typescript-eslint/no-duplicate-type-constituents
975
+ string & (keyof GetKey<DataModelConfig, Name, unknown> | keyof GetKey<SourceConfig, Name, unknown>);
976
+
977
+ type SubTypesOf<Name extends Type> = Name extends "ActorDelta"
978
+ ? SubTypesOf<"Actor">
979
+ :
980
+ | Document.CoreTypesForName<Name>
981
+ | ConfiguredSubTypesOf<Name>
982
+ | (Document.MetadataFor<Name> extends { readonly hasTypeData: true } ? Document.ModuleSubType : never);
983
+
984
+ type ModuleSubType = Brand<`${string}.${string}`, "Document.ModuleSubtype">;
985
+
986
+ type OfType<Name extends WithSubTypes, SubType extends SubTypesOf<Name>> =
987
+ | (Name extends "ActiveEffect" ? ActiveEffect.OfType<SubType & ActiveEffect.SubType> : never)
988
+ | (Name extends "ActorDelta" ? ActorDelta.OfType<SubType & ActorDelta.SubType> : never)
989
+ | (Name extends "Actor" ? Actor.OfType<SubType & Actor.SubType> : never)
990
+ | (Name extends "Card" ? Card.OfType<SubType & Card.SubType> : never)
991
+ | (Name extends "Cards" ? Cards.OfType<SubType & Cards.SubType> : never)
992
+ | (Name extends "ChatMessage" ? ChatMessage.OfType<SubType & ChatMessage.SubType> : never)
993
+ | (Name extends "Combat" ? Combat.OfType<SubType & Combat.SubType> : never)
994
+ | (Name extends "Combatant" ? Combatant.OfType<SubType & Combatant.SubType> : never)
995
+ | (Name extends "CombatantGroup" ? CombatantGroup.OfType<SubType & CombatantGroup.SubType> : never)
996
+ | (Name extends "Folder" ? Folder.OfType<SubType & Folder.SubType> : never)
997
+ | (Name extends "Item" ? Item.OfType<SubType & Item.SubType> : never)
998
+ | (Name extends "JournalEntryPage" ? JournalEntryPage.OfType<SubType & JournalEntryPage.SubType> : never)
999
+ | (Name extends "Macro" ? Macro.OfType<SubType & Macro.SubType> : never)
1000
+ | (Name extends "RegionBehavior" ? RegionBehavior.OfType<SubType & RegionBehavior.SubType> : never)
1001
+ | (Name extends "TableResult" ? TableResult.OfType<SubType & TableResult.SubType> : never);
1002
+
1003
+ /**
1004
+ * With the existence of custom module subtypes a system can no longer rely on their configured types being the only ones.
1005
+ * A module can provide its own custom type though it is always of the form `${moduleName}.${subType}` so the `.` is a pretty
1006
+ * strong indicator.
1007
+ *
1008
+ * `UnknownSourceData` covers the case where it's configured without a data model.
1009
+ * See {@linkcode UnknownSystem} for other possibilities.
1010
+ */
1011
+ interface UnknownSourceData extends AnyObject {
1012
+ type: ModuleSubType;
1013
+ }
1014
+
1015
+ /**
1016
+ * With the existence of custom module subtypes a system can no longer rely on their configured types being the only ones.
1017
+ */
1018
+ type UnknownSystem = UnknownSourceData | TypeDataField.UnknownTypeDataModel | DataModel.UnknownDataModel;
994
1019
 
995
1020
  // TODO: Probably a way to auto-determine this
996
1021
  type SystemType =
@@ -1001,18 +1026,66 @@ declare namespace Document {
1001
1026
  | "ChatMessage"
1002
1027
  | "Combat"
1003
1028
  | "Combatant"
1029
+ | "CombatantGroup"
1004
1030
  | "Item"
1005
1031
  | "JournalEntryPage"
1006
1032
  | "RegionBehavior";
1007
1033
 
1008
- type EmbeddableNamesFor<ConcreteDocument extends Document.Internal.Instance.Any> = {
1009
- [K in keyof ConfiguredDocuments]: IsParentOf<
1010
- ConcreteDocument,
1011
- FixedInstanceType<ConfiguredDocuments[K]>
1012
- > extends true
1013
- ? K
1014
- : never;
1015
- };
1034
+ namespace Embedded {
1035
+ type CollectionNameFor<
1036
+ Embedded extends Document.Metadata.Embedded,
1037
+ CollectionName extends Document.Embedded.CollectionName<Embedded>,
1038
+ > = Extract<GetKey<Metadata.Embedded, CollectionName, CollectionName>, Document.Type>;
1039
+
1040
+ type DocumentFor<
1041
+ Embedded extends Document.Metadata.Embedded,
1042
+ CollectionName extends Document.Embedded.CollectionName<Embedded>,
1043
+ > = Document.ImplementationFor<CollectionNameFor<Embedded, CollectionName>>;
1044
+
1045
+ type CollectionFor<
1046
+ Parent extends Document.Any,
1047
+ Embedded extends Document.Metadata.Embedded,
1048
+ CollectionName extends Document.Embedded.CollectionName<Embedded>,
1049
+ > = EmbeddedCollection<DocumentFor<Embedded, CollectionName>, Parent>;
1050
+
1051
+ type CollectionName<Embedded extends Document.Metadata.Embedded> = {
1052
+ [K in keyof Embedded]: K extends Document.Type ? Extract<K | Embedded[K], string> : never;
1053
+ }[keyof Embedded];
1054
+ }
1055
+
1056
+ /**
1057
+ * @internal
1058
+ */
1059
+ interface _WorldCollectionMap {
1060
+ Actor: foundry.documents.collections.Actors.Configured;
1061
+ Cards: foundry.documents.collections.CardStacks;
1062
+ Combat: foundry.documents.collections.CombatEncounters;
1063
+ FogExploration: foundry.documents.collections.FogExplorations;
1064
+ Folder: foundry.documents.collections.Folders;
1065
+ Item: foundry.documents.collections.Items;
1066
+ JournalEntry: foundry.documents.collections.Journal;
1067
+ Macro: foundry.documents.collections.Macros;
1068
+ ChatMessage: foundry.documents.collections.ChatMessages;
1069
+ Playlist: foundry.documents.collections.Playlists;
1070
+ Scene: foundry.documents.collections.Scenes;
1071
+ Setting: foundry.documents.collections.WorldSettings;
1072
+ RollTable: foundry.documents.collections.RollTables;
1073
+ User: foundry.documents.collections.Users;
1074
+ }
1075
+
1076
+ type WorldCollectionFor<Name extends Document.WorldType> = _WorldCollectionMap[Name];
1077
+
1078
+ // Note(LukeAbby): Will be updated with the CONFIG revamp.
1079
+ type ConfiguredCollectionClass<Name extends Document.Type> = CONFIG extends {
1080
+ readonly [K in Name]: {
1081
+ readonly documentClass?: infer DocumentClass;
1082
+ };
1083
+ }
1084
+ ? DocumentClass
1085
+ : never;
1086
+
1087
+ // Note(LukeAbby): Will be updated with the CONFIG revamp.
1088
+ type ConfiguredCollection<Name extends Document.Type> = FixedInstanceType<ConfiguredCollectionClass<Name>>;
1016
1089
 
1017
1090
  type IsParentOf<
1018
1091
  ParentDocument extends Document.Internal.Instance.Any,
@@ -1024,19 +1097,8 @@ declare namespace Document {
1024
1097
 
1025
1098
  // Documented at https://gist.github.com/LukeAbby/c7420b053d881db4a4d4496b95995c98
1026
1099
  namespace Internal {
1027
- const DocumentBrand: unique symbol;
1028
-
1029
- const DocumentName: unique symbol;
1030
- const Schema: unique symbol;
1031
- const Parent: unique symbol;
1032
-
1033
- // This metadata is called "simple" because where there should be proper references to the
1034
- // current document there is instead `Document.Any`. This helps simplify loops.
1035
- // Use cases should be limited to when these references aren't needed.
1036
- type SimpleMetadata<Name extends Document.Type> = ConfiguredMetadata<Document.Any>[Name];
1037
-
1038
- type Constructor = (abstract new (arg0: never, ...args: never[]) => Instance.Any) & {
1039
- [DocumentBrand]: true;
1100
+ type Constructor = (abstract new (...args: never) => Instance.Any) & {
1101
+ documentName: Document.Type;
1040
1102
  };
1041
1103
 
1042
1104
  interface Instance<
@@ -1044,127 +1106,320 @@ declare namespace Document {
1044
1106
  Schema extends DataSchema,
1045
1107
  Parent extends Document.Internal.Instance.Any | null,
1046
1108
  > {
1047
- [DocumentName]: DocumentName;
1048
- [Schema]: Schema;
1049
- [Parent]: Parent;
1109
+ " fvtt_types_internal_document_name": DocumentName;
1110
+ " fvtt_types_internal_document_schema": Schema;
1111
+ " fvtt_types_internal_document_parent": Parent;
1050
1112
  }
1051
1113
 
1052
- type DocumentNameFor<ConcreteInstance extends Instance.Any> = ConcreteInstance[typeof DocumentName];
1114
+ type DocumentNameFor<ConcreteInstance extends Instance.Any> =
1115
+ ConcreteInstance[" fvtt_types_internal_document_name"];
1053
1116
 
1054
- type SchemaFor<ConcreteInstance extends Instance.Any> = ConcreteInstance[typeof Schema];
1117
+ type SchemaFor<ConcreteInstance extends Instance.Any> = ConcreteInstance[" fvtt_types_internal_document_schema"];
1055
1118
 
1056
- type ParentFor<ConcreteInstance extends Instance.Any> = ConcreteInstance[typeof Parent];
1119
+ type ParentFor<ConcreteInstance extends Instance.Any> = ConcreteInstance[" fvtt_types_internal_document_parent"];
1057
1120
 
1058
1121
  namespace Instance {
1059
- type Any = Instance<any, any, any>;
1122
+ interface Any extends Instance<any, any, any> {}
1060
1123
 
1061
1124
  type Complete<T extends Any> = T extends Document.Any ? T : never;
1062
1125
  }
1063
- }
1064
1126
 
1065
- /** Any Document, that is a child of the given parent Document. */
1066
- type AnyChild<Parent extends Any | null> = Document<any, any, Parent>;
1127
+ // Note(LukeAbby): `Configured` is not checked for validity. This means that it's easy to
1128
+ // accidently misconfigure without warning. However it helps stymy some circularities this way.
1129
+ // This is also why `LazyDocument` takes a callback.
1130
+ // See: https://gist.github.com/LukeAbby/a7892327633587ba89e760b599572322
1131
+ type OfType<Configured, LazyDocument extends () => unknown> = "document" extends keyof Configured
1132
+ ? Configured["document"]
1133
+ : ReturnType<LazyDocument>;
1134
+
1135
+ type SystemMap<Name extends Document.WithSystem> = _SystemMap<
1136
+ Name,
1137
+ GetKey<DataModelConfig, Name>,
1138
+ GetKey<SourceConfig, Name>
1139
+ >;
1140
+
1141
+ type _SystemMap<Name extends Document.WithSystem, DataModel, SourceData> = {
1142
+ [SubType in SubTypesOf<Name>]: DataModel extends {
1143
+ [K in SubType]: abstract new (...args: infer _) => infer Model;
1144
+ }
1145
+ ? Model
1146
+ : SourceData extends {
1147
+ [K in SubType]: infer Source;
1148
+ }
1149
+ ? Source
1150
+ : SubType extends Document.ModuleSubType
1151
+ ? // eslint-disable-next-line @typescript-eslint/no-empty-object-type
1152
+ {}
1153
+ : UnknownSystem;
1154
+ };
1067
1155
 
1068
- /**
1069
- * Returns the type of the constructor data for the given {@link foundry.abstract.Document}.
1070
- */
1071
- type ConstructorDataFor<T extends Document.Internal.Constructor> = ConstructorDataForSchema<
1072
- T extends { defineSchema: () => infer R extends DataSchema } ? R : never
1073
- >;
1156
+ type SystemOfType<SystemMap extends Record<SubType, object>, SubType extends string> =
1157
+ | DiscriminatedUnion<SystemMap[SubType]>
1158
+ | (SubType extends ModuleSubType | "base" ? UnknownSystem : never);
1074
1159
 
1075
- // TODO(LukeAbby): Actually make this distinguishable from `Document.ConstructorDataFor` and `Document.ConstructorDataForSchema`.
1076
- type UpdateDataFor<T extends Document.Internal.Constructor> = ConstructorDataForSchema<
1077
- T extends { defineSchema: () => infer R extends DataSchema } ? R : never
1078
- >;
1160
+ // TODO(LukeAbby): Improve the type display with a helper here.
1161
+ type Stored<D extends Document.Any> = Override<
1162
+ D,
1163
+ {
1164
+ id: string;
1165
+ _id: string;
1166
+ _source: Override<D["_source"], { _id: string }>;
1167
+ }
1168
+ >;
1169
+
1170
+ // @ts-expect-error - This pattern is inherently an error.
1171
+ interface Invalid<D extends Document.Any> extends _Invalid, D {}
1172
+
1173
+ /** @internal */
1174
+ interface _Invalid {
1175
+ _source: object;
1176
+ system?: object | undefined;
1177
+ get invalid(): true;
1178
+ }
1179
+
1180
+ interface DropData<DocumentType extends Document.Type> {
1181
+ /**
1182
+ * The data used to create a new document.
1183
+ * At least one of `data` and `uuid` must be set.
1184
+ */
1185
+ data?: Document.CreateDataForName<DocumentType>;
1186
+
1187
+ /**
1188
+ * The uuid of an existing document.
1189
+ * At least one of `data` and `uuid` must be set.
1190
+ */
1191
+ // TODO: Handle as part of the UUID update.
1192
+ uuid?: string;
1193
+ }
1194
+ }
1195
+
1196
+ /** Any Document, that is a child of the given parent Document. */
1197
+ // An empty schema is the most appropriate type due to removing index signatures.
1198
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
1199
+ type AnyChild<Parent extends Any | null> = Document<Document.Type, {}, Parent>;
1079
1200
 
1080
1201
  // These helper types exist to help break a loop
1081
- type ConstructorDataForName<T extends Document.Type> = ConstructorData[T];
1082
- type UpdateDataForName<T extends Document.Type> = ConstructorData[T];
1083
1202
 
1084
- type ConstructorDataForSchema<Schema extends DataSchema> =
1085
- foundry.data.fields.SchemaField.InnerAssignmentType<Schema>;
1203
+ type CreateDataForName<DocumentType extends Document.Type> =
1204
+ | (DocumentType extends "ActiveEffect" ? ActiveEffect.CreateData : never)
1205
+ | (DocumentType extends "ActorDelta" ? ActorDelta.CreateData : never)
1206
+ | (DocumentType extends "Actor" ? Actor.CreateData : never)
1207
+ | (DocumentType extends "Adventure" ? Adventure.CreateData : never)
1208
+ | (DocumentType extends "Card" ? Card.CreateData : never)
1209
+ | (DocumentType extends "Cards" ? Cards.CreateData : never)
1210
+ | (DocumentType extends "ChatMessage" ? ChatMessage.CreateData : never)
1211
+ | (DocumentType extends "Combat" ? Combat.CreateData : never)
1212
+ | (DocumentType extends "Combatant" ? Combatant.CreateData : never)
1213
+ | (DocumentType extends "CombatantGroup" ? CombatantGroup.CreateData : never)
1214
+ | (DocumentType extends "FogExploration" ? FogExploration.CreateData : never)
1215
+ | (DocumentType extends "Folder" ? Folder.CreateData : never)
1216
+ | (DocumentType extends "Item" ? Item.CreateData : never)
1217
+ | (DocumentType extends "JournalEntryCategory" ? JournalEntryCategory.CreateData : never)
1218
+ | (DocumentType extends "JournalEntryPage" ? JournalEntryPage.CreateData : never)
1219
+ | (DocumentType extends "JournalEntry" ? JournalEntry.CreateData : never)
1220
+ | (DocumentType extends "Macro" ? Macro.CreateData : never)
1221
+ | (DocumentType extends "PlaylistSound" ? PlaylistSound.CreateData : never)
1222
+ | (DocumentType extends "Playlist" ? Playlist.CreateData : never)
1223
+ | (DocumentType extends "RegionBehavior" ? RegionBehavior.CreateData : never)
1224
+ | (DocumentType extends "RollTable" ? RollTable.CreateData : never)
1225
+ | (DocumentType extends "Scene" ? Scene.CreateData : never)
1226
+ | (DocumentType extends "Setting" ? Setting.CreateData : never)
1227
+ | (DocumentType extends "TableResult" ? TableResult.CreateData : never)
1228
+ | (DocumentType extends "User" ? User.CreateData : never)
1229
+ | (DocumentType extends "AmbientLight" ? AmbientLightDocument.CreateData : never)
1230
+ | (DocumentType extends "AmbientSound" ? AmbientSoundDocument.CreateData : never)
1231
+ | (DocumentType extends "Drawing" ? DrawingDocument.CreateData : never)
1232
+ | (DocumentType extends "MeasuredTemplate" ? MeasuredTemplateDocument.CreateData : never)
1233
+ | (DocumentType extends "Note" ? NoteDocument.CreateData : never)
1234
+ | (DocumentType extends "Region" ? RegionDocument.CreateData : never)
1235
+ | (DocumentType extends "Tile" ? TileDocument.CreateData : never)
1236
+ | (DocumentType extends "Token" ? TokenDocument.CreateData : never)
1237
+ | (DocumentType extends "Wall" ? WallDocument.CreateData : never);
1238
+
1239
+ type UpdateDataForName<DocumentType extends Document.Type> =
1240
+ | (DocumentType extends "ActiveEffect" ? ActiveEffect.UpdateData : never)
1241
+ | (DocumentType extends "ActorDelta" ? ActorDelta.UpdateData : never)
1242
+ | (DocumentType extends "Actor" ? Actor.UpdateData : never)
1243
+ | (DocumentType extends "Adventure" ? Adventure.UpdateData : never)
1244
+ | (DocumentType extends "Card" ? Card.UpdateData : never)
1245
+ | (DocumentType extends "Cards" ? Cards.UpdateData : never)
1246
+ | (DocumentType extends "ChatMessage" ? ChatMessage.UpdateData : never)
1247
+ | (DocumentType extends "Combat" ? Combat.UpdateData : never)
1248
+ | (DocumentType extends "Combatant" ? Combatant.UpdateData : never)
1249
+ | (DocumentType extends "CombatantGroup" ? CombatantGroup.UpdateData : never)
1250
+ | (DocumentType extends "FogExploration" ? FogExploration.UpdateData : never)
1251
+ | (DocumentType extends "Folder" ? Folder.UpdateData : never)
1252
+ | (DocumentType extends "Item" ? Item.UpdateData : never)
1253
+ | (DocumentType extends "JournalEntryCategory" ? JournalEntryCategory.UpdateData : never)
1254
+ | (DocumentType extends "JournalEntryPage" ? JournalEntryPage.UpdateData : never)
1255
+ | (DocumentType extends "JournalEntry" ? JournalEntry.UpdateData : never)
1256
+ | (DocumentType extends "Macro" ? Macro.UpdateData : never)
1257
+ | (DocumentType extends "PlaylistSound" ? PlaylistSound.UpdateData : never)
1258
+ | (DocumentType extends "Playlist" ? Playlist.UpdateData : never)
1259
+ | (DocumentType extends "RegionBehavior" ? RegionBehavior.UpdateData : never)
1260
+ | (DocumentType extends "RollTable" ? RollTable.UpdateData : never)
1261
+ | (DocumentType extends "Scene" ? Scene.UpdateData : never)
1262
+ | (DocumentType extends "Setting" ? Setting.UpdateData : never)
1263
+ | (DocumentType extends "TableResult" ? TableResult.UpdateData : never)
1264
+ | (DocumentType extends "User" ? User.UpdateData : never)
1265
+ | (DocumentType extends "AmbientLight" ? AmbientLightDocument.UpdateData : never)
1266
+ | (DocumentType extends "AmbientSound" ? AmbientSoundDocument.UpdateData : never)
1267
+ | (DocumentType extends "Drawing" ? DrawingDocument.UpdateData : never)
1268
+ | (DocumentType extends "MeasuredTemplate" ? MeasuredTemplateDocument.UpdateData : never)
1269
+ | (DocumentType extends "Note" ? NoteDocument.UpdateData : never)
1270
+ | (DocumentType extends "Region" ? NoteDocument.UpdateData : never)
1271
+ | (DocumentType extends "Tile" ? TileDocument.UpdateData : never)
1272
+ | (DocumentType extends "Token" ? TokenDocument.UpdateData : never)
1273
+ | (DocumentType extends "Wall" ? WallDocument.UpdateData : never);
1274
+
1275
+ type SourceForName<DocumentType extends Document.Type> =
1276
+ | (DocumentType extends "ActiveEffect" ? ActiveEffect.Source : never)
1277
+ | (DocumentType extends "ActorDelta" ? ActorDelta.Source : never)
1278
+ | (DocumentType extends "Actor" ? Actor.Source : never)
1279
+ | (DocumentType extends "Adventure" ? Adventure.Source : never)
1280
+ | (DocumentType extends "Card" ? Card.Source : never)
1281
+ | (DocumentType extends "Cards" ? Cards.Source : never)
1282
+ | (DocumentType extends "ChatMessage" ? ChatMessage.Source : never)
1283
+ | (DocumentType extends "Combat" ? Combat.Source : never)
1284
+ | (DocumentType extends "Combatant" ? Combatant.Source : never)
1285
+ | (DocumentType extends "CombatantGroup" ? CombatantGroup.Source : never)
1286
+ | (DocumentType extends "FogExploration" ? FogExploration.Source : never)
1287
+ | (DocumentType extends "Folder" ? Folder.Source : never)
1288
+ | (DocumentType extends "Item" ? Item.Source : never)
1289
+ | (DocumentType extends "JournalEntryCategory" ? JournalEntryCategory.Source : never)
1290
+ | (DocumentType extends "JournalEntryPage" ? JournalEntryPage.Source : never)
1291
+ | (DocumentType extends "JournalEntry" ? JournalEntry.Source : never)
1292
+ | (DocumentType extends "Macro" ? Macro.Source : never)
1293
+ | (DocumentType extends "PlaylistSound" ? PlaylistSound.Source : never)
1294
+ | (DocumentType extends "Playlist" ? Playlist.Source : never)
1295
+ | (DocumentType extends "RegionBehavior" ? RegionBehavior.Source : never)
1296
+ | (DocumentType extends "RollTable" ? RollTable.Source : never)
1297
+ | (DocumentType extends "Scene" ? Scene.Source : never)
1298
+ | (DocumentType extends "Setting" ? Setting.Source : never)
1299
+ | (DocumentType extends "TableResult" ? TableResult.Source : never)
1300
+ | (DocumentType extends "User" ? User.Source : never)
1301
+ | (DocumentType extends "AmbientLight" ? AmbientLightDocument.Source : never)
1302
+ | (DocumentType extends "AmbientSound" ? AmbientSoundDocument.Source : never)
1303
+ | (DocumentType extends "Drawing" ? DrawingDocument.Source : never)
1304
+ | (DocumentType extends "MeasuredTemplate" ? MeasuredTemplateDocument.Source : never)
1305
+ | (DocumentType extends "Note" ? NoteDocument.Source : never)
1306
+ | (DocumentType extends "Region" ? NoteDocument.Source : never)
1307
+ | (DocumentType extends "Tile" ? TileDocument.Source : never)
1308
+ | (DocumentType extends "Token" ? TokenDocument.Source : never)
1309
+ | (DocumentType extends "Wall" ? WallDocument.Source : never);
1086
1310
 
1087
1311
  type SystemConstructor = AnyConstructor & {
1088
1312
  metadata: { name: SystemType };
1089
1313
  };
1090
1314
 
1091
- type ConfiguredClassForName<Name extends Type> = MakeConform<
1092
- ConfiguredDocuments[Name],
1093
- Document.Internal.Constructor,
1094
- typeof ConfigurationFailure & DefaultDocuments[Name]
1095
- >;
1096
-
1097
- type SubTypesOf<T extends Type> =
1098
- ConfiguredInstanceForName<T> extends { type: infer Types } ? Types : typeof foundry.CONST.BASE_DOCUMENT_TYPE;
1099
-
1100
- // NOTE(LukeAbby): This type is less DRY than it could be to avoid undue complexity in such a critical helpeer.
1101
- // This has _many_ times been seen to cause loops so this type is written in an intentionally more paranoid way.
1102
- // The reason for the verbosity and repetition is to avoid eagerly evaluating any branches that might cause a loop.
1103
- type ToConfiguredClass<ConcreteDocument extends Document.Internal.Constructor> = MakeConform<
1104
- ConfiguredDocuments[NameFor<ConcreteDocument>],
1105
- Document.AnyConstructor,
1106
- typeof ConfigurationFailure & DefaultDocuments[NameFor<ConcreteDocument>]
1107
- >;
1108
-
1109
- type ToConfiguredInstance<ConcreteDocument extends Document.Internal.Constructor> = MakeConform<
1110
- FixedInstanceType<ConfiguredDocuments[NameFor<ConcreteDocument>]>,
1111
- Document.Any,
1112
- ConfigurationFailure & FixedInstanceType<DefaultDocuments[NameFor<ConcreteDocument>]>
1315
+ type ToConfiguredClass<ConcreteDocument extends Document.Internal.Constructor> = ImplementationClassFor<
1316
+ NameFor<ConcreteDocument>
1113
1317
  >;
1114
1318
 
1115
- type ToConfiguredStored<D extends Document.Internal.Constructor> = Stored<ToConfiguredInstance<D>>;
1116
-
1117
- type Stored<D extends Document.Internal.Instance.Any> = D & {
1118
- id: string;
1119
- _id: string;
1120
- _source: GetKey<D, "_source"> & { _id: string };
1121
- };
1122
-
1123
- type ToStoredIf<
1124
- D extends Document.Internal.Constructor,
1125
- Temporary extends boolean | undefined,
1126
- > = Temporary extends true ? ToConfiguredStored<D> : ToConfiguredInstance<D>;
1127
-
1128
- type Temporary<D extends Document.Internal.Instance.Any> = D extends Stored<infer U> ? U : D;
1129
-
1130
- type NameFor<ConcreteDocument extends Document.Internal.Constructor> = ConcreteDocument extends {
1131
- readonly metadata: { readonly name: infer Name extends Type };
1132
- }
1133
- ? Name
1134
- : never;
1135
-
1136
- type ConfiguredInstanceForName<Name extends Type> = MakeConform<
1137
- FixedInstanceType<ConfiguredDocuments[Name]>,
1138
- Document.Any
1319
+ type ToConfiguredInstance<ConcreteDocument extends Document.Internal.Constructor> = ImplementationFor<
1320
+ NameFor<ConcreteDocument>
1139
1321
  >;
1140
1322
 
1141
- type ConfiguredObjectClassForName<Name extends PlaceableType> = CONFIG[Name]["objectClass"];
1142
- type ConfiguredObjectInstanceForName<Name extends PlaceableType> = FixedInstanceType<CONFIG[Name]["objectClass"]>;
1323
+ type TemporaryIf<D extends Document.Any, Temporary extends boolean | undefined> = Temporary extends true
1324
+ ? D
1325
+ : // eslint-disable-next-line @typescript-eslint/no-deprecated
1326
+ Stored<D>;
1327
+
1328
+ type StoredForName<DocumentType extends Document.Type> =
1329
+ | (DocumentType extends "ActiveEffect" ? ActiveEffect.Stored : never)
1330
+ | (DocumentType extends "ActorDelta" ? ActorDelta.Stored : never)
1331
+ | (DocumentType extends "Actor" ? Actor.Stored : never)
1332
+ | (DocumentType extends "Adventure" ? Adventure.Stored : never)
1333
+ | (DocumentType extends "Card" ? Card.Stored : never)
1334
+ | (DocumentType extends "Cards" ? Cards.Stored : never)
1335
+ | (DocumentType extends "ChatMessage" ? ChatMessage.Stored : never)
1336
+ | (DocumentType extends "Combat" ? Combat.Stored : never)
1337
+ | (DocumentType extends "Combatant" ? Combatant.Stored : never)
1338
+ | (DocumentType extends "CombatantGroup" ? CombatantGroup.Stored : never)
1339
+ | (DocumentType extends "FogExploration" ? FogExploration.Stored : never)
1340
+ | (DocumentType extends "Folder" ? Folder.Stored : never)
1341
+ | (DocumentType extends "Item" ? Item.Stored : never)
1342
+ | (DocumentType extends "JournalEntryCategory" ? JournalEntryCategory.Stored : never)
1343
+ | (DocumentType extends "JournalEntryPage" ? JournalEntryPage.Stored : never)
1344
+ | (DocumentType extends "JournalEntry" ? JournalEntry.Stored : never)
1345
+ | (DocumentType extends "Macro" ? Macro.Stored : never)
1346
+ | (DocumentType extends "PlaylistSound" ? PlaylistSound.Stored : never)
1347
+ | (DocumentType extends "Playlist" ? Playlist.Stored : never)
1348
+ | (DocumentType extends "RegionBehavior" ? RegionBehavior.Stored : never)
1349
+ | (DocumentType extends "RollTable" ? RollTable.Stored : never)
1350
+ | (DocumentType extends "Scene" ? Scene.Stored : never)
1351
+ | (DocumentType extends "Setting" ? Setting.Stored : never)
1352
+ | (DocumentType extends "TableResult" ? TableResult.Stored : never)
1353
+ | (DocumentType extends "User" ? User.Stored : never)
1354
+ | (DocumentType extends "AmbientLight" ? AmbientLightDocument.Stored : never)
1355
+ | (DocumentType extends "AmbientSound" ? AmbientSoundDocument.Stored : never)
1356
+ | (DocumentType extends "Drawing" ? DrawingDocument.Stored : never)
1357
+ | (DocumentType extends "MeasuredTemplate" ? MeasuredTemplateDocument.Stored : never)
1358
+ | (DocumentType extends "Note" ? NoteDocument.Stored : never)
1359
+ | (DocumentType extends "Region" ? NoteDocument.Stored : never)
1360
+ | (DocumentType extends "Tile" ? TileDocument.Stored : never)
1361
+ | (DocumentType extends "Token" ? TokenDocument.Stored : never)
1362
+ | (DocumentType extends "Wall" ? WallDocument.Stored : never);
1363
+
1364
+ type InvalidForName<DocumentType extends Document.Type> =
1365
+ | (DocumentType extends "ActiveEffect" ? ActiveEffect.Invalid : never)
1366
+ | (DocumentType extends "ActorDelta" ? ActorDelta.Invalid : never)
1367
+ | (DocumentType extends "Actor" ? Actor.Invalid : never)
1368
+ | (DocumentType extends "Adventure" ? Adventure.Invalid : never)
1369
+ | (DocumentType extends "Card" ? Card.Invalid : never)
1370
+ | (DocumentType extends "Cards" ? Cards.Invalid : never)
1371
+ | (DocumentType extends "ChatMessage" ? ChatMessage.Invalid : never)
1372
+ | (DocumentType extends "Combat" ? Combat.Invalid : never)
1373
+ | (DocumentType extends "Combatant" ? Combatant.Invalid : never)
1374
+ | (DocumentType extends "CombatantGroup" ? CombatantGroup.Invalid : never)
1375
+ | (DocumentType extends "FogExploration" ? FogExploration.Invalid : never)
1376
+ | (DocumentType extends "Folder" ? Folder.Invalid : never)
1377
+ | (DocumentType extends "Item" ? Item.Invalid : never)
1378
+ | (DocumentType extends "JournalEntryCategory" ? JournalEntryCategory.Invalid : never)
1379
+ | (DocumentType extends "JournalEntryPage" ? JournalEntryPage.Invalid : never)
1380
+ | (DocumentType extends "JournalEntry" ? JournalEntry.Invalid : never)
1381
+ | (DocumentType extends "Macro" ? Macro.Invalid : never)
1382
+ | (DocumentType extends "PlaylistSound" ? PlaylistSound.Invalid : never)
1383
+ | (DocumentType extends "Playlist" ? Playlist.Invalid : never)
1384
+ | (DocumentType extends "RegionBehavior" ? RegionBehavior.Invalid : never)
1385
+ | (DocumentType extends "RollTable" ? RollTable.Invalid : never)
1386
+ | (DocumentType extends "Scene" ? Scene.Invalid : never)
1387
+ | (DocumentType extends "Setting" ? Setting.Invalid : never)
1388
+ | (DocumentType extends "TableResult" ? TableResult.Invalid : never)
1389
+ | (DocumentType extends "User" ? User.Invalid : never)
1390
+ | (DocumentType extends "AmbientLight" ? AmbientLightDocument.Invalid : never)
1391
+ | (DocumentType extends "AmbientSound" ? AmbientSoundDocument.Invalid : never)
1392
+ | (DocumentType extends "Drawing" ? DrawingDocument.Invalid : never)
1393
+ | (DocumentType extends "MeasuredTemplate" ? MeasuredTemplateDocument.Invalid : never)
1394
+ | (DocumentType extends "Note" ? NoteDocument.Invalid : never)
1395
+ | (DocumentType extends "Region" ? NoteDocument.Invalid : never)
1396
+ | (DocumentType extends "Tile" ? TileDocument.Invalid : never)
1397
+ | (DocumentType extends "Token" ? TokenDocument.Invalid : never)
1398
+ | (DocumentType extends "Wall" ? WallDocument.Invalid : never);
1399
+
1400
+ type NameFor<ConcreteDocument extends Document.Internal.Constructor> = ConcreteDocument["documentName"];
1401
+
1402
+ type ImplementationFor<Name extends Type> = ConfiguredDocumentInstance[Name];
1403
+ type ImplementationClassFor<Name extends Type> = ConfiguredDocumentClass[Name];
1404
+
1405
+ type ObjectClassFor<Name extends PlaceableType> = CONFIG[Name]["objectClass"];
1406
+ type ObjectFor<Name extends PlaceableType> = FixedInstanceType<CONFIG[Name]["objectClass"]>;
1143
1407
 
1144
1408
  type ConfiguredDataForName<Name extends Type> = GetKey<DataConfig, Name, EmptyObject>;
1145
1409
 
1146
1410
  type ConfiguredSourceForName<Name extends Type> = GetKey<SourceConfig, Name, EmptyObject>;
1147
1411
 
1148
- type ConfiguredFlagsForName<Name extends Type> = GetKey<FlagConfig, Name, EmptyObject>;
1149
-
1150
- type ToObjectFalseType<T extends Document.Internal.Instance.Any> = T extends {
1151
- toObject: (source: false) => infer U;
1152
- }
1153
- ? U
1154
- : T;
1412
+ // The type `{}` is useful here because in an intersection it reduces down to nothing unlike `EmptyObject`.
1413
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
1414
+ type ConfiguredFlagsForName<Name extends Type> = GetKey<FlagConfig, Name, {}>;
1155
1415
 
1156
1416
  type SchemaFor<ConcreteDocument extends Internal.Instance.Any> =
1157
1417
  ConcreteDocument extends Internal.Instance<infer _1, infer Schema, infer _2> ? Schema : never;
1158
1418
 
1159
- type MetadataFor<ConcreteDocument extends Document.Internal.Instance.Any> =
1160
- ConfiguredMetadata<ConcreteDocument>[ConcreteDocument extends {
1161
- readonly documentName: infer Name extends Document.Type;
1162
- }
1163
- ? Name
1164
- : never];
1419
+ type MetadataFor<Name extends Document.Type> = ConfiguredMetadata[Name];
1165
1420
 
1166
1421
  type CollectionRecord<Schema extends DataSchema> = {
1167
- [Key in keyof Schema]: Schema[Key] extends fields.EmbeddedCollectionField.Any ? Schema[Key] : never;
1422
+ [Key in keyof Schema]: Schema[Key] extends EmbeddedCollectionField.Any ? Schema[Key] : never;
1168
1423
  };
1169
1424
 
1170
1425
  type Flags<ConcreteDocument extends Internal.Instance.Any> = OptionsForSchema<SchemaFor<ConcreteDocument>>;
@@ -1197,7 +1452,7 @@ declare namespace Document {
1197
1452
  type FlagGetKey<T, K extends PropertyKey> = T extends unknown ? (K extends keyof T ? T[K] : never) : never;
1198
1453
 
1199
1454
  // Note(LukeAbby): It's at times been very important for `GetFlag` to be covariant over `ConcreteSchema`.
1200
- // If it isn't then issues arise where the `Document` type ends up becoming invaraint.
1455
+ // If it isn't then issues arise where the `Document` type ends up becoming invariant.
1201
1456
  // Currently it is actually contravariant over `ConcreteSchema` and this may cause issues (because of the usage of `keyof`).
1202
1457
  // Unfortunately it's not easy to avoid because the typical `GetKey` trick has issues between `never`, not defined at all, and `unknown` etc.
1203
1458
  type GetFlag<Name extends Document.Type, S extends string, K extends string> = FlagGetKey<
@@ -1205,30 +1460,66 @@ declare namespace Document {
1205
1460
  K
1206
1461
  >;
1207
1462
 
1208
- interface ConstructionContext<Parent extends Document.Any | null> {
1463
+ interface CoreFlags {
1464
+ core?: {
1465
+ sheetLock?: boolean;
1466
+ sheetClass?: string;
1467
+ };
1468
+ }
1469
+
1470
+ /** @internal */
1471
+ type _ConstructionContext<Parent extends Document.Any | null> = NullishProps<{
1209
1472
  /**
1210
1473
  * The parent Document of this one, if this one is embedded
1211
1474
  * @defaultValue `null`
1212
1475
  */
1213
- parent?: Parent | undefined;
1476
+ parent: Parent;
1214
1477
 
1215
1478
  /**
1216
1479
  * The compendium collection ID which contains this Document, if any
1217
1480
  * @defaultValue `null`
1218
1481
  */
1219
- pack?: string | null | undefined;
1482
+ pack: string;
1220
1483
 
1221
1484
  /**
1222
1485
  * Whether to validate initial data strictly?
1223
1486
  * @defaultValue `true`
1224
1487
  */
1225
- strict?: boolean | null | undefined;
1488
+ strict: boolean;
1226
1489
 
1227
1490
  /**
1228
- * An immutable reverse-reference to the name of the collection that thi8s Document exists in on its parent, if any.
1491
+ * An immutable reverse-reference to the name of the collection that this Document exists in on its parent, if any.
1492
+ * @privateRemarks Omitted from the typedef, inferred from usage in {@link Document._configure | `Document#_configure`}
1493
+ * (and included in the construction context rather than `ConfigureOptions` due to being passed to construction in
1494
+ * {@link foundry.abstract.EmbeddedCollection.createDocument | `EmbeddedCollection#createDocument`})
1229
1495
  */
1230
- parentCollection?: string | null | undefined;
1231
- }
1496
+ parentCollection: string;
1497
+ }>;
1498
+
1499
+ /**
1500
+ * Foundry does not include the properties from the DataModel construction context in `DocumentConstructionContext`,
1501
+ * but they're all still valid.
1502
+ *
1503
+ * `strict` is omitted from the DataModel interface so the Document interface's property
1504
+ * description takes precedence.
1505
+ */
1506
+ interface ConstructionContext<Parent extends Document.Any | null = Document.Any | null>
1507
+ extends Omit<DataModel._ConstructionContext, "strict">,
1508
+ _ConstructionContext<Parent> {}
1509
+
1510
+ /** `DataModel#constructor` pulls `parent` and `strict` out of the passed context before forwarding to `#_configure` */
1511
+ interface ConfigureOptions extends Omit<ConstructionContext, "parent" | "strict"> {}
1512
+
1513
+ /** `DataModel#constructor` pulls `parent` out of the passed context before forwarding to `#_initializeSource` */
1514
+ interface InitializeOptions extends Omit<ConstructionContext, "parent"> {}
1515
+
1516
+ /**
1517
+ * `DataModel#constructor` pulls `parent` out of the passed context before forwarding to `#_initializeSource`
1518
+ * @privateRemarks `Document` doesn't override `_initializeSource`, but at least one specific document does (Actor only, as of v12);
1519
+ * Without an override, this is handled by the `& ExtraConstructorOptions` in the `DataModel` signature, but with one,
1520
+ * a manually combined interface is needed.
1521
+ */
1522
+ interface InitializeSourceOptions extends DataModel.InitializeSourceOptions, Omit<ConstructionContext, "parent"> {}
1232
1523
 
1233
1524
  interface ModificationContext<Parent extends Document.Any | null> {
1234
1525
  /**
@@ -1314,187 +1605,846 @@ declare namespace Document {
1314
1605
  deleteAll?: boolean | undefined;
1315
1606
  }
1316
1607
 
1317
- type ModificationOptions = Omit<Document.ModificationContext<Document.Any | null>, "parent" | "pack">;
1608
+ /** @internal */
1609
+ type _CloneContext<Save extends boolean | null | undefined = boolean | null | undefined> = NullishProps<{
1610
+ /**
1611
+ * Save the clone to the World database?
1612
+ * @defaultValue `false`
1613
+ */
1614
+ save: Save;
1318
1615
 
1319
- type PreCreateOptions<Name extends Type> = Omit<
1320
- Document.Database.OperationOf<Name, "create">,
1321
- "data" | "noHook" | "pack" | "parent"
1322
- >;
1323
- type OnCreateOptions<Name extends Type> = Omit<
1324
- Document.Database.OperationOf<Name, "create">,
1325
- "pack" | "parentUuid" | "syntheticActorUpdate"
1326
- >;
1616
+ /**
1617
+ * Keep the same ID of the original document
1618
+ * @defaultValue `false`
1619
+ */
1620
+ keepId: boolean;
1327
1621
 
1328
- type PreUpdateOptions<Name extends Type> = Omit<
1329
- Document.Database.OperationOf<Name, "update">,
1330
- "updates" | "restoreDelta" | "noHook" | "parent" | "pack"
1331
- >;
1332
- type OnUpdateOptions<Name extends Type> = Omit<
1333
- Document.Database.OperationOf<Name, "update">,
1334
- "pack" | "parentUuid" | "syntheticActorUpdate"
1335
- >;
1622
+ /**
1623
+ * Track the clone source
1624
+ * @defaultValue `false`
1625
+ */
1626
+ addSource: boolean;
1627
+ }>;
1336
1628
 
1337
- type PreDeleteOptions<Name extends Type> = Omit<
1338
- Document.Database.OperationOf<Name, "delete">,
1339
- "ids" | "deleteAll" | "noHook" | "pack" | "parent"
1340
- >;
1341
- type OnDeleteOptions<Name extends Type> = Omit<
1342
- Document.Database.OperationOf<Name, "delete">,
1343
- "deleteAll" | "pack" | "parentUuid" | "syntheticActorUpdate"
1344
- >;
1629
+ /**
1630
+ * @privateRemarks Since we've lost the ExtraConstructorOptions type param, we have to extend
1631
+ * the (parentless) construction context
1632
+ */
1633
+ interface CloneContext<Save extends boolean | null | undefined = boolean | null | undefined>
1634
+ extends _CloneContext<Save>,
1635
+ Omit<Document.ConstructionContext, "parent"> {}
1345
1636
 
1346
- type PreUpsertOptions<Name extends Type> = PreCreateOptions<Name> | PreUpdateOptions<Name>;
1347
- type OnUpsertOptions<Name extends Type> = OnCreateOptions<Name> | OnUpdateOptions<Name>;
1637
+ type ModificationOptions = Omit<Document.ModificationContext<Document.Any | null>, "parent" | "pack">;
1348
1638
 
1349
1639
  interface Metadata<out ThisType extends Document.Any> {
1350
1640
  readonly name: ThisType["documentName"];
1351
- readonly collection: string;
1352
- readonly indexed?: boolean | undefined;
1353
- readonly compendiumIndexFields?: readonly string[] | undefined;
1354
1641
  readonly label: string;
1355
1642
  readonly coreTypes: readonly string[];
1356
- readonly embedded: Record<string, string>;
1643
+ readonly collection: string;
1644
+ readonly embedded: {
1645
+ [DocumentType in Document.Type]?: string;
1646
+ };
1357
1647
  readonly permissions: {
1358
- create: string | ToMethod<(user: User, doc: ThisType, data: Document.ConstructorDataForName<Type>) => boolean>;
1359
- update: string | ToMethod<(user: User, doc: ThisType, data: Document.UpdateDataForName<Type>) => boolean>;
1360
- delete: string | ToMethod<(user: User, doc: ThisType, data: EmptyObject) => boolean>;
1648
+ view: string | ToMethod<(user: User.Internal.Implementation, doc: ThisType, data: AnyObject) => boolean>;
1649
+ create: string | ToMethod<(user: User.Internal.Implementation, doc: ThisType, data: AnyObject) => boolean>;
1650
+ update: string | ToMethod<(user: User.Internal.Implementation, doc: ThisType, data: AnyObject) => boolean>;
1651
+ delete: string | ToMethod<(user: User.Internal.Implementation, doc: ThisType, data: EmptyObject) => boolean>;
1361
1652
  };
1362
- readonly preserveOnImport?: readonly string[] | undefined;
1363
- readonly schemaVersion: string | undefined;
1364
- readonly labelPlural: string; // This is not set for the Document class but every class that implements Document actually provides it.
1365
- readonly types: readonly string[];
1366
- readonly hasSystemData: boolean;
1653
+ readonly hasTypeData?: boolean;
1654
+ readonly indexed: boolean;
1655
+ readonly compendiumIndexFields: readonly string[];
1656
+ readonly preserveOnImport: readonly string[];
1657
+ readonly schemaVersion?: string | undefined;
1658
+ readonly labelPlural?: string; // This is not set for the Document class but every class that implements Document actually provides it.
1367
1659
  }
1368
1660
 
1369
1661
  namespace Metadata {
1370
- type Any = Metadata<any>;
1371
-
1372
- export interface Default {
1373
- name: "Document";
1374
- collection: "documents";
1375
- label: "DOCUMENT.Document";
1376
- coreTypes: [typeof foundry.CONST.BASE_DOCUMENT_TYPE];
1377
- types: [];
1378
- embedded: EmptyObject;
1379
- hasSystemData: false;
1380
- permissions: {
1662
+ interface Any extends Metadata<any> {}
1663
+
1664
+ interface Default {
1665
+ readonly name: "Document";
1666
+ readonly label: "DOCUMENT.Document";
1667
+ readonly coreTypes: [CONST.BASE_DOCUMENT_TYPE];
1668
+ readonly collection: "documents";
1669
+ readonly embedded: EmptyObject;
1670
+ readonly hasTypeData: false;
1671
+ readonly indexed: false;
1672
+ readonly compendiumIndexFields: [];
1673
+ readonly permissions: {
1674
+ view: "LIMITED";
1381
1675
  create: "ASSISTANT";
1382
- update: "ASSISTANT";
1676
+ update: "OWNER";
1383
1677
  delete: "ASSISTANT";
1384
1678
  };
1385
- pack: null;
1679
+ readonly preserveOnImport: ["_id", "sort", "ownership", "folder"];
1386
1680
  }
1681
+
1682
+ interface Embedded extends Identity<{ [K in Document.Type]?: string }> {}
1683
+ }
1684
+
1685
+ type SheetClassFor<Name extends Document.Type> = MakeConform<
1686
+ GetKey<GetKey<CONFIG, Name>, "sheetClass">,
1687
+ AnyConstructor
1688
+ >;
1689
+
1690
+ type LayerClassFor<Name extends Document.Type> = GetKey<GetKey<CONFIG, Name>, "layerClass">;
1691
+
1692
+ namespace Database {
1693
+ type Operation = "create" | "update" | "delete";
1694
+
1695
+ /**
1696
+ * @privateRemarks Foundry types {@link Document.get | `Document.get`} as taking a {@link DatabaseGetOperation | `DatabaseGetOperation`}
1697
+ * but it only ever looks for `pack`
1698
+ */
1699
+ interface GetOptions extends Pick<DatabaseGetOperation, "pack"> {}
1700
+
1701
+ /** Used for {@linkcode Document.createDocuments} */
1702
+ type CreateOperation<Op extends DatabaseCreateOperation> = NullishProps<Omit<Op, "data" | "modifiedTime">>;
1703
+
1704
+ /** Used for {@linkcode Document.update} */
1705
+ type UpdateOperation<Op extends DatabaseUpdateOperation> = InexactPartial<Omit<Op, "updates">>;
1706
+
1707
+ /** Used for {@linkcode Document.delete} */
1708
+ type DeleteOperation<Op extends DatabaseDeleteOperation> = InexactPartial<Omit<Op, "ids">>;
1709
+
1710
+ /** Used for {@linkcode Document._preCreateOperation} */
1711
+ type PreCreateOperationStatic<Op extends DatabaseCreateOperation> = InexactPartialExcept<
1712
+ Op,
1713
+ "modifiedTime" | "render" | "renderSheet" | "data" | "noHook" | "pack" | "parent"
1714
+ >;
1715
+
1716
+ /** Used for {@link Document._preCreate | `Document#_preCreate`} */
1717
+ type PreCreateOptions<Op extends DatabaseCreateOperation> = Omit<
1718
+ PreCreateOperationStatic<Op>,
1719
+ "data" | "noHook" | "pack" | "parent"
1720
+ >;
1721
+
1722
+ /** Used for {@link Document._onCreate | `Document#_onCreate`} */
1723
+ type CreateOptions<Op extends DatabaseCreateOperation> = Omit<
1724
+ Op,
1725
+ "data" | "pack" | "parentUuid" | "syntheticActorUpdate"
1726
+ >;
1727
+
1728
+ /** Used for {@linkcode Document.updateDocuments} */
1729
+ type UpdateDocumentsOperation<Op extends DatabaseUpdateOperation> = NullishProps<
1730
+ Omit<Op, "updates" | "modifiedTime">
1731
+ >;
1732
+
1733
+ /** Used for {@link Document.update | `Document#update`} */
1734
+ type UpdateOperationInstance<Op extends DatabaseUpdateOperation> = InexactPartial<
1735
+ Omit<Op, "updates" | "parent" | "pack">
1736
+ >;
1737
+
1738
+ /** Used for {@linkcode Document._preUpdateOperation} */
1739
+ type PreUpdateOperationStatic<Op extends DatabaseUpdateOperation> = InexactPartialExcept<
1740
+ Op,
1741
+ "modifiedTime" | "diff" | "recursive" | "render" | "updates" | "restoreDelta" | "noHook" | "pack" | "parent"
1742
+ >;
1743
+
1744
+ /** Used for {@link Document._preUpdate | `Document#_preUpdate`} */
1745
+ type PreUpdateOptions<Op extends DatabaseUpdateOperation> = Omit<
1746
+ PreUpdateOperationStatic<Op>,
1747
+ "updates" | "restoreDelta" | "noHook" | "pack" | "parent"
1748
+ >;
1749
+
1750
+ /** Used for {@link Document._onUpdate | `Document#_onUpdate`} */
1751
+ type UpdateOptions<Op extends DatabaseUpdateOperation> = Omit<
1752
+ Op,
1753
+ "updates" | "pack" | "parentUuid" | "syntheticActorUpdate"
1754
+ >;
1755
+
1756
+ /** Used for {@linkcode Document.deleteDocuments} */
1757
+ type DeleteDocumentsOperation<Op extends DatabaseDeleteOperation> = NullishProps<Omit<Op, "ids" | "modifiedTime">>;
1758
+
1759
+ /** Used for {@linkcode Document.delete} */
1760
+ type DeleteOperationInstance<Op extends DatabaseDeleteOperation> = InexactPartial<
1761
+ Omit<Op, "ids" | "parent" | "pack">
1762
+ >;
1763
+
1764
+ /** Used for {@linkcode Document._preDeleteOperation} */
1765
+ type PreDeleteOperationStatic<Op extends DatabaseDeleteOperation> = InexactPartialExcept<
1766
+ Op,
1767
+ "modifiedTime" | "render" | "ids" | "deleteAll" | "noHook" | "pack" | "parent"
1768
+ >;
1769
+
1770
+ /** Used for {@link Document._preDelete | `Document#_preDelete`} */
1771
+ type PreDeleteOperationInstance<Op extends DatabaseDeleteOperation> = Omit<
1772
+ InexactPartialExcept<Op, "modifiedTime" | "render">,
1773
+ "ids" | "deleteAll" | "noHook" | "pack" | "parent"
1774
+ >;
1775
+
1776
+ /** Used for {@link Document._onDelete | `Document#_onDelete`} */
1777
+ type DeleteOptions<Op extends DatabaseDeleteOperation> = Omit<
1778
+ Op,
1779
+ "ids" | "deleteAll" | "pack" | "parentUuid" | "syntheticActorUpdate"
1780
+ >;
1781
+
1782
+ type CreateForName<DocumentType extends Document.Type> =
1783
+ | (DocumentType extends "ActiveEffect" ? ActiveEffect.Database.Create : never)
1784
+ | (DocumentType extends "ActorDelta" ? ActorDelta.Database.Create : never)
1785
+ | (DocumentType extends "Actor" ? Actor.Database.Create : never)
1786
+ | (DocumentType extends "Adventure" ? Adventure.Database.Create : never)
1787
+ | (DocumentType extends "Card" ? Card.Database.Create : never)
1788
+ | (DocumentType extends "Cards" ? Cards.Database.Create : never)
1789
+ | (DocumentType extends "ChatMessage" ? ChatMessage.Database.Create : never)
1790
+ | (DocumentType extends "Combat" ? Combat.Database.Create : never)
1791
+ | (DocumentType extends "Combatant" ? Combatant.Database.Create : never)
1792
+ | (DocumentType extends "CombatantGroup" ? CombatantGroup.Database.Create : never)
1793
+ | (DocumentType extends "FogExploration" ? FogExploration.Database.Create : never)
1794
+ | (DocumentType extends "Folder" ? Folder.Database.Create : never)
1795
+ | (DocumentType extends "Item" ? Item.Database.Create : never)
1796
+ | (DocumentType extends "JournalEntryCategory" ? JournalEntryCategory.Database.Create : never)
1797
+ | (DocumentType extends "JournalEntryPage" ? JournalEntryPage.Database.Create : never)
1798
+ | (DocumentType extends "JournalEntry" ? JournalEntry.Database.Create : never)
1799
+ | (DocumentType extends "Macro" ? Macro.Database.Create : never)
1800
+ | (DocumentType extends "PlaylistSound" ? PlaylistSound.Database.Create : never)
1801
+ | (DocumentType extends "Playlist" ? Playlist.Database.Create : never)
1802
+ | (DocumentType extends "RegionBehavior" ? RegionBehavior.Database.Create : never)
1803
+ | (DocumentType extends "RollTable" ? RollTable.Database.Create : never)
1804
+ | (DocumentType extends "Scene" ? Scene.Database.Create : never)
1805
+ | (DocumentType extends "Setting" ? Setting.Database.Create : never)
1806
+ | (DocumentType extends "TableResult" ? TableResult.Database.Create : never)
1807
+ | (DocumentType extends "User" ? User.Database.Create : never)
1808
+ | (DocumentType extends "AmbientLight" ? AmbientLightDocument.Database.Create : never)
1809
+ | (DocumentType extends "AmbientSound" ? AmbientSoundDocument.Database.Create : never)
1810
+ | (DocumentType extends "Drawing" ? DrawingDocument.Database.Create : never)
1811
+ | (DocumentType extends "MeasuredTemplate" ? MeasuredTemplateDocument.Database.Create : never)
1812
+ | (DocumentType extends "Note" ? NoteDocument.Database.Create : never)
1813
+ | (DocumentType extends "Region" ? RegionDocument.Database.Create : never)
1814
+ | (DocumentType extends "Tile" ? TileDocument.Database.Create : never)
1815
+ | (DocumentType extends "Token" ? TokenDocument.Database.Create : never)
1816
+ | (DocumentType extends "Wall" ? WallDocument.Database.Create : never);
1817
+
1818
+ type CreateOperationForName<
1819
+ DocumentType extends Document.Type,
1820
+ Temporary extends boolean | undefined = undefined,
1821
+ > =
1822
+ | (DocumentType extends "ActiveEffect" ? ActiveEffect.Database.CreateOperation<Temporary> : never)
1823
+ | (DocumentType extends "ActorDelta" ? ActorDelta.Database.CreateOperation<Temporary> : never)
1824
+ | (DocumentType extends "Actor" ? Actor.Database.CreateOperation<Temporary> : never)
1825
+ | (DocumentType extends "Adventure" ? Adventure.Database.CreateOperation<Temporary> : never)
1826
+ | (DocumentType extends "Card" ? Card.Database.CreateOperation<Temporary> : never)
1827
+ | (DocumentType extends "Cards" ? Cards.Database.CreateOperation<Temporary> : never)
1828
+ | (DocumentType extends "ChatMessage" ? ChatMessage.Database.CreateOperation<Temporary> : never)
1829
+ | (DocumentType extends "Combat" ? Combat.Database.CreateOperation<Temporary> : never)
1830
+ | (DocumentType extends "Combatant" ? Combatant.Database.CreateOperation<Temporary> : never)
1831
+ | (DocumentType extends "CombatantGroup" ? CombatantGroup.Database.CreateOperation<Temporary> : never)
1832
+ | (DocumentType extends "FogExploration" ? FogExploration.Database.CreateOperation<Temporary> : never)
1833
+ | (DocumentType extends "Folder" ? Folder.Database.CreateOperation<Temporary> : never)
1834
+ | (DocumentType extends "Item" ? Item.Database.CreateOperation<Temporary> : never)
1835
+ | (DocumentType extends "JournalEntryCategory" ? JournalEntryCategory.Database.CreateOperation<Temporary> : never)
1836
+ | (DocumentType extends "JournalEntryPage" ? JournalEntryPage.Database.CreateOperation<Temporary> : never)
1837
+ | (DocumentType extends "JournalEntry" ? JournalEntry.Database.CreateOperation<Temporary> : never)
1838
+ | (DocumentType extends "Macro" ? Macro.Database.CreateOperation<Temporary> : never)
1839
+ | (DocumentType extends "PlaylistSound" ? PlaylistSound.Database.CreateOperation<Temporary> : never)
1840
+ | (DocumentType extends "Playlist" ? Playlist.Database.CreateOperation<Temporary> : never)
1841
+ | (DocumentType extends "RegionBehavior" ? RegionBehavior.Database.CreateOperation<Temporary> : never)
1842
+ | (DocumentType extends "RollTable" ? RollTable.Database.CreateOperation<Temporary> : never)
1843
+ | (DocumentType extends "Scene" ? Scene.Database.CreateOperation<Temporary> : never)
1844
+ | (DocumentType extends "Setting" ? Setting.Database.CreateOperation<Temporary> : never)
1845
+ | (DocumentType extends "TableResult" ? TableResult.Database.CreateOperation<Temporary> : never)
1846
+ | (DocumentType extends "User" ? User.Database.CreateOperation<Temporary> : never)
1847
+ | (DocumentType extends "AmbientLight" ? AmbientLightDocument.Database.CreateOperation<Temporary> : never)
1848
+ | (DocumentType extends "AmbientSound" ? AmbientSoundDocument.Database.CreateOperation<Temporary> : never)
1849
+ | (DocumentType extends "Drawing" ? DrawingDocument.Database.CreateOperation<Temporary> : never)
1850
+ | (DocumentType extends "MeasuredTemplate" ? MeasuredTemplateDocument.Database.CreateOperation<Temporary> : never)
1851
+ | (DocumentType extends "Note" ? NoteDocument.Database.CreateOperation<Temporary> : never)
1852
+ | (DocumentType extends "Region" ? RegionDocument.Database.CreateOperation<Temporary> : never)
1853
+ | (DocumentType extends "Tile" ? TileDocument.Database.CreateOperation<Temporary> : never)
1854
+ | (DocumentType extends "Token" ? TokenDocument.Database.CreateOperation<Temporary> : never)
1855
+ | (DocumentType extends "Wall" ? WallDocument.Database.CreateOperation<Temporary> : never);
1856
+
1857
+ type UpdateOperationForName<DocumentType extends Document.Type> =
1858
+ | (DocumentType extends "ActiveEffect" ? ActiveEffect.Database.UpdateOperation : never)
1859
+ | (DocumentType extends "ActorDelta" ? ActorDelta.Database.UpdateOperation : never)
1860
+ | (DocumentType extends "Actor" ? Actor.Database.UpdateOperation : never)
1861
+ | (DocumentType extends "Adventure" ? Adventure.Database.UpdateOperation : never)
1862
+ | (DocumentType extends "Card" ? Card.Database.UpdateOperation : never)
1863
+ | (DocumentType extends "Cards" ? Cards.Database.UpdateOperation : never)
1864
+ | (DocumentType extends "ChatMessage" ? ChatMessage.Database.UpdateOperation : never)
1865
+ | (DocumentType extends "Combat" ? Combat.Database.UpdateOperation : never)
1866
+ | (DocumentType extends "Combatant" ? Combatant.Database.UpdateOperation : never)
1867
+ | (DocumentType extends "CombatantGroup" ? CombatantGroup.Database.UpdateOperation : never)
1868
+ | (DocumentType extends "FogExploration" ? FogExploration.Database.UpdateOperation : never)
1869
+ | (DocumentType extends "Folder" ? Folder.Database.UpdateOperation : never)
1870
+ | (DocumentType extends "Item" ? Item.Database.UpdateOperation : never)
1871
+ | (DocumentType extends "JournalEntryCategory" ? JournalEntryCategory.Database.UpdateOperation : never)
1872
+ | (DocumentType extends "JournalEntryPage" ? JournalEntryPage.Database.UpdateOperation : never)
1873
+ | (DocumentType extends "JournalEntry" ? JournalEntry.Database.UpdateOperation : never)
1874
+ | (DocumentType extends "Macro" ? Macro.Database.UpdateOperation : never)
1875
+ | (DocumentType extends "PlaylistSound" ? PlaylistSound.Database.UpdateOperation : never)
1876
+ | (DocumentType extends "Playlist" ? Playlist.Database.UpdateOperation : never)
1877
+ | (DocumentType extends "RegionBehavior" ? RegionBehavior.Database.UpdateOperation : never)
1878
+ | (DocumentType extends "RollTable" ? RollTable.Database.UpdateOperation : never)
1879
+ | (DocumentType extends "Scene" ? Scene.Database.UpdateOperation : never)
1880
+ | (DocumentType extends "Setting" ? Setting.Database.UpdateOperation : never)
1881
+ | (DocumentType extends "TableResult" ? TableResult.Database.UpdateOperation : never)
1882
+ | (DocumentType extends "User" ? User.Database.UpdateOperation : never)
1883
+ | (DocumentType extends "AmbientLight" ? AmbientLightDocument.Database.UpdateOperation : never)
1884
+ | (DocumentType extends "AmbientSound" ? AmbientSoundDocument.Database.UpdateOperation : never)
1885
+ | (DocumentType extends "Drawing" ? DrawingDocument.Database.UpdateOperation : never)
1886
+ | (DocumentType extends "MeasuredTemplate" ? MeasuredTemplateDocument.Database.UpdateOperation : never)
1887
+ | (DocumentType extends "Note" ? NoteDocument.Database.UpdateOperation : never)
1888
+ | (DocumentType extends "Region" ? RegionDocument.Database.UpdateOperation : never)
1889
+ | (DocumentType extends "Tile" ? TileDocument.Database.UpdateOperation : never)
1890
+ | (DocumentType extends "Token" ? TokenDocument.Database.UpdateOperation : never)
1891
+ | (DocumentType extends "Wall" ? WallDocument.Database.UpdateOperation : never);
1892
+
1893
+ type DeleteOperationForName<DocumentType extends Document.Type> =
1894
+ | (DocumentType extends "ActiveEffect" ? ActiveEffect.Database.DeleteOperation : never)
1895
+ | (DocumentType extends "ActorDelta" ? ActorDelta.Database.DeleteOperation : never)
1896
+ | (DocumentType extends "Actor" ? Actor.Database.DeleteOperation : never)
1897
+ | (DocumentType extends "Adventure" ? Adventure.Database.DeleteOperation : never)
1898
+ | (DocumentType extends "Card" ? Card.Database.DeleteOperation : never)
1899
+ | (DocumentType extends "Cards" ? Cards.Database.DeleteOperation : never)
1900
+ | (DocumentType extends "ChatMessage" ? ChatMessage.Database.DeleteOperation : never)
1901
+ | (DocumentType extends "Combat" ? Combat.Database.DeleteOperation : never)
1902
+ | (DocumentType extends "Combatant" ? Combatant.Database.DeleteOperation : never)
1903
+ | (DocumentType extends "CombatantGround" ? CombatantGroup.Database.DeleteOperation : never)
1904
+ | (DocumentType extends "FogExploration" ? FogExploration.Database.DeleteOperation : never)
1905
+ | (DocumentType extends "Folder" ? Folder.Database.DeleteOperation : never)
1906
+ | (DocumentType extends "Item" ? Item.Database.DeleteOperation : never)
1907
+ | (DocumentType extends "JournalEntryCategory" ? JournalEntryCategory.Database.DeleteOperation : never)
1908
+ | (DocumentType extends "JournalEntryPage" ? JournalEntryPage.Database.DeleteOperation : never)
1909
+ | (DocumentType extends "JournalEntry" ? JournalEntry.Database.DeleteOperation : never)
1910
+ | (DocumentType extends "Macro" ? Macro.Database.DeleteOperation : never)
1911
+ | (DocumentType extends "PlaylistSound" ? PlaylistSound.Database.DeleteOperation : never)
1912
+ | (DocumentType extends "Playlist" ? Playlist.Database.DeleteOperation : never)
1913
+ | (DocumentType extends "RegionBehavior" ? RegionBehavior.Database.DeleteOperation : never)
1914
+ | (DocumentType extends "RollTable" ? RollTable.Database.DeleteOperation : never)
1915
+ | (DocumentType extends "Scene" ? Scene.Database.DeleteOperation : never)
1916
+ | (DocumentType extends "Setting" ? Setting.Database.DeleteOperation : never)
1917
+ | (DocumentType extends "TableResult" ? TableResult.Database.DeleteOperation : never)
1918
+ | (DocumentType extends "User" ? User.Database.DeleteOperation : never)
1919
+ | (DocumentType extends "AmbientLight" ? AmbientLightDocument.Database.DeleteOperation : never)
1920
+ | (DocumentType extends "AmbientSound" ? AmbientSoundDocument.Database.DeleteOperation : never)
1921
+ | (DocumentType extends "Drawing" ? DrawingDocument.Database.DeleteOperation : never)
1922
+ | (DocumentType extends "MeasuredTemplate" ? MeasuredTemplateDocument.Database.DeleteOperation : never)
1923
+ | (DocumentType extends "Note" ? NoteDocument.Database.DeleteOperation : never)
1924
+ | (DocumentType extends "Region" ? RegionDocument.Database.DeleteOperation : never)
1925
+ | (DocumentType extends "Tile" ? TileDocument.Database.DeleteOperation : never)
1926
+ | (DocumentType extends "Token" ? TokenDocument.Database.DeleteOperation : never)
1927
+ | (DocumentType extends "Wall" ? WallDocument.Database.DeleteOperation : never);
1928
+
1929
+ type CreateOptionsFor<DocumentType extends Document.Type> =
1930
+ | (DocumentType extends "ActiveEffect" ? ActiveEffect.Database.CreateOptions : never)
1931
+ | (DocumentType extends "ActorDelta" ? ActorDelta.Database.CreateOptions : never)
1932
+ | (DocumentType extends "Actor" ? Actor.Database.CreateOptions : never)
1933
+ | (DocumentType extends "Adventure" ? Adventure.Database.CreateOptions : never)
1934
+ | (DocumentType extends "Card" ? Card.Database.CreateOptions : never)
1935
+ | (DocumentType extends "Cards" ? Cards.Database.CreateOptions : never)
1936
+ | (DocumentType extends "ChatMessage" ? ChatMessage.Database.CreateOptions : never)
1937
+ | (DocumentType extends "Combat" ? Combat.Database.CreateOptions : never)
1938
+ | (DocumentType extends "Combatant" ? Combatant.Database.CreateOptions : never)
1939
+ | (DocumentType extends "CombatantGroup" ? CombatantGroup.Database.CreateOptions : never)
1940
+ | (DocumentType extends "FogExploration" ? FogExploration.Database.CreateOptions : never)
1941
+ | (DocumentType extends "Folder" ? Folder.Database.CreateOptions : never)
1942
+ | (DocumentType extends "Item" ? Item.Database.CreateOptions : never)
1943
+ | (DocumentType extends "JournalEntryCategory" ? JournalEntryCategory.Database.CreateOptions : never)
1944
+ | (DocumentType extends "JournalEntryPage" ? JournalEntryPage.Database.CreateOptions : never)
1945
+ | (DocumentType extends "JournalEntry" ? JournalEntry.Database.CreateOptions : never)
1946
+ | (DocumentType extends "Macro" ? Macro.Database.CreateOptions : never)
1947
+ | (DocumentType extends "PlaylistSound" ? PlaylistSound.Database.CreateOptions : never)
1948
+ | (DocumentType extends "Playlist" ? Playlist.Database.CreateOptions : never)
1949
+ | (DocumentType extends "RegionBehavior" ? RegionBehavior.Database.CreateOptions : never)
1950
+ | (DocumentType extends "RollTable" ? RollTable.Database.CreateOptions : never)
1951
+ | (DocumentType extends "Scene" ? Scene.Database.CreateOptions : never)
1952
+ | (DocumentType extends "Setting" ? Setting.Database.CreateOptions : never)
1953
+ | (DocumentType extends "TableResult" ? TableResult.Database.CreateOptions : never)
1954
+ | (DocumentType extends "User" ? User.Database.CreateOptions : never)
1955
+ | (DocumentType extends "AmbientLight" ? AmbientLightDocument.Database.CreateOptions : never)
1956
+ | (DocumentType extends "AmbientSound" ? AmbientSoundDocument.Database.CreateOptions : never)
1957
+ | (DocumentType extends "Drawing" ? DrawingDocument.Database.CreateOptions : never)
1958
+ | (DocumentType extends "MeasuredTemplate" ? MeasuredTemplateDocument.Database.CreateOptions : never)
1959
+ | (DocumentType extends "Note" ? NoteDocument.Database.CreateOptions : never)
1960
+ | (DocumentType extends "Region" ? RegionDocument.Database.CreateOptions : never)
1961
+ | (DocumentType extends "Tile" ? TileDocument.Database.CreateOptions : never)
1962
+ | (DocumentType extends "Token" ? TokenDocument.Database.CreateOptions : never)
1963
+ | (DocumentType extends "Wall" ? WallDocument.Database.CreateOptions : never);
1964
+
1965
+ type UpdateOptionsFor<DocumentType extends Document.Type> =
1966
+ | (DocumentType extends "ActiveEffect" ? ActiveEffect.Database.UpdateOptions : never)
1967
+ | (DocumentType extends "ActorDelta" ? ActorDelta.Database.UpdateOptions : never)
1968
+ | (DocumentType extends "Actor" ? Actor.Database.UpdateOptions : never)
1969
+ | (DocumentType extends "Adventure" ? Adventure.Database.UpdateOptions : never)
1970
+ | (DocumentType extends "Card" ? Card.Database.UpdateOptions : never)
1971
+ | (DocumentType extends "Cards" ? Cards.Database.UpdateOptions : never)
1972
+ | (DocumentType extends "ChatMessage" ? ChatMessage.Database.UpdateOptions : never)
1973
+ | (DocumentType extends "Combat" ? Combat.Database.UpdateOptions : never)
1974
+ | (DocumentType extends "Combatant" ? Combatant.Database.UpdateOptions : never)
1975
+ | (DocumentType extends "CombatantGroup" ? CombatantGroup.Database.UpdateOptions : never)
1976
+ | (DocumentType extends "FogExploration" ? FogExploration.Database.UpdateOptions : never)
1977
+ | (DocumentType extends "Folder" ? Folder.Database.UpdateOptions : never)
1978
+ | (DocumentType extends "Item" ? Item.Database.UpdateOptions : never)
1979
+ | (DocumentType extends "JournalEntryCategory" ? JournalEntryCategory.Database.UpdateOptions : never)
1980
+ | (DocumentType extends "JournalEntryPage" ? JournalEntryPage.Database.UpdateOptions : never)
1981
+ | (DocumentType extends "JournalEntry" ? JournalEntry.Database.UpdateOptions : never)
1982
+ | (DocumentType extends "Macro" ? Macro.Database.UpdateOptions : never)
1983
+ | (DocumentType extends "PlaylistSound" ? PlaylistSound.Database.UpdateOptions : never)
1984
+ | (DocumentType extends "Playlist" ? Playlist.Database.UpdateOptions : never)
1985
+ | (DocumentType extends "RegionBehavior" ? RegionBehavior.Database.UpdateOptions : never)
1986
+ | (DocumentType extends "RollTable" ? RollTable.Database.UpdateOptions : never)
1987
+ | (DocumentType extends "Scene" ? Scene.Database.UpdateOptions : never)
1988
+ | (DocumentType extends "Setting" ? Setting.Database.UpdateOptions : never)
1989
+ | (DocumentType extends "TableResult" ? TableResult.Database.UpdateOptions : never)
1990
+ | (DocumentType extends "User" ? User.Database.UpdateOptions : never)
1991
+ | (DocumentType extends "AmbientLight" ? AmbientLightDocument.Database.UpdateOptions : never)
1992
+ | (DocumentType extends "AmbientSound" ? AmbientSoundDocument.Database.UpdateOptions : never)
1993
+ | (DocumentType extends "Drawing" ? DrawingDocument.Database.UpdateOptions : never)
1994
+ | (DocumentType extends "MeasuredTemplate" ? MeasuredTemplateDocument.Database.UpdateOptions : never)
1995
+ | (DocumentType extends "Note" ? NoteDocument.Database.UpdateOptions : never)
1996
+ | (DocumentType extends "Region" ? RegionDocument.Database.UpdateOptions : never)
1997
+ | (DocumentType extends "Tile" ? TileDocument.Database.UpdateOptions : never)
1998
+ | (DocumentType extends "Token" ? TokenDocument.Database.UpdateOptions : never)
1999
+ | (DocumentType extends "Wall" ? WallDocument.Database.UpdateOptions : never);
2000
+
2001
+ type DeleteOptionsFor<DocumentType extends Document.Type> =
2002
+ | (DocumentType extends "ActiveEffect" ? ActiveEffect.Database.DeleteOptions : never)
2003
+ | (DocumentType extends "ActorDelta" ? ActorDelta.Database.DeleteOptions : never)
2004
+ | (DocumentType extends "Actor" ? Actor.Database.DeleteOptions : never)
2005
+ | (DocumentType extends "Adventure" ? Adventure.Database.DeleteOptions : never)
2006
+ | (DocumentType extends "Card" ? Card.Database.DeleteOptions : never)
2007
+ | (DocumentType extends "Cards" ? Cards.Database.DeleteOptions : never)
2008
+ | (DocumentType extends "ChatMessage" ? ChatMessage.Database.DeleteOptions : never)
2009
+ | (DocumentType extends "Combat" ? Combat.Database.DeleteOptions : never)
2010
+ | (DocumentType extends "Combatant" ? Combatant.Database.DeleteOptions : never)
2011
+ | (DocumentType extends "CombatantGroup" ? CombatantGroup.Database.DeleteOptions : never)
2012
+ | (DocumentType extends "FogExploration" ? FogExploration.Database.DeleteOptions : never)
2013
+ | (DocumentType extends "Folder" ? Folder.Database.DeleteOptions : never)
2014
+ | (DocumentType extends "Item" ? Item.Database.DeleteOptions : never)
2015
+ | (DocumentType extends "JournalEntryCategory" ? JournalEntryCategory.Database.DeleteOptions : never)
2016
+ | (DocumentType extends "JournalEntryPage" ? JournalEntryPage.Database.DeleteOptions : never)
2017
+ | (DocumentType extends "JournalEntry" ? JournalEntry.Database.DeleteOptions : never)
2018
+ | (DocumentType extends "Macro" ? Macro.Database.DeleteOptions : never)
2019
+ | (DocumentType extends "PlaylistSound" ? PlaylistSound.Database.DeleteOptions : never)
2020
+ | (DocumentType extends "Playlist" ? Playlist.Database.DeleteOptions : never)
2021
+ | (DocumentType extends "RegionBehavior" ? RegionBehavior.Database.DeleteOptions : never)
2022
+ | (DocumentType extends "RollTable" ? RollTable.Database.DeleteOptions : never)
2023
+ | (DocumentType extends "Scene" ? Scene.Database.DeleteOptions : never)
2024
+ | (DocumentType extends "Setting" ? Setting.Database.DeleteOptions : never)
2025
+ | (DocumentType extends "TableResult" ? TableResult.Database.DeleteOptions : never)
2026
+ | (DocumentType extends "User" ? User.Database.DeleteOptions : never)
2027
+ | (DocumentType extends "AmbientLight" ? AmbientLightDocument.Database.DeleteOptions : never)
2028
+ | (DocumentType extends "AmbientSound" ? AmbientSoundDocument.Database.DeleteOptions : never)
2029
+ | (DocumentType extends "Drawing" ? DrawingDocument.Database.DeleteOptions : never)
2030
+ | (DocumentType extends "MeasuredTemplate" ? MeasuredTemplateDocument.Database.DeleteOptions : never)
2031
+ | (DocumentType extends "Note" ? NoteDocument.Database.DeleteOptions : never)
2032
+ | (DocumentType extends "Region" ? RegionDocument.Database.DeleteOptions : never)
2033
+ | (DocumentType extends "Tile" ? TileDocument.Database.DeleteOptions : never)
2034
+ | (DocumentType extends "Token" ? TokenDocument.Database.DeleteOptions : never)
2035
+ | (DocumentType extends "Wall" ? WallDocument.Database.DeleteOptions : never);
2036
+ }
2037
+
2038
+ interface DataFieldShimOptions {
2039
+ /**
2040
+ * A string to log as a compatibility warning on accessing the `oldKey`
2041
+ */
2042
+ warning?: string | null | undefined;
2043
+
2044
+ /**
2045
+ * @remarks Foundry uses `if ("value" in options)` to determine whether to override the default value.
2046
+ */
2047
+ value?: unknown;
1387
2048
  }
1388
2049
 
1389
2050
  /**
1390
- * @deprecated {@link Document.Database.OperationOf | `Document.Database.OperationOf`}
2051
+ * If a `parent` is required for a given Document's creation, its template must pass `NonNullable<X.Parent>` to `CreateDialogContext`
2052
+ *
2053
+ * @internal
1391
2054
  */
1392
- type DatabaseOperationsFor<
1393
- Name extends Document.Type,
1394
- ConcreteOperation extends Document.Database.Operation,
1395
- > = Document.Database.OperationOf<Name, ConcreteOperation>;
2055
+ type ParentContext<Parent extends Document.Any | null> = Parent extends null
2056
+ ? {
2057
+ /** A parent document within which the created Document should belong */
2058
+ parent?: Parent | undefined;
2059
+ }
2060
+ : {
2061
+ /** A parent document within which the created Document should belong */
2062
+ parent: Parent;
2063
+ };
1396
2064
 
1397
- type ConfiguredSheetClassFor<Name extends Document.Type> = MakeConform<
1398
- GetKey<GetKey<CONFIG, Name>, "sheetClass">,
1399
- AnyConstructor
2065
+ /** @internal */
2066
+ type _PossibleSubtypeContext<DocumentName extends Document.Type> =
2067
+ GetKey<Document.MetadataFor<DocumentName>, "hasTypeData"> extends true
2068
+ ? NullishProps<{
2069
+ /**
2070
+ * The sub-type of the document
2071
+ * @remarks Pulls from `CONFIG[documentName].typeLabels?.[type]` if provided. Ignored if falsey.
2072
+ */
2073
+ type: Document.SubTypesOf<DocumentName>;
2074
+ }>
2075
+ : {
2076
+ /** @deprecated This Document type does not support subtypes */
2077
+ type?: never;
2078
+ };
2079
+
2080
+ type DefaultNameContext<DocumentName extends Document.Type, Parent extends Document.Any | null> = InexactPartial<{
2081
+ /**
2082
+ * A compendium pack within which the Document should be created
2083
+ * @remarks Only used to generate the list of existing names to check against when incrementing the index for the `(number)` suffix.
2084
+ * Ignored if falsey, or if `parent` is provided and truthy.
2085
+ */
2086
+ pack: string | null;
2087
+
2088
+ /**
2089
+ * A parent document within which the created Document should belong
2090
+ * @remarks Only used to generate the list of existing names to check against when incrementing the index for the `(number)` suffix.
2091
+ * Ignored if falsey.
2092
+ */
2093
+ parent: Parent | null;
2094
+ }> &
2095
+ _PossibleSubtypeContext<DocumentName>;
2096
+
2097
+ // TODO(LukeAbby): Inline into each document.
2098
+ type CreateDialogData<CreateData extends object> = InexactPartial<{
2099
+ [K in keyof CreateData as Extract<K, "name" | "type" | "folder">]: CreateData[K];
2100
+ }> &
2101
+ Omit<CreateData, "name" | "type" | "folder">;
2102
+
2103
+ /** @internal */
2104
+ type _PossibleSubtypesContext<DocumentName extends Document.Type> =
2105
+ GetKey<Document.MetadataFor<DocumentName>, "hasTypeData"> extends true
2106
+ ? {
2107
+ /** @deprecated This Document type does not support subtypes */
2108
+ types?: never;
2109
+ }
2110
+ : NullishProps<{
2111
+ /**
2112
+ * A restriction the selectable sub-types of the Dialog.
2113
+ * @remarks Only checked if the document has `static TYPES` of length \> 1 (i.e it both `hasTypeData` and has
2114
+ * at least one non-`"base"` type registered). The computed list will always exclude {@link CONST.BASE_DOCUMENT_TYPE | `CONST.BASE_DOCUMENT_TYPE`},
2115
+ * so it is disallowed in this whitelist.
2116
+ */
2117
+ types: Exclude<Document.SubTypesOf<DocumentName>, "base">[];
2118
+ }>;
2119
+
2120
+ /** @deprecated in favor of {@linkcode CreateDialogOptions} */
2121
+ type CreateDialogContext<
2122
+ DocumentName extends Document.Type,
2123
+ Parent extends Document.Any | null,
2124
+ > = InexactPartial<foundry.appv1.api.Dialog.Options> &
2125
+ NullishProps<{
2126
+ /**
2127
+ * A compendium pack within which the Document should be created
2128
+ * @remarks Only checked if `parent` is falsey, and only used to generate the list of folders for the dialog
2129
+ */
2130
+ pack: string;
2131
+ }> &
2132
+ _PossibleSubtypesContext<DocumentName> &
2133
+ ParentContext<Parent>;
2134
+
2135
+ type CreateDialogOptions<DocumentName extends Document.Type> =
2136
+ InexactPartial<foundry.applications.api.DialogV2.PromptConfig> &
2137
+ NullishProps<{
2138
+ /**
2139
+ * A template to use for the dialog contents instead of the default.
2140
+ */
2141
+ template: string;
2142
+
2143
+ /**
2144
+ * Additional render context to provide to the template.
2145
+ */
2146
+ context: AnyObject;
2147
+ }> &
2148
+ _PossibleSubtypesContext<DocumentName>;
2149
+
2150
+ interface FromImportContext<Parent extends Document.Any | null> extends Omit<ConstructionContext<Parent>, "strict"> {
2151
+ /**
2152
+ * Strict validation is enabled by default.
2153
+ * @defaultValue `true`
2154
+ * @remarks Not allowed to be `undefined` as that would produce `false`, not the expected default of `true`, due to being spread
2155
+ * into an object with `strict: true`, then passed to {@link Document.fromSource | `Document.fromSource`}, where the parameter
2156
+ * default is `false`
2157
+ */
2158
+ strict?: boolean | null;
2159
+ }
2160
+
2161
+ type ActionPermission = keyof typeof CONST.DOCUMENT_OWNERSHIP_LEVELS | CONST.DOCUMENT_OWNERSHIP_LEVELS;
2162
+
2163
+ /** @internal */
2164
+ type _TestUserPermissionsOptions = NullishProps<{
2165
+ /**
2166
+ * Require the exact permission level requested?
2167
+ * @defaultValue `false`
2168
+ */
2169
+ exact: boolean;
2170
+ }>;
2171
+
2172
+ interface TestUserPermissionOptions extends _TestUserPermissionsOptions {}
2173
+
2174
+ type CanUserModifyData<Schema extends DataSchema, Action extends "create" | "update" | "delete"> =
2175
+ | (Action extends "create" ? SchemaField.CreateData<Schema> : never)
2176
+ | (Action extends "update" ? SchemaField.UpdateData<Schema> : never)
2177
+ | (Action extends "delete" ? EmptyObject : never);
2178
+
2179
+ /**
2180
+ * @internal
2181
+ */
2182
+ type _GetEmbeddedDocumentOptions = InexactPartial<{
2183
+ /**
2184
+ * Throw an Error if the requested id does not exist. See {@link Collection.get | `Collection#get`}
2185
+ * @defaultValue `false`
2186
+ */
2187
+ strict: boolean;
2188
+
2189
+ /**
2190
+ * Allow retrieving an invalid Embedded Document.
2191
+ * @defaultValue `false`
2192
+ */
2193
+ invalid: boolean;
2194
+ }>;
2195
+
2196
+ interface GetEmbeddedDocumentOptions extends _GetEmbeddedDocumentOptions {}
2197
+
2198
+ /**
2199
+ * Gets the hierarchical fields in the schema. Hardcoded to whatever Foundry fields are hierarchical
2200
+ * as there is no way to access the a static property of a custom fields from an instance.
2201
+ */
2202
+ type HierarchyOf<Schema extends DataSchema> = PickValue<
2203
+ Schema,
2204
+ EmbeddedCollectionField.Any | EmbeddedDocumentField.Any
1400
2205
  >;
1401
2206
 
1402
- type ConfiguredObjectClassFor<Name extends Document.Type> = GetKey<GetKey<CONFIG, Name>, "objectClass">;
2207
+ type PreCreateDescendantDocumentsArgs<
2208
+ Parent extends Document.AnyStored,
2209
+ DirectDescendant extends Document.Any,
2210
+ Embedded extends Document.Metadata.Embedded,
2211
+ > = DirectDescendant extends unknown
2212
+ ? [
2213
+ parent: Parent,
2214
+ collection: Embedded[DirectDescendant["documentName"]],
2215
+ data: Document.CreateDataForName<DirectDescendant["documentName"]>[],
2216
+ options: Document.Database.CreateOptionsFor<DirectDescendant["documentName"]>,
2217
+ userId: string,
2218
+ ]
2219
+ : never;
2220
+
2221
+ type OnCreateDescendantDocumentsArgs<
2222
+ Parent extends Document.AnyStored,
2223
+ DirectDescendant extends Document.Any,
2224
+ Embedded extends Document.Metadata.Embedded,
2225
+ > = DirectDescendant extends unknown
2226
+ ? [
2227
+ parent: Parent,
2228
+ collection: Embedded[DirectDescendant["documentName"]],
2229
+ documents: DirectDescendant[],
2230
+ data: Document.CreateDataForName<DirectDescendant["documentName"]>[],
2231
+ options: Document.Database.CreateOptionsFor<DirectDescendant["documentName"]>,
2232
+ userId: string,
2233
+ ]
2234
+ : never;
2235
+
2236
+ type PreUpdateDescendantDocumentsArgs<
2237
+ Parent extends Document.AnyStored,
2238
+ DirectDescendant extends Document.Any,
2239
+ Embedded extends Document.Metadata.Embedded,
2240
+ > = DirectDescendant extends unknown
2241
+ ? [
2242
+ parent: Parent,
2243
+ collection: Embedded[DirectDescendant["documentName"]],
2244
+ changes: Document.UpdateDataForName<DirectDescendant["documentName"]>[],
2245
+ options: Document.Database.UpdateOptionsFor<DirectDescendant["documentName"]>,
2246
+ userId: string,
2247
+ ]
2248
+ : never;
2249
+
2250
+ type OnUpdateDescendantDocumentsArgs<
2251
+ Parent extends Document.AnyStored,
2252
+ DirectDescendant extends Document.Any,
2253
+ Embedded extends Document.Metadata.Embedded,
2254
+ > = DirectDescendant extends unknown
2255
+ ? [
2256
+ parent: Parent,
2257
+ collection: Embedded[DirectDescendant["documentName"]],
2258
+ documents: DirectDescendant[],
2259
+ changes: Document.UpdateDataForName<DirectDescendant["documentName"]>[],
2260
+ options: Document.Database.UpdateOptionsFor<DirectDescendant["documentName"]>,
2261
+ userId: string,
2262
+ ]
2263
+ : never;
2264
+
2265
+ type PreDeleteDescendantDocumentsArgs<
2266
+ Parent extends Document.AnyStored,
2267
+ DirectDescendant extends Document.Any,
2268
+ Embedded extends Document.Metadata.Embedded,
2269
+ > = DirectDescendant extends unknown
2270
+ ? [
2271
+ parent: Parent,
2272
+ collection: Embedded[DirectDescendant["documentName"]],
2273
+ ids: string[],
2274
+ options: Document.Database.DeleteOptionsFor<DirectDescendant["documentName"]>,
2275
+ userId: string,
2276
+ ]
2277
+ : never;
2278
+
2279
+ type OnDeleteDescendantDocumentsArgs<
2280
+ Parent extends Document.AnyStored,
2281
+ DirectDescendant extends Document.Any,
2282
+ Embedded extends Document.Metadata.Embedded,
2283
+ > = DirectDescendant extends unknown
2284
+ ? [
2285
+ parent: Parent,
2286
+ collection: Embedded[DirectDescendant["documentName"]],
2287
+ documents: DirectDescendant[],
2288
+ ids: string[],
2289
+ options: Document.Database.DeleteOptionsFor<DirectDescendant["documentName"]>,
2290
+ userId: string,
2291
+ ]
2292
+ : never;
2293
+
2294
+ type Clone<This extends Document.Any, Save extends boolean | null | undefined> = Save extends true
2295
+ ? Promise<This>
2296
+ : This;
2297
+
2298
+ /**
2299
+ * The options for `fromDropData`. Foundry never uses these so the interface is currently empty.
2300
+ */
2301
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
2302
+ interface DropDataOptions {}
2303
+
2304
+ type DropDataFor<Name extends Document.Type> = {
2305
+ ActiveEffect: ActiveEffect.DropData;
2306
+ ActorDelta: ActorDelta.DropData;
2307
+ Actor: Actor.DropData;
2308
+ Adventure: Adventure.DropData;
2309
+ Card: Card.DropData;
2310
+ Cards: Cards.DropData;
2311
+ ChatMessage: ChatMessage.DropData;
2312
+ Combat: Combat.DropData;
2313
+ Combatant: Combatant.DropData;
2314
+ CombatantGroup: CombatantGroup.DropData;
2315
+ FogExploration: FogExploration.DropData;
2316
+ Folder: Folder.DropData;
2317
+ Item: Item.DropData;
2318
+ JournalEntryCategory: JournalEntryCategory.DropData;
2319
+ JournalEntryPage: JournalEntryPage.DropData;
2320
+ JournalEntry: JournalEntry.DropData;
2321
+ Macro: Macro.DropData;
2322
+ PlaylistSound: PlaylistSound.DropData;
2323
+ Playlist: Playlist.DropData;
2324
+ RegionBehavior: RegionBehavior.DropData;
2325
+ RollTable: RollTable.DropData;
2326
+ Scene: Scene.DropData;
2327
+ Setting: Setting.DropData;
2328
+ TableResult: TableResult.DropData;
2329
+ User: User.DropData;
2330
+ AmbientLight: AmbientLightDocument.DropData;
2331
+ AmbientSound: AmbientSoundDocument.DropData;
2332
+ Drawing: DrawingDocument.DropData;
2333
+ MeasuredTemplate: MeasuredTemplateDocument.DropData;
2334
+ Note: NoteDocument.DropData;
2335
+ Region: RegionDocument.DropData;
2336
+ Tile: TileDocument.DropData;
2337
+ Token: TokenDocument.DropData;
2338
+ Wall: WallDocument.DropData;
2339
+ }[Name];
2340
+
2341
+ /**
2342
+ * @deprecated This type should not be used directly. Use `StoredForName` as this type does not account for anything declaration merged into `Stored`.
2343
+ */
2344
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
2345
+ type ToConfiguredStored<D extends Document.AnyConstructor> = Stored<ToConfiguredInstance<D>>;
2346
+
2347
+ /**
2348
+ * @deprecated This type should not be used directly. Use `StoredForName` as this type does not account for anything declaration merged into `Stored`.
2349
+ */
2350
+ type Stored<D extends Document.Any> = Document.Internal.Stored<D>;
2351
+
2352
+ /**
2353
+ * @deprecated This type should not be used directly. Use `InvalidForName` as this type does not account for anything declaration merged into `Invalid`.
2354
+ */
2355
+ type Invalid<D extends Document.Any> = Document.Internal.Invalid<D>;
2356
+
2357
+ /**
2358
+ * @deprecated This type should not be used directly. Use `StoredForName` as this type does not account for anything declaration merged into `Stored`.
2359
+ */
2360
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
2361
+ type ToStored<D extends Document.AnyConstructor> = Stored<FixedInstanceType<D>>;
2362
+
2363
+ /**
2364
+ * @deprecated This type should not be used directly. Use `StoredForName` as this type does not account for anything declaration merged into `Stored`.
2365
+ */
2366
+ type ToStoredIf<D extends Document.AnyConstructor, Temporary extends boolean | undefined> = Temporary extends true
2367
+ ? FixedInstanceType<D>
2368
+ : // eslint-disable-next-line @typescript-eslint/no-deprecated
2369
+ ToConfiguredStored<D>;
2370
+
2371
+ /** @deprecated This type currently does not have a replacement as it was deemed too niche. If you have a use case for it let us know. */
2372
+ type Temporary<D extends Document.Any> = D extends Internal.Stored<infer U> ? U : D;
2373
+
2374
+ /**
2375
+ * @deprecated Replaced with {@linkcode Document.SheetClassFor}
2376
+ */
2377
+ export import ConfiguredSheetClassFor = Document.SheetClassFor;
2378
+
2379
+ /**
2380
+ * @deprecated Replaced with {@linkcode Document.ObjectClassFor}
2381
+ */
2382
+ export import ConfiguredObjectClassFor = Document.ObjectClassFor;
1403
2383
 
1404
- type ConfiguredLayerClassFor<Name extends Document.Type> = GetKey<GetKey<CONFIG, Name>, "layerClass">;
2384
+ /**
2385
+ * @deprecated Replaced with {@linkcode Document.LayerClassFor}
2386
+ */
2387
+ export import ConfiguredLayerClassFor = Document.LayerClassFor;
2388
+
2389
+ /**
2390
+ * Returns the type of the constructor data for the given {@linkcode foundry.abstract.Document}.
2391
+ * @deprecated Replaced with {@linkcode CreateDataForName}
2392
+ */
2393
+ type CreateDataFor<T extends Document.Internal.Constructor> = SchemaField.CreateData<
2394
+ T extends { defineSchema: () => infer R extends DataSchema } ? R : never
2395
+ >;
1405
2396
 
2397
+ /**
2398
+ * @deprecated Replaced with {@linkcode UpdateDataForName}
2399
+ */
2400
+ type UpdateDataFor<T extends Document.Internal.Constructor> = SchemaField.UpdateData<
2401
+ T extends { defineSchema: () => infer R extends DataSchema } ? R : never
2402
+ >;
2403
+
2404
+ /**
2405
+ * @deprecated Use `[Document].DropData` instead.
2406
+ */
1406
2407
  type DropData<T extends Document.Any> = T extends { id: string | undefined }
1407
- ? DropData.Data<T> & DropData.UUID
1408
- : DropData.Data<T>;
2408
+ ? // eslint-disable-next-line @typescript-eslint/no-deprecated
2409
+ DropData.Data<T> & DropData.UUID
2410
+ : // eslint-disable-next-line @typescript-eslint/no-deprecated
2411
+ DropData.Data<T>;
1409
2412
 
1410
2413
  namespace DropData {
2414
+ /**
2415
+ * @deprecated - This type is likely too broad to be useful. Deprecated without replacement.
2416
+ */
2417
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1411
2418
  type Any = DropData<any>;
1412
2419
 
2420
+ /**
2421
+ * @deprecated - This type is a part of the drop data which is now gotten through
2422
+ * `[Document].DropData`. Use that instead.
2423
+ */
1413
2424
  interface Data<T extends Document.Any> {
1414
2425
  type: T["documentName"];
1415
2426
  data: T["_source"];
1416
2427
  }
1417
2428
 
2429
+ /**
2430
+ * @deprecated - This type is a part of the drop data which is now gotten through
2431
+ * `[Document].DropData`. Use that instead.
2432
+ */
1418
2433
  interface UUID {
1419
2434
  uuid: string;
1420
2435
  }
1421
2436
  }
1422
2437
 
1423
- namespace Database {
1424
- type Operation = "create" | "update" | "delete";
1425
-
1426
- /* eslint-disable @typescript-eslint/no-empty-object-type */
1427
- interface Operations<
1428
- T extends Document.Internal.Instance.Any = Document.Internal.Instance.Any,
1429
- ExtraCreateOptions extends AnyObject = {},
1430
- ExtraUpdateOptions extends AnyObject = {},
1431
- ExtraDeleteOptions extends AnyObject = {},
1432
- > {
1433
- create: DatabaseCreateOperation<T> & InexactPartial<ExtraCreateOptions>;
1434
- update: DatabaseUpdateOperation<T> & InexactPartial<ExtraUpdateOptions>;
1435
- delete: DatabaseDeleteOperation & InexactPartial<ExtraDeleteOptions>;
1436
- }
1437
- /* eslint-enable @typescript-eslint/no-empty-object-type */
1438
-
1439
- /**
1440
- * This is a helper type that gets the right DatabaseOperation (including the
1441
- * proper options) for a particular Document type.
1442
- */
1443
- type OperationOf<
1444
- T extends Document.Type,
1445
- Operation extends Database.Operation,
1446
- // eslint-disable-next-line @typescript-eslint/no-deprecated
1447
- > = DatabaseOperationMap[T][Operation];
1448
- }
1449
- }
1450
-
1451
- /** @deprecated {@link Document.Database.Operation | `Document.Database.Operation`} */
1452
- export type Operation = Document.Database.Operation;
1453
-
1454
- /* eslint-disable @typescript-eslint/no-empty-object-type */
1455
- /** @deprecated {@link Document.Database.Operations | `Document.Database.Operations`} */
1456
- export type DocumentDatabaseOperations<
1457
- T extends Document.Internal.Instance.Any = Document.Internal.Instance.Any,
1458
- ExtraCreateOptions extends AnyObject = {},
1459
- ExtraUpdateOptions extends AnyObject = {},
1460
- ExtraDeleteOptions extends AnyObject = {},
1461
- > = Document.Database.Operations<T, ExtraCreateOptions, ExtraUpdateOptions, ExtraDeleteOptions>;
1462
- /* eslint-enable @typescript-eslint/no-empty-object-type */
2438
+ /**
2439
+ * @deprecated This type has been deprecated because of the inconsistent casing of "Subtype" instead of "SubType". Use {@linkcode Document.ModuleSubType} instead.
2440
+ */
2441
+ type ModuleSubtype = ModuleSubType;
1463
2442
 
1464
- /**
1465
- * @deprecated if you want to get individual operations see {@link Document.Database.OperationOf | `Document.Database.OperationOf`}
1466
- */
1467
- export interface DatabaseOperationMap {
1468
- ActiveEffect: ActiveEffect.DatabaseOperations;
1469
- Actor: Actor.DatabaseOperations;
1470
- ActorDelta: ActorDelta.DatabaseOperations;
1471
- Adventure: Adventure.DatabaseOperations;
1472
- AmbientLight: AmbientLightDocument.DatabaseOperations;
1473
- AmbientSound: AmbientSoundDocument.DatabaseOperations;
1474
- Card: Card.DatabaseOperations;
1475
- Cards: Cards.DatabaseOperations;
1476
- ChatMessage: ChatMessage.DatabaseOperations;
1477
- Combat: Combat.DatabaseOperations;
1478
- Combatant: Combatant.DatabaseOperations;
1479
- Drawing: DrawingDocument.DatabaseOperations;
1480
- FogExploration: FogExploration.DatabaseOperations;
1481
- Folder: Folder.DatabaseOperations;
1482
- Item: Item.DatabaseOperations;
1483
- JournalEntry: JournalEntry.DatabaseOperations;
1484
- JournalEntryPage: JournalEntryPage.DatabaseOperations;
1485
- Macro: Macro.DatabaseOperations;
1486
- MeasuredTemplate: MeasuredTemplateDocument.DatabaseOperations;
1487
- Note: NoteDocument.DatabaseOperations;
1488
- Playlist: Playlist.DatabaseOperations;
1489
- PlaylistSound: PlaylistSound.DatabaseOperations;
1490
- Region: ActiveEffect.DatabaseOperations;
1491
- RegionBehavior: ActiveEffect.DatabaseOperations;
1492
- RollTable: RollTable.DatabaseOperations;
1493
- Scene: Scene.DatabaseOperations;
1494
- Setting: Setting.DatabaseOperations;
1495
- TableResult: TableResult.DatabaseOperations;
1496
- Tile: TileDocument.DatabaseOperations;
1497
- Token: TokenDocument.DatabaseOperations;
1498
- User: User.DatabaseOperations;
1499
- Wall: WallDocument.DatabaseOperations;
2443
+ /**
2444
+ * @deprecated This type was used to simplify the logic behind `ConstructorArgs` but that's now being deprecated.
2445
+ */
2446
+ type ConstructorParameters<CreateData extends object | undefined, Parent extends Document.Any | null> = [
2447
+ data?: CreateData,
2448
+ context?: Document.ConstructionContext<Parent>,
2449
+ ];
1500
2450
  }