@league-of-foundry-developers/foundry-vtt-types 13.340.0 → 13.340.1

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 (543) hide show
  1. package/README.md +6 -3
  2. package/package.json +40 -18
  3. package/src/configuration/configuration.d.mts +24 -23
  4. package/src/configuration/documents.d.mts +295 -0
  5. package/src/configuration/globals.d.mts +8 -2
  6. package/src/configuration/index.d.mts +1 -0
  7. package/src/foundry/client/apps/app.d.mts +121 -119
  8. package/src/foundry/client/apps/av/av-config.d.mts +13 -8
  9. package/src/foundry/client/apps/av/cameras.d.mts +11 -11
  10. package/src/foundry/client/apps/dice/dice-config.d.mts +22 -8
  11. package/src/foundry/client/apps/form.d.mts +112 -94
  12. package/src/foundry/client/apps/forms/actor.d.mts +22 -12
  13. package/src/foundry/client/apps/forms/adventure-exporter.d.mts +13 -8
  14. package/src/foundry/client/apps/forms/adventure-importer.d.mts +15 -7
  15. package/src/foundry/client/apps/forms/base-sheet.d.mts +14 -7
  16. package/src/foundry/client/apps/forms/card-config.d.mts +17 -9
  17. package/src/foundry/client/apps/forms/cards-config.d.mts +13 -14
  18. package/src/foundry/client/apps/forms/combat-config.d.mts +7 -7
  19. package/src/foundry/client/apps/forms/combatant-config.d.mts +4 -4
  20. package/src/foundry/client/apps/forms/default-sheets-config.d.mts +1 -1
  21. package/src/foundry/client/apps/forms/effect-config.d.mts +6 -6
  22. package/src/foundry/client/apps/forms/folder-config.d.mts +5 -5
  23. package/src/foundry/client/apps/forms/fonts.d.mts +42 -35
  24. package/src/foundry/client/apps/forms/grid-config.d.mts +11 -11
  25. package/src/foundry/client/apps/forms/image-popout.d.mts +28 -22
  26. package/src/foundry/client/apps/forms/item.d.mts +6 -6
  27. package/src/foundry/client/apps/forms/journal-page-sheet.d.mts +17 -15
  28. package/src/foundry/client/apps/forms/journal-sheet.d.mts +46 -37
  29. package/src/foundry/client/apps/forms/macro-config.d.mts +6 -6
  30. package/src/foundry/client/apps/forms/measure-template.d.mts +8 -8
  31. package/src/foundry/client/apps/forms/ownership.d.mts +5 -5
  32. package/src/foundry/client/apps/forms/playlist-config.d.mts +7 -9
  33. package/src/foundry/client/apps/forms/playlist-sound-config.d.mts +6 -6
  34. package/src/foundry/client/apps/forms/roll-table-config.d.mts +9 -10
  35. package/src/foundry/client/apps/forms/scene-config.d.mts +39 -39
  36. package/src/foundry/client/apps/forms/sheet-config.d.mts +8 -8
  37. package/src/foundry/client/apps/forms/user-config.d.mts +11 -11
  38. package/src/foundry/client/apps/hud/chatbubble.d.mts +14 -9
  39. package/src/foundry/client/apps/hud/container.d.mts +3 -3
  40. package/src/foundry/client/apps/hud/controls.d.mts +124 -84
  41. package/src/foundry/client/apps/hud/hotbar.d.mts +12 -12
  42. package/src/foundry/client/apps/hud/hud.d.mts +4 -4
  43. package/src/foundry/client/apps/hud/menu.d.mts +6 -6
  44. package/src/foundry/client/apps/hud/navigation.d.mts +11 -11
  45. package/src/foundry/client/apps/hud/pause.d.mts +7 -7
  46. package/src/foundry/client/apps/hud/players.d.mts +11 -11
  47. package/src/foundry/client/apps/i18n.d.mts +31 -27
  48. package/src/foundry/client/apps/placeables/drawing-config.d.mts +41 -33
  49. package/src/foundry/client/apps/placeables/drawing-hud.d.mts +4 -4
  50. package/src/foundry/client/apps/placeables/index.d.mts +0 -2
  51. package/src/foundry/client/apps/placeables/note-config.d.mts +27 -17
  52. package/src/foundry/client/apps/placeables/tile-config.d.mts +23 -10
  53. package/src/foundry/client/apps/placeables/tile-hud.d.mts +8 -8
  54. package/src/foundry/client/apps/placeables/token-config.d.mts +84 -63
  55. package/src/foundry/client/apps/placeables/token-hud.d.mts +10 -10
  56. package/src/foundry/client/apps/placeables/wall-config.d.mts +19 -16
  57. package/src/foundry/client/apps/sidebar/apps/chat-popout.d.mts +5 -5
  58. package/src/foundry/client/apps/sidebar/apps/client-settings.d.mts +2 -2
  59. package/src/foundry/client/apps/sidebar/apps/compendium.d.mts +13 -10
  60. package/src/foundry/client/apps/sidebar/apps/invitation-links.d.mts +3 -3
  61. package/src/foundry/client/apps/sidebar/apps/keybindings-config.d.mts +1 -1
  62. package/src/foundry/client/apps/sidebar/apps/module-management.d.mts +6 -6
  63. package/src/foundry/client/apps/sidebar/apps/permission-config.d.mts +6 -6
  64. package/src/foundry/client/apps/sidebar/apps/support-details.d.mts +33 -28
  65. package/src/foundry/client/apps/sidebar/apps/tours-management.d.mts +1 -1
  66. package/src/foundry/client/apps/sidebar/apps/world-config.d.mts +12 -9
  67. package/src/foundry/client/apps/sidebar/directory-tab-mixin.d.mts +40 -32
  68. package/src/foundry/client/apps/sidebar/document-directory.d.mts +44 -37
  69. package/src/foundry/client/apps/sidebar/package-configuration.d.mts +3 -3
  70. package/src/foundry/client/apps/sidebar/sidebar-tab.d.mts +3 -3
  71. package/src/foundry/client/apps/sidebar/sidebar.d.mts +7 -7
  72. package/src/foundry/client/apps/sidebar/tabs/actors-directory.d.mts +4 -4
  73. package/src/foundry/client/apps/sidebar/tabs/cards-directory.d.mts +4 -4
  74. package/src/foundry/client/apps/sidebar/tabs/chat-log.d.mts +34 -29
  75. package/src/foundry/client/apps/sidebar/tabs/combat-tracker.d.mts +15 -15
  76. package/src/foundry/client/apps/sidebar/tabs/compendium-directory.d.mts +21 -12
  77. package/src/foundry/client/apps/sidebar/tabs/items-directory.d.mts +4 -4
  78. package/src/foundry/client/apps/sidebar/tabs/journal-directory.d.mts +4 -4
  79. package/src/foundry/client/apps/sidebar/tabs/macros-directory.d.mts +8 -8
  80. package/src/foundry/client/apps/sidebar/tabs/playlists-directory.d.mts +21 -21
  81. package/src/foundry/client/apps/sidebar/tabs/roll-table-directory.d.mts +4 -4
  82. package/src/foundry/client/apps/sidebar/tabs/scenes-directory.d.mts +6 -6
  83. package/src/foundry/client/apps/sidebar/tabs/settings.d.mts +12 -12
  84. package/src/foundry/client/apps/templates.d.mts +2 -2
  85. package/src/foundry/client/av/clients/simplepeer.d.mts +4 -4
  86. package/src/foundry/client/av/settings.d.mts +16 -13
  87. package/src/foundry/client/config.d.mts +1982 -1823
  88. package/src/foundry/client/core/document-index.d.mts +12 -4
  89. package/src/foundry/client/core/hooks.d.mts +0 -2
  90. package/src/foundry/client/core/image.d.mts +13 -11
  91. package/src/foundry/client/core/issues.d.mts +11 -6
  92. package/src/foundry/client/core/keybindings.d.mts +3 -3
  93. package/src/foundry/client/core/nue.d.mts +1 -1
  94. package/src/foundry/client/core/packages.d.mts +393 -63
  95. package/src/foundry/client/core/settings.d.mts +34 -12
  96. package/src/foundry/client/core/socket.d.mts +2 -2
  97. package/src/foundry/client/core/sorting.d.mts +6 -6
  98. package/src/foundry/client/core/time.d.mts +6 -3
  99. package/src/foundry/client/core/tooltip.d.mts +1 -1
  100. package/src/foundry/client/core/tour.d.mts +58 -49
  101. package/src/foundry/client/core/tours.d.mts +1 -1
  102. package/src/foundry/client/core/utils.d.mts +3 -3
  103. package/src/foundry/client/core/workers.d.mts +24 -17
  104. package/src/foundry/client/data/abstract/canvas-document.d.mts +9 -15
  105. package/src/foundry/client/data/abstract/client-document.d.mts +133 -172
  106. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +14 -36
  107. package/src/foundry/client/data/abstract/document-collection.d.mts +89 -65
  108. package/src/foundry/client/data/abstract/world-collection.d.mts +47 -53
  109. package/src/foundry/client/data/collections/actors.d.mts +24 -31
  110. package/src/foundry/client/data/collections/cards.d.mts +10 -6
  111. package/src/foundry/client/data/collections/combats.d.mts +12 -8
  112. package/src/foundry/client/data/collections/compendium-collection.d.mts +79 -66
  113. package/src/foundry/client/data/collections/compendium-folders.d.mts +6 -6
  114. package/src/foundry/client/data/collections/compendium-packs.d.mts +4 -4
  115. package/src/foundry/client/data/collections/fog.d.mts +10 -6
  116. package/src/foundry/client/data/collections/folder.d.mts +15 -10
  117. package/src/foundry/client/data/collections/items.d.mts +11 -7
  118. package/src/foundry/client/data/collections/journal.d.mts +16 -10
  119. package/src/foundry/client/data/collections/macros.d.mts +15 -22
  120. package/src/foundry/client/data/collections/messages.d.mts +14 -10
  121. package/src/foundry/client/data/collections/playlists.d.mts +12 -9
  122. package/src/foundry/client/data/collections/scenes.d.mts +19 -31
  123. package/src/foundry/client/data/collections/settings.d.mts +10 -6
  124. package/src/foundry/client/data/collections/tables.d.mts +11 -7
  125. package/src/foundry/client/data/collections/users.d.mts +14 -11
  126. package/src/foundry/client/data/documents/active-effect.d.mts +652 -88
  127. package/src/foundry/client/data/documents/actor-delta.d.mts +672 -28
  128. package/src/foundry/client/data/documents/actor.d.mts +722 -60
  129. package/src/foundry/client/data/documents/adventure.d.mts +482 -49
  130. package/src/foundry/client/data/documents/ambient-light.d.mts +426 -21
  131. package/src/foundry/client/data/documents/ambient-sound.d.mts +474 -15
  132. package/src/foundry/client/data/documents/card.d.mts +570 -39
  133. package/src/foundry/client/data/documents/cards.d.mts +742 -78
  134. package/src/foundry/client/data/documents/chat-message.d.mts +578 -45
  135. package/src/foundry/client/data/documents/combat.d.mts +701 -71
  136. package/src/foundry/client/data/documents/combatant.d.mts +510 -28
  137. package/src/foundry/client/data/documents/drawing.d.mts +543 -16
  138. package/src/foundry/client/data/documents/fog-exploration.d.mts +413 -27
  139. package/src/foundry/client/data/documents/folder.d.mts +461 -40
  140. package/src/foundry/client/data/documents/item.d.mts +679 -25
  141. package/src/foundry/client/data/documents/journal-entry-page.d.mts +587 -21
  142. package/src/foundry/client/data/documents/journal-entry.d.mts +621 -20
  143. package/src/foundry/client/data/documents/macro.d.mts +530 -25
  144. package/src/foundry/client/data/documents/measured-template.d.mts +480 -16
  145. package/src/foundry/client/data/documents/note.d.mts +495 -18
  146. package/src/foundry/client/data/documents/playlist-sound.d.mts +429 -27
  147. package/src/foundry/client/data/documents/playlist.d.mts +666 -75
  148. package/src/foundry/client/data/documents/region-behavior.d.mts +468 -38
  149. package/src/foundry/client/data/documents/region.d.mts +661 -35
  150. package/src/foundry/client/data/documents/scene.d.mts +986 -149
  151. package/src/foundry/client/data/documents/setting.d.mts +397 -15
  152. package/src/foundry/client/data/documents/table-result.d.mts +479 -17
  153. package/src/foundry/client/data/documents/table.d.mts +663 -80
  154. package/src/foundry/client/data/documents/tile.d.mts +502 -16
  155. package/src/foundry/client/data/documents/token.d.mts +1114 -90
  156. package/src/foundry/client/data/documents/user.d.mts +495 -27
  157. package/src/foundry/client/data/documents/wall.d.mts +550 -15
  158. package/src/foundry/client/game.d.mts +58 -92
  159. package/src/foundry/client/head.d.mts +5 -6
  160. package/src/foundry/client/hooks.d.mts +237 -221
  161. package/src/foundry/client/pixi/board.d.mts +95 -89
  162. package/src/foundry/client/pixi/core/containers/base-canvas-group.d.mts +6 -5
  163. package/src/foundry/client/pixi/core/containers/cached-container.d.mts +5 -5
  164. package/src/foundry/client/pixi/core/containers/full-canvas-container.d.mts +2 -2
  165. package/src/foundry/client/pixi/core/containers/point-source-mesh.d.mts +3 -3
  166. package/src/foundry/client/pixi/core/containers/quad-mesh.d.mts +3 -3
  167. package/src/foundry/client/pixi/core/containers/quadtree.d.mts +23 -21
  168. package/src/foundry/client/pixi/core/containers/sprite-mesh.d.mts +5 -5
  169. package/src/foundry/client/pixi/core/containers/unbound-container.d.mts +5 -5
  170. package/src/foundry/client/pixi/core/interaction/canvas-animation.d.mts +57 -51
  171. package/src/foundry/client/pixi/core/interaction/control-icon.d.mts +3 -3
  172. package/src/foundry/client/pixi/core/interaction/mouse-handler.d.mts +7 -7
  173. package/src/foundry/client/pixi/core/interaction/ping.d.mts +19 -11
  174. package/src/foundry/client/pixi/core/interaction/pings/chevron.d.mts +7 -2
  175. package/src/foundry/client/pixi/core/interaction/pings/pulse.d.mts +29 -23
  176. package/src/foundry/client/pixi/core/interaction/render-flags.d.mts +83 -38
  177. package/src/foundry/client/pixi/core/interaction/resize-handle.d.mts +3 -3
  178. package/src/foundry/client/pixi/core/interaction/targets.d.mts +9 -9
  179. package/src/foundry/client/pixi/core/loader.d.mts +8 -8
  180. package/src/foundry/client/pixi/core/shapes/limited-angle-polygon.d.mts +9 -4
  181. package/src/foundry/client/pixi/core/shapes/polygon-mesher.d.mts +3 -3
  182. package/src/foundry/client/pixi/core/shapes/precise-text.d.mts +3 -3
  183. package/src/foundry/client/pixi/core/shapes/ray.d.mts +23 -17
  184. package/src/foundry/client/pixi/core/shapes/source-polygon.d.mts +19 -14
  185. package/src/foundry/client/pixi/extensions/circle.d.mts +1 -1
  186. package/src/foundry/client/pixi/extensions/observable-transform.d.mts +3 -3
  187. package/src/foundry/client/pixi/groups/effects.d.mts +4 -4
  188. package/src/foundry/client/pixi/groups/environment.d.mts +5 -5
  189. package/src/foundry/client/pixi/groups/hidden.d.mts +3 -3
  190. package/src/foundry/client/pixi/groups/interface.d.mts +6 -6
  191. package/src/foundry/client/pixi/groups/overlay.d.mts +3 -3
  192. package/src/foundry/client/pixi/groups/primary.d.mts +11 -11
  193. package/src/foundry/client/pixi/groups/rendered.d.mts +3 -3
  194. package/src/foundry/client/pixi/layers/base/canvas-layer.d.mts +3 -3
  195. package/src/foundry/client/pixi/layers/base/interaction-layer.d.mts +13 -13
  196. package/src/foundry/client/pixi/layers/base/placeables-layer.d.mts +279 -233
  197. package/src/foundry/client/pixi/layers/controls/cursor.d.mts +17 -8
  198. package/src/foundry/client/pixi/layers/controls/door.d.mts +26 -14
  199. package/src/foundry/client/pixi/layers/controls/layer.d.mts +89 -79
  200. package/src/foundry/client/pixi/layers/controls/ruler.d.mts +121 -96
  201. package/src/foundry/client/pixi/layers/effects/background-effects.d.mts +4 -5
  202. package/src/foundry/client/pixi/layers/effects/coloration-effects.d.mts +6 -4
  203. package/src/foundry/client/pixi/layers/effects/darkness-effects.d.mts +7 -4
  204. package/src/foundry/client/pixi/layers/effects/illumination-effects.d.mts +19 -16
  205. package/src/foundry/client/pixi/layers/effects/visibility.d.mts +101 -84
  206. package/src/foundry/client/pixi/layers/effects/weather/particles/effect.d.mts +13 -4
  207. package/src/foundry/client/pixi/layers/effects/weather/particles/leaves.d.mts +31 -2
  208. package/src/foundry/client/pixi/layers/effects/weather-effects.d.mts +134 -59
  209. package/src/foundry/client/pixi/layers/grid/highlight.d.mts +13 -3
  210. package/src/foundry/client/pixi/layers/grid/layer.d.mts +89 -87
  211. package/src/foundry/client/pixi/layers/grid/mesh.d.mts +36 -15
  212. package/src/foundry/client/pixi/layers/masks/depth.d.mts +3 -3
  213. package/src/foundry/client/pixi/layers/masks/occlusion.d.mts +4 -4
  214. package/src/foundry/client/pixi/layers/masks/vision.d.mts +6 -6
  215. package/src/foundry/client/pixi/layers/placeables/drawings.d.mts +15 -11
  216. package/src/foundry/client/pixi/layers/placeables/lighting.d.mts +11 -10
  217. package/src/foundry/client/pixi/layers/placeables/notes.d.mts +47 -28
  218. package/src/foundry/client/pixi/layers/placeables/regions.d.mts +25 -12
  219. package/src/foundry/client/pixi/layers/placeables/sounds.d.mts +81 -63
  220. package/src/foundry/client/pixi/layers/placeables/templates.d.mts +10 -11
  221. package/src/foundry/client/pixi/layers/placeables/tiles.d.mts +28 -17
  222. package/src/foundry/client/pixi/layers/placeables/tokens.d.mts +67 -46
  223. package/src/foundry/client/pixi/layers/placeables/walls.d.mts +50 -51
  224. package/src/foundry/client/pixi/perception/clockwise-sweep.d.mts +22 -16
  225. package/src/foundry/client/pixi/perception/detection-mode.d.mts +123 -51
  226. package/src/foundry/client/pixi/perception/fog.d.mts +34 -19
  227. package/src/foundry/client/pixi/perception/perception-manager.d.mts +137 -137
  228. package/src/foundry/client/pixi/perception/vision-mode.d.mts +92 -67
  229. package/src/foundry/client/pixi/perception/weiler-atherton-clipping.d.mts +3 -3
  230. package/src/foundry/client/pixi/placeable.d.mts +241 -146
  231. package/src/foundry/client/pixi/placeables/drawing.d.mts +260 -134
  232. package/src/foundry/client/pixi/placeables/light.d.mts +204 -66
  233. package/src/foundry/client/pixi/placeables/note.d.mts +150 -55
  234. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-canvas-object.d.mts +7 -6
  235. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-graphics.d.mts +3 -3
  236. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-occludable-object.d.mts +2 -2
  237. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-sprite-mesh.d.mts +4 -4
  238. package/src/foundry/client/pixi/placeables/region.d.mts +219 -110
  239. package/src/foundry/client/pixi/placeables/sound.d.mts +211 -68
  240. package/src/foundry/client/pixi/placeables/template.d.mts +186 -100
  241. package/src/foundry/client/pixi/placeables/tile.d.mts +211 -142
  242. package/src/foundry/client/pixi/placeables/token.d.mts +911 -568
  243. package/src/foundry/client/pixi/placeables/wall.d.mts +253 -130
  244. package/src/foundry/client/pixi/webgl/extensions/batch-renderer.d.mts +27 -5
  245. package/src/foundry/client/pixi/webgl/extensions/batch-shader-generator.d.mts +3 -3
  246. package/src/foundry/client/pixi/webgl/helpers/framebuffer-snapshot.d.mts +3 -3
  247. package/src/foundry/client/pixi/webgl/helpers/smooth-noise.d.mts +13 -5
  248. package/src/foundry/client/pixi/webgl/helpers/texture-extractor.d.mts +6 -6
  249. package/src/foundry/client/pixi/webgl/shaders/base-shader-mixin.d.mts +2 -2
  250. package/src/foundry/client/pixi/webgl/shaders/base-shader.d.mts +5 -5
  251. package/src/foundry/client/pixi/webgl/shaders/filters/base-filter.d.mts +4 -4
  252. package/src/foundry/client/pixi/webgl/shaders/filters/base-mask-filter.d.mts +3 -3
  253. package/src/foundry/client/pixi/webgl/shaders/filters/blur.d.mts +5 -5
  254. package/src/foundry/client/pixi/webgl/shaders/filters/effects-masking.d.mts +6 -3
  255. package/src/foundry/client/pixi/webgl/shaders/filters/environment.d.mts +3 -3
  256. package/src/foundry/client/pixi/webgl/shaders/filters/glow-overlay.d.mts +4 -4
  257. package/src/foundry/client/pixi/webgl/shaders/filters/invisibility.d.mts +3 -3
  258. package/src/foundry/client/pixi/webgl/shaders/filters/outline-overlay.d.mts +4 -4
  259. package/src/foundry/client/pixi/webgl/shaders/filters/transition.d.mts +6 -6
  260. package/src/foundry/client/pixi/webgl/shaders/filters/visibility.d.mts +8 -5
  261. package/src/foundry/client/pixi/webgl/shaders/filters/vision-mask-filter.d.mts +3 -3
  262. package/src/foundry/client/pixi/webgl/shaders/filters/void.d.mts +3 -3
  263. package/src/foundry/client/pixi/webgl/shaders/filters/weather-occlusion-masks.d.mts +4 -4
  264. package/src/foundry/client/pixi/webgl/shaders/fragment-channel-mixin.d.mts +1 -1
  265. package/src/foundry/client/pixi/webgl/shaders/grid/grid.d.mts +4 -4
  266. package/src/foundry/client/pixi/webgl/shaders/lighting/background-lighting.d.mts +3 -3
  267. package/src/foundry/client/pixi/webgl/shaders/lighting/base-lighting.d.mts +3 -3
  268. package/src/foundry/client/pixi/webgl/shaders/lighting/coloration-lighting.d.mts +3 -3
  269. package/src/foundry/client/pixi/webgl/shaders/lighting/darkness-lighting.d.mts +3 -3
  270. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/bewitching-wave.d.mts +5 -5
  271. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/black-hole.d.mts +3 -3
  272. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/chroma.d.mts +3 -3
  273. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/emanation.d.mts +3 -3
  274. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/energy-field.d.mts +3 -3
  275. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fairy-light.d.mts +6 -6
  276. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/flame.d.mts +5 -5
  277. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fog.d.mts +3 -3
  278. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/force-grid.d.mts +3 -3
  279. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/ghost-light.d.mts +5 -5
  280. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/hexa-dome.d.mts +3 -3
  281. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/light-dome.d.mts +3 -3
  282. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/magical-gloom.d.mts +3 -3
  283. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/pulse.d.mts +5 -5
  284. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/radial-rainbow.d.mts +3 -3
  285. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/revolving-light.d.mts +3 -3
  286. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/roiling-mass.d.mts +3 -3
  287. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/siren-light.d.mts +5 -5
  288. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/smoke-patch.d.mts +6 -5
  289. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/star-light.d.mts +3 -3
  290. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/sunburst.d.mts +5 -5
  291. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/swirling-rainbow.d.mts +4 -3
  292. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/torch.d.mts +5 -5
  293. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/vortex.d.mts +5 -5
  294. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/wave.d.mts +5 -5
  295. package/src/foundry/client/pixi/webgl/shaders/lighting/illumination-lighting.d.mts +3 -3
  296. package/src/foundry/client/pixi/webgl/shaders/region/adjust-darkness-level.d.mts +7 -7
  297. package/src/foundry/client/pixi/webgl/shaders/region/base.d.mts +4 -4
  298. package/src/foundry/client/pixi/webgl/shaders/region/highlight.d.mts +3 -3
  299. package/src/foundry/client/pixi/webgl/shaders/samplers/base-sampler.d.mts +4 -4
  300. package/src/foundry/client/pixi/webgl/shaders/samplers/baseline-illumination.d.mts +3 -3
  301. package/src/foundry/client/pixi/webgl/shaders/samplers/color-adjustment.d.mts +5 -5
  302. package/src/foundry/client/pixi/webgl/shaders/samplers/depth.d.mts +3 -3
  303. package/src/foundry/client/pixi/webgl/shaders/samplers/fog-of-war.d.mts +3 -3
  304. package/src/foundry/client/pixi/webgl/shaders/samplers/occlusion.d.mts +3 -3
  305. package/src/foundry/client/pixi/webgl/shaders/samplers/primary.d.mts +4 -4
  306. package/src/foundry/client/pixi/webgl/shaders/samplers/token-ring.d.mts +4 -6
  307. package/src/foundry/client/pixi/webgl/shaders/vision/background-vision.d.mts +3 -3
  308. package/src/foundry/client/pixi/webgl/shaders/vision/base-vision.d.mts +3 -3
  309. package/src/foundry/client/pixi/webgl/shaders/vision/coloration-vision.d.mts +3 -3
  310. package/src/foundry/client/pixi/webgl/shaders/vision/effects/amplification.d.mts +3 -3
  311. package/src/foundry/client/pixi/webgl/shaders/vision/effects/wave.d.mts +5 -5
  312. package/src/foundry/client/pixi/webgl/shaders/vision/illumination-vision.d.mts +3 -3
  313. package/src/foundry/client/pixi/webgl/shaders/weather/base-weather.d.mts +14 -15
  314. package/src/foundry/client/pixi/webgl/shaders/weather/effect.d.mts +20 -27
  315. package/src/foundry/client/pixi/webgl/shaders/weather/fog.d.mts +5 -5
  316. package/src/foundry/client/pixi/webgl/shaders/weather/rain.d.mts +5 -5
  317. package/src/foundry/client/pixi/webgl/shaders/weather/snow.d.mts +5 -5
  318. package/src/foundry/client/pixi/workers/texture-worker.d.mts +5 -5
  319. package/src/foundry/client/tours/setup-tour.d.mts +15 -10
  320. package/src/foundry/client/ui/dialog.d.mts +3 -3
  321. package/src/foundry/client/ui/dragdrop.d.mts +33 -27
  322. package/src/foundry/client/ui/editor.d.mts +29 -21
  323. package/src/foundry/client/ui/filepicker.d.mts +42 -37
  324. package/src/foundry/client/ui/filter.d.mts +60 -48
  325. package/src/foundry/client/ui/forms.d.mts +22 -22
  326. package/src/foundry/client/ui/prosemirror.d.mts +15 -7
  327. package/src/foundry/client/ui/secrets.d.mts +43 -28
  328. package/src/foundry/client/ui/tabs.d.mts +40 -33
  329. package/src/foundry/client-esm/_module.d.mts +5 -5
  330. package/src/foundry/client-esm/_types.d.mts +2 -1
  331. package/src/foundry/client-esm/applications/api/application.d.mts +93 -31
  332. package/src/foundry/client-esm/applications/api/dialog.d.mts +23 -23
  333. package/src/foundry/client-esm/applications/api/document-sheet.d.mts +85 -32
  334. package/src/foundry/client-esm/applications/api/handlebars-application.d.mts +1 -1
  335. package/src/foundry/client-esm/applications/apps/av/camera-popout.d.mts +1 -1
  336. package/src/foundry/client-esm/applications/apps/av/cameras.d.mts +2 -2
  337. package/src/foundry/client-esm/applications/apps/compendium-art-config.d.mts +4 -5
  338. package/src/foundry/client-esm/applications/apps/file-picker.d.mts +2 -2
  339. package/src/foundry/client-esm/applications/apps/grid-config.d.mts +3 -3
  340. package/src/foundry/client-esm/applications/apps/image-popout.d.mts +1 -1
  341. package/src/foundry/client-esm/applications/apps/permission-config.d.mts +1 -1
  342. package/src/foundry/client-esm/applications/dice/roll-resolver.d.mts +4 -4
  343. package/src/foundry/client-esm/applications/elements/file-picker.d.mts +1 -1
  344. package/src/foundry/client-esm/applications/elements/prosemirror-editor.d.mts +1 -1
  345. package/src/foundry/client-esm/applications/hud/drawing-hud.d.mts +1 -1
  346. package/src/foundry/client-esm/applications/hud/tile-hud.d.mts +1 -1
  347. package/src/foundry/client-esm/applications/hud/token-hud.d.mts +1 -1
  348. package/src/foundry/client-esm/applications/sheets/active-effect-config.d.mts +3 -3
  349. package/src/foundry/client-esm/applications/sheets/actor-sheet.d.mts +2 -2
  350. package/src/foundry/client-esm/applications/sheets/adventure-exporter.d.mts +3 -3
  351. package/src/foundry/client-esm/applications/sheets/adventure-importer.d.mts +3 -3
  352. package/src/foundry/client-esm/applications/sheets/ambient-light-config.d.mts +5 -5
  353. package/src/foundry/client-esm/applications/sheets/ambient-sound-config.d.mts +4 -4
  354. package/src/foundry/client-esm/applications/sheets/card-config.d.mts +3 -3
  355. package/src/foundry/client-esm/applications/sheets/cards-config.d.mts +2 -2
  356. package/src/foundry/client-esm/applications/sheets/combatant-config.d.mts +3 -3
  357. package/src/foundry/client-esm/applications/sheets/drawing-config.d.mts +3 -3
  358. package/src/foundry/client-esm/applications/sheets/folder-config.d.mts +3 -3
  359. package/src/foundry/client-esm/applications/sheets/item-sheet.d.mts +2 -2
  360. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-category-config.d.mts +3 -3
  361. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-sheet.d.mts +3 -3
  362. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-sheet.d.mts +3 -3
  363. package/src/foundry/client-esm/applications/sheets/macro-config.d.mts +3 -3
  364. package/src/foundry/client-esm/applications/sheets/note-config.d.mts +3 -3
  365. package/src/foundry/client-esm/applications/sheets/playlist-config.d.mts +3 -3
  366. package/src/foundry/client-esm/applications/sheets/playlist-sound-config.d.mts +3 -3
  367. package/src/foundry/client-esm/applications/sheets/region-behavior-config.d.mts +3 -3
  368. package/src/foundry/client-esm/applications/sheets/region-config.d.mts +3 -3
  369. package/src/foundry/client-esm/applications/sheets/roll-table-config.d.mts +3 -3
  370. package/src/foundry/client-esm/applications/sheets/roll-table-sheet.d.mts +3 -3
  371. package/src/foundry/client-esm/applications/sheets/scene-config.d.mts +3 -3
  372. package/src/foundry/client-esm/applications/sheets/table-result-config.d.mts +3 -3
  373. package/src/foundry/client-esm/applications/sheets/template-config.d.mts +3 -3
  374. package/src/foundry/client-esm/applications/sheets/tile-config.d.mts +3 -3
  375. package/src/foundry/client-esm/applications/sheets/token/mixin.d.mts +1 -0
  376. package/src/foundry/client-esm/applications/sheets/token/token-config.d.mts +3 -3
  377. package/src/foundry/client-esm/applications/sheets/user-config.d.mts +4 -4
  378. package/src/foundry/client-esm/applications/sheets/wall-config.d.mts +3 -3
  379. package/src/foundry/client-esm/applications/sidebar/apps/chat-popout.d.mts +1 -1
  380. package/src/foundry/client-esm/applications/sidebar/sidebar-tab.d.mts +2 -2
  381. package/src/foundry/client-esm/applications/sidebar/tabs/actor-directory.d.mts +1 -1
  382. package/src/foundry/client-esm/applications/sidebar/tabs/cards-directory.d.mts +1 -1
  383. package/src/foundry/client-esm/applications/sidebar/tabs/combat-tracker.d.mts +242 -1
  384. package/src/foundry/client-esm/applications/sidebar/tabs/item-directory.d.mts +1 -1
  385. package/src/foundry/client-esm/applications/sidebar/tabs/journal-directory.d.mts +1 -1
  386. package/src/foundry/client-esm/applications/sidebar/tabs/macro-directory.d.mts +1 -1
  387. package/src/foundry/client-esm/applications/sidebar/tabs/playlist-directory.d.mts +1 -1
  388. package/src/foundry/client-esm/applications/sidebar/tabs/roll-table-directory.d.mts +1 -1
  389. package/src/foundry/client-esm/applications/sidebar/tabs/scene-directory.d.mts +1 -1
  390. package/src/foundry/client-esm/applications/ui/region-legend.d.mts +2 -2
  391. package/src/foundry/client-esm/applications/ux/context-menu.d.mts +56 -36
  392. package/src/foundry/client-esm/audio/_types.d.mts +2 -0
  393. package/src/foundry/client-esm/audio/biquad.d.mts +76 -26
  394. package/src/foundry/client-esm/audio/cache.d.mts +31 -20
  395. package/src/foundry/client-esm/audio/convolver.d.mts +47 -25
  396. package/src/foundry/client-esm/audio/helper.d.mts +124 -80
  397. package/src/foundry/client-esm/audio/sound.d.mts +202 -97
  398. package/src/foundry/client-esm/audio/timeout.d.mts +28 -12
  399. package/src/foundry/client-esm/canvas/edges/collision.d.mts +12 -4
  400. package/src/foundry/client-esm/canvas/edges/edge.d.mts +13 -8
  401. package/src/foundry/client-esm/canvas/edges/edges.d.mts +3 -2
  402. package/src/foundry/client-esm/canvas/edges/vertex.d.mts +12 -10
  403. package/src/foundry/client-esm/canvas/regions/geometry.d.mts +14 -7
  404. package/src/foundry/client-esm/canvas/regions/mesh.d.mts +25 -14
  405. package/src/foundry/client-esm/canvas/regions/polygon-tree.d.mts +50 -19
  406. package/src/foundry/client-esm/canvas/regions/shape.d.mts +45 -34
  407. package/src/foundry/client-esm/canvas/scene-manager.d.mts +7 -6
  408. package/src/foundry/client-esm/canvas/smaa/blend.d.mts +14 -3
  409. package/src/foundry/client-esm/canvas/smaa/edges.d.mts +25 -3
  410. package/src/foundry/client-esm/canvas/smaa/smaa.d.mts +119 -20
  411. package/src/foundry/client-esm/canvas/smaa/weights.d.mts +26 -3
  412. package/src/foundry/client-esm/canvas/sources/base-effect-source.d.mts +69 -39
  413. package/src/foundry/client-esm/canvas/sources/base-light-source.d.mts +66 -40
  414. package/src/foundry/client-esm/canvas/sources/global-light-source.d.mts +78 -19
  415. package/src/foundry/client-esm/canvas/sources/point-darkness-source.d.mts +37 -20
  416. package/src/foundry/client-esm/canvas/sources/point-effect-source.d.mts +39 -20
  417. package/src/foundry/client-esm/canvas/sources/point-light-source.d.mts +41 -12
  418. package/src/foundry/client-esm/canvas/sources/point-movement-source.d.mts +15 -4
  419. package/src/foundry/client-esm/canvas/sources/point-sound-source.d.mts +29 -14
  420. package/src/foundry/client-esm/canvas/sources/point-vision-source.d.mts +84 -39
  421. package/src/foundry/client-esm/canvas/sources/rendered-effect-source.d.mts +115 -41
  422. package/src/foundry/client-esm/canvas/tokens/ring-config.d.mts +83 -21
  423. package/src/foundry/client-esm/canvas/tokens/ring-data.d.mts +66 -93
  424. package/src/foundry/client-esm/canvas/tokens/ring.d.mts +146 -51
  425. package/src/foundry/client-esm/client.d.mts +16 -16
  426. package/src/foundry/client-esm/data/_module.d.mts +1 -1
  427. package/src/foundry/client-esm/data/calendar.d.mts +26 -39
  428. package/src/foundry/client-esm/data/client-backend.d.mts +6 -6
  429. package/src/foundry/client-esm/data/region-behaviors/adjust-darkness-level.d.mts +1 -1
  430. package/src/foundry/client-esm/data/region-behaviors/base.d.mts +5 -5
  431. package/src/foundry/client-esm/data/region-behaviors/display-scrolling-text.d.mts +2 -2
  432. package/src/foundry/client-esm/data/terrain-data.d.mts +1 -1
  433. package/src/foundry/client-esm/dice/parser.d.mts +5 -27
  434. package/src/foundry/client-esm/dice/roll.d.mts +63 -80
  435. package/src/foundry/client-esm/dice/terms/coin.d.mts +4 -8
  436. package/src/foundry/client-esm/dice/terms/dice.d.mts +85 -64
  437. package/src/foundry/client-esm/dice/terms/die.d.mts +7 -7
  438. package/src/foundry/client-esm/dice/terms/fate.d.mts +5 -5
  439. package/src/foundry/client-esm/dice/terms/function.d.mts +13 -16
  440. package/src/foundry/client-esm/dice/terms/numeric.d.mts +2 -4
  441. package/src/foundry/client-esm/dice/terms/operator.d.mts +1 -1
  442. package/src/foundry/client-esm/dice/terms/parenthetical.d.mts +8 -9
  443. package/src/foundry/client-esm/dice/terms/pool.d.mts +13 -28
  444. package/src/foundry/client-esm/dice/terms/string.d.mts +3 -3
  445. package/src/foundry/client-esm/dice/terms/term.d.mts +10 -5
  446. package/src/foundry/client-esm/dice/twister.d.mts +3 -3
  447. package/src/foundry/client-esm/documents/_module.d.mts +1 -1
  448. package/src/foundry/client-esm/helpers/_types.d.mts +12 -46
  449. package/src/foundry/client-esm/helpers/compendium-art.d.mts +57 -4
  450. package/src/foundry/client-esm/packages/_module.d.mts +1 -1
  451. package/src/foundry/client-esm/packages/_types.d.mts +2 -0
  452. package/src/foundry/client-esm/utils/_module.d.mts +1 -1
  453. package/src/foundry/client-esm/utils/_types.d.mts +2 -1
  454. package/src/foundry/common/_types.d.mts +1 -1
  455. package/src/foundry/common/abstract/_module.d.mts +1 -0
  456. package/src/foundry/common/abstract/_types.d.mts +60 -54
  457. package/src/foundry/common/abstract/backend.d.mts +28 -16
  458. package/src/foundry/common/abstract/data.d.mts +133 -116
  459. package/src/foundry/common/abstract/document.d.mts +1233 -440
  460. package/src/foundry/common/abstract/embedded-collection.d.mts +2 -2
  461. package/src/foundry/common/abstract/singleton-collection.d.mts +1 -1
  462. package/src/foundry/common/abstract/type-data.d.mts +35 -43
  463. package/src/foundry/common/config.d.mts +3 -3
  464. package/src/foundry/common/constants.d.mts +27 -26
  465. package/src/foundry/common/data/_types.d.mts +2 -0
  466. package/src/foundry/common/data/data.d.mts +189 -87
  467. package/src/foundry/common/data/fields.d.mts +579 -258
  468. package/src/foundry/common/data/validation-failure.d.mts +9 -4
  469. package/src/foundry/common/documents/_types.d.mts +16 -9
  470. package/src/foundry/common/documents/active-effect.d.mts +280 -180
  471. package/src/foundry/common/documents/actor-delta.d.mts +317 -70
  472. package/src/foundry/common/documents/actor.d.mts +304 -103
  473. package/src/foundry/common/documents/adventure.d.mts +254 -140
  474. package/src/foundry/common/documents/ambient-light.d.mts +267 -76
  475. package/src/foundry/common/documents/ambient-sound.d.mts +267 -110
  476. package/src/foundry/common/documents/card.d.mts +267 -176
  477. package/src/foundry/common/documents/cards.d.mts +299 -128
  478. package/src/foundry/common/documents/chat-message.d.mts +276 -160
  479. package/src/foundry/common/documents/combat.d.mts +300 -91
  480. package/src/foundry/common/documents/combatant.d.mts +283 -88
  481. package/src/foundry/common/documents/drawing.d.mts +286 -207
  482. package/src/foundry/common/documents/fog-exploration.d.mts +258 -72
  483. package/src/foundry/common/documents/folder.d.mts +248 -85
  484. package/src/foundry/common/documents/item.d.mts +305 -101
  485. package/src/foundry/common/documents/journal-entry-page.d.mts +279 -190
  486. package/src/foundry/common/documents/journal-entry.d.mts +294 -70
  487. package/src/foundry/common/documents/macro.d.mts +254 -134
  488. package/src/foundry/common/documents/measured-template.d.mts +293 -137
  489. package/src/foundry/common/documents/note.d.mts +274 -151
  490. package/src/foundry/common/documents/playlist-sound.d.mts +260 -96
  491. package/src/foundry/common/documents/playlist.d.mts +279 -122
  492. package/src/foundry/common/documents/region-behavior.d.mts +305 -64
  493. package/src/foundry/common/documents/region.d.mts +309 -90
  494. package/src/foundry/common/documents/roll-table.d.mts +286 -104
  495. package/src/foundry/common/documents/scene.d.mts +276 -344
  496. package/src/foundry/common/documents/setting.d.mts +229 -55
  497. package/src/foundry/common/documents/table-result.d.mts +267 -96
  498. package/src/foundry/common/documents/tile.d.mts +301 -172
  499. package/src/foundry/common/documents/token.d.mts +350 -452
  500. package/src/foundry/common/documents/user.d.mts +256 -146
  501. package/src/foundry/common/documents/wall.d.mts +272 -157
  502. package/src/foundry/common/grid/_types.d.mts +2 -0
  503. package/src/foundry/common/grid/base.d.mts +58 -37
  504. package/src/foundry/common/grid/hexagonal.d.mts +19 -19
  505. package/src/foundry/common/grid/square.d.mts +1 -1
  506. package/src/foundry/common/packages/_module.d.mts +5 -5
  507. package/src/foundry/common/packages/_types.d.mts +2 -0
  508. package/src/foundry/common/packages/base-module.d.mts +6 -24
  509. package/src/foundry/common/packages/base-package.d.mts +18 -16
  510. package/src/foundry/common/packages/base-system.d.mts +6 -78
  511. package/src/foundry/common/packages/base-world.d.mts +7 -60
  512. package/src/foundry/common/packages/sub-types.d.mts +1 -1
  513. package/src/foundry/common/primitives/array.d.mts +3 -3
  514. package/src/foundry/common/primitives/math.d.mts +7 -1
  515. package/src/foundry/common/primitives/number.d.mts +1 -1
  516. package/src/foundry/common/primitives/set.d.mts +17 -14
  517. package/src/foundry/common/prosemirror/_types.d.mts +2 -0
  518. package/src/foundry/common/prosemirror/dropdown.d.mts +1 -1
  519. package/src/foundry/common/prosemirror/highlight-matches-plugin.d.mts +1 -1
  520. package/src/foundry/common/prosemirror/menu.d.mts +3 -3
  521. package/src/foundry/common/prosemirror/plugin.d.mts +1 -1
  522. package/src/foundry/common/prosemirror/schema/index.d.mts +0 -1
  523. package/src/foundry/common/prosemirror/util.d.mts +1 -1
  524. package/src/foundry/common/utils/bitmask.d.mts +4 -1
  525. package/src/foundry/common/utils/collection.d.mts +59 -24
  526. package/src/foundry/common/utils/event-emitter.d.mts +46 -19
  527. package/src/foundry/common/utils/helpers.d.mts +13 -13
  528. package/src/foundry/common/utils/http.d.mts +2 -2
  529. package/src/foundry/common/utils/string-tree.d.mts +45 -39
  530. package/src/foundry/common/utils/word-tree.d.mts +10 -23
  531. package/src/tsconfig.json +1 -5
  532. package/src/types/augments/pixi.d.mts +28 -28
  533. package/src/types/config.d.mts +12 -12
  534. package/src/types/documentConfiguration.d.mts +282 -597
  535. package/src/types/lib.d.mts +4 -4
  536. package/src/types/workers/image-compressor.d.mts +1 -1
  537. package/src/utils/index.d.mts +255 -60
  538. package/tsconfig.json +29 -0
  539. package/tsconfig.main.json +8 -0
  540. package/tsconfig.miscellaneous.json +16 -0
  541. package/src/foundry/client/apps/placeables/light-config.d.mts +0 -100
  542. package/src/foundry/client/apps/placeables/sound-config.d.mts +0 -44
  543. package/src/foundry/common/documents/module.d.mts +0 -35
@@ -1,30 +1,557 @@
1
- import type { InexactPartial } from "fvtt-types/utils";
2
- import type Document from "../../../common/abstract/document.d.mts";
3
- import type BaseCombat from "../../../common/documents/combat.d.mts";
1
+ import type { ConfiguredCombat } from "fvtt-types/configuration";
2
+ import type { Merge } from "fvtt-types/utils";
3
+ import type { documents } from "#client-esm/client.d.mts";
4
+ import type Document from "#common/abstract/document.d.mts";
5
+ import type { DataSchema } from "#common/data/fields.d.mts";
6
+ import type BaseCombat from "#common/documents/combat.d.mts";
7
+
8
+ import fields = foundry.data.fields;
4
9
 
5
10
  declare global {
6
11
  namespace Combat {
7
- type Metadata = Document.MetadataFor<Combat>;
12
+ /**
13
+ * The document's name.
14
+ */
15
+ type Name = "Combat";
16
+
17
+ /**
18
+ * The arguments to construct the document.
19
+ */
20
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
21
+
22
+ /**
23
+ * The documents embedded within `Combat`.
24
+ */
25
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
26
+
27
+ /**
28
+ * The implementation of the `Combat` document instance configured through `CONFIG.Combat.documentClass` in Foundry and
29
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredCombat | `fvtt-types/configuration/ConfiguredCombat`} in fvtt-types.
30
+ */
31
+ type Implementation = Document.ImplementationFor<Name>;
32
+
33
+ /**
34
+ * The implementation of the `Combat` document configured through `CONFIG.Combat.documentClass` in Foundry and
35
+ * {@link DocumentClassConfig | `DocumentClassConfig`} in fvtt-types.
36
+ */
37
+ type ImplementationClass = Document.ImplementationClassFor<Name>;
38
+
39
+ /**
40
+ * A document's metadata is special information about the document ranging anywhere from its name,
41
+ * whether it's indexed, or to the permissions a user has over it.
42
+ */
43
+ interface Metadata
44
+ extends Merge<
45
+ Document.Metadata.Default,
46
+ Readonly<{
47
+ name: "Combat";
48
+ collection: "combats";
49
+ label: string;
50
+ labelPlural: string;
51
+ embedded: Metadata.Embedded;
52
+ hasTypeData: true;
53
+ permissions: Metadata.Permissions;
54
+ schemaVersion: string;
55
+ }>
56
+ > {}
57
+
58
+ namespace Metadata {
59
+ /**
60
+ * The embedded metadata
61
+ */
62
+ interface Embedded {
63
+ Combatant: "combatants";
64
+ }
65
+
66
+ /**
67
+ * The permissions for whether a certain user can create, update, or delete this document.
68
+ */
69
+ interface Permissions {
70
+ update(user: User.Internal.Implementation, doc: Implementation, data: UpdateData): boolean;
71
+ }
72
+ }
73
+
74
+ /**
75
+ * Allowed subtypes of `Combat`. This is configured through various methods. Modern Foundry
76
+ * recommends registering using [Data Models](https://foundryvtt.com/article/system-data-models/)
77
+ * under {@link CONFIG.Combat.dataModels | `CONFIG.Combat.dataModels`}. This corresponds to
78
+ * fvtt-type's {@link DataModelConfig | `DataModelConfig`}.
79
+ *
80
+ * Subtypes can also be registered through a `template.json` though this is discouraged.
81
+ * The corresponding fvtt-type configs are {@link SourceConfig | `SourceConfig`} and
82
+ * {@link DataConfig | `DataConfig`}.
83
+ */
84
+ type SubType = Game.Model.TypeNames<"Combat">;
85
+
86
+ /**
87
+ * `ConfiguredSubTypes` represents the subtypes a user explicitly registered. This excludes
88
+ * subtypes like the Foundry builtin subtype `"base"` and the catch-all subtype for arbitrary
89
+ * module subtypes `${string}.${string}`.
90
+ *
91
+ * @see {@link SubType} for more information.
92
+ */
93
+ type ConfiguredSubTypes = Document.ConfiguredSubTypesOf<"Combat">;
94
+
95
+ /**
96
+ * `Known` represents the types of `Combat` that a user explicitly registered.
97
+ *
98
+ * @see {@link ConfiguredSubTypes} for more information.
99
+ */
100
+ type Known = Combat.OfType<Combat.ConfiguredSubTypes>;
101
+
102
+ /**
103
+ * `OfType` returns an instance of `Combat` with the corresponding type. This works with both the
104
+ * builtin `Combat` class or a custom subclass if that is set up in
105
+ * {@link ConfiguredCombat | `fvtt-types/configuration/ConfiguredCombat`}.
106
+ */
107
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types
108
+ type OfType<Type extends SubType> = Document.Internal.OfType<ConfiguredCombat<Type>, Combat<Type>>;
109
+
110
+ /**
111
+ * `SystemOfType` returns the system property for a specific `Combat` subtype.
112
+ */
113
+ type SystemOfType<Type extends SubType> = Document.Internal.SystemOfType<_SystemMap, Type>;
114
+
115
+ /**
116
+ * @internal
117
+ */
118
+ interface _SystemMap extends Document.Internal.SystemMap<"Combat"> {}
8
119
 
9
- type ConfiguredClass = Document.ConfiguredClassForName<"Combat">;
10
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"Combat">;
120
+ /**
121
+ * A document's parent is something that can contain it.
122
+ * For example an `Item` can be contained by an `Actor` which makes `Actor` one of its possible parents.
123
+ */
124
+ type Parent = null;
125
+
126
+ /**
127
+ * A document's descendants are any child documents, grandchild documents, etc.
128
+ * This is a union of all instances, or never if the document doesn't have any descendants.
129
+ */
130
+ type DescendantName = "Combatant";
131
+
132
+ /**
133
+ * A document's direct descendants are documents that are contained directly within its schema.
134
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
135
+ */
136
+ type DirectDescendant = Combatant.Stored;
11
137
 
138
+ /**
139
+ * A document's direct descendants are documents that are contained directly within its schema.
140
+ * This is a union of all such classes, or never if the document doesn't have any descendants.
141
+ */
142
+ type DirectDescendantClass = Combatant.ImplementationClass;
143
+
144
+ /**
145
+ * A document's descendants are any documents that are contained within, either within its schema
146
+ * or its descendant's schemas.
147
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
148
+ */
149
+ type Descendant = DirectDescendant;
150
+
151
+ /**
152
+ * A document's descendants are any child documents, grandchild documents, etc.
153
+ * This is a union of all classes, or never if the document doesn't have any descendants.
154
+ */
155
+ type DescendantClass = DirectDescendantClass;
156
+
157
+ /**
158
+ * Types of `CompendiumCollection` this document might be contained in.
159
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
160
+ */
161
+ // Note: Takes any document in the heritage chain (i.e. itself or any parent, transitive or not) that can be contained in a compendium.
162
+ type Pack = never;
163
+
164
+ /**
165
+ * An embedded document is a document contained in another.
166
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
167
+ *
168
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
169
+ */
170
+ type Embedded = Document.ImplementationFor<Embedded.Name>;
171
+
172
+ namespace Embedded {
173
+ /**
174
+ * An embedded document is a document contained in another.
175
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
176
+ *
177
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
178
+ */
179
+ type Name = keyof Metadata.Embedded;
180
+
181
+ /**
182
+ * Gets the collection name for an embedded document.
183
+ */
184
+ type CollectionNameOf<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionNameFor<
185
+ Metadata.Embedded,
186
+ CollectionName
187
+ >;
188
+
189
+ /**
190
+ * Gets the collection document for an embedded document.
191
+ */
192
+ // TODO(LukeAbby): There's a circularity. Should be `Document.Embedded.CollectionDocumentFor<Metadata.Embedded, CollectionName>`
193
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
194
+ type DocumentFor<CollectionName extends Embedded.CollectionName> = Document.Any;
195
+
196
+ /**
197
+ * Gets the collection for an embedded document.
198
+ */
199
+ type CollectionFor<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionFor<
200
+ // TODO(LukeAbby): This should be `TokenDocument.Implementation` but this causes a circularity.
201
+ Document.Any,
202
+ Metadata.Embedded,
203
+ CollectionName
204
+ >;
205
+
206
+ /**
207
+ * A valid name to refer to a collection embedded in this document. For example an `Actor`
208
+ * has the key `"items"` which contains `Item` instance which would make both `"Item" | "Items"`
209
+ * valid keys (amongst others).
210
+ */
211
+ type CollectionName = Document.Embedded.CollectionName<Metadata.Embedded>;
212
+ }
213
+
214
+ /**
215
+ * The name of the world or embedded collection this document can find itself in.
216
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
217
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
218
+ */
219
+ type ParentCollectionName = Metadata["collection"];
220
+
221
+ /**
222
+ * The world collection that contains `Combat`s. Will be `never` if none exists.
223
+ */
224
+ type CollectionClass = CombatEncounters.ConfiguredClass;
225
+
226
+ /**
227
+ * The world collection that contains `Combat`s. Will be `never` if none exists.
228
+ */
229
+ type Collection = CombatEncounters.Configured;
230
+
231
+ /**
232
+ * An instance of `Combat` that comes from the database but failed validation meaining that
233
+ * its `system` and `_source` could theoretically be anything.
234
+ */
235
+ interface Invalid<out SubType extends Combat.SubType = Combat.SubType> extends Document.Invalid<OfType<SubType>> {}
236
+
237
+ /**
238
+ * An instance of `Combat` that comes from the database.
239
+ */
240
+ interface Stored<out SubType extends Combat.SubType = Combat.SubType> extends Document.Stored<OfType<SubType>> {}
241
+
242
+ /**
243
+ * The data put in {@link Combat._source | `Combat#_source`}. This data is what was
244
+ * persisted to the database and therefore it must be valid JSON.
245
+ *
246
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
247
+ * but initialized as a {@link Set | `Set`}.
248
+ */
249
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
250
+
251
+ /**
252
+ * @deprecated {@link Combat.Source | `Combat.Source`}
253
+ */
254
+ type PersistedData = Source;
255
+
256
+ /**
257
+ * The data necessary to create a document. Used in places like {@link Combat.create | `Combat.create`}
258
+ * and {@link Combat | `new Combat(...)`}.
259
+ *
260
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
261
+ * with the right values. This means you can pass a `Set` instance, an array of values,
262
+ * a generator, or any other iterable.
263
+ */
264
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
265
+
266
+ /**
267
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
268
+ * {@link Combat.name | `Combat#name`}.
269
+ *
270
+ * This is data transformed from {@link Combat.Source | `Combat.Source`} and turned into more
271
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
272
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
273
+ */
274
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
275
+
276
+ /**
277
+ * The data used to update a document, for example {@link Combat.update | `Combat#update`}.
278
+ * It is a distinct type from {@link Combat.CreateData | `DeepPartial<Combat.CreateData>`} because
279
+ * it has different rules for `null` and `undefined`.
280
+ */
281
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
282
+
283
+ /**
284
+ * The schema for {@link Combat | `Combat`}. This is the source of truth for how an Combat document
285
+ * must be structured.
286
+ *
287
+ * Foundry uses this schema to validate the structure of the {@link Combat | `Combat`}. For example
288
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
289
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
290
+ * starting as an array in the database, initialized as a set, and allows updates with any
291
+ * iterable.
292
+ */
293
+ interface Schema extends DataSchema {
294
+ /**
295
+ * The _id which uniquely identifies this Combat document
296
+ * @defaultValue `null`
297
+ */
298
+ _id: fields.DocumentIdField;
299
+
300
+ type: fields.DocumentTypeField<typeof BaseCombat, { initial: typeof foundry.CONST.BASE_DOCUMENT_TYPE }>;
301
+
302
+ system: fields.TypeDataField<typeof BaseCombat>;
303
+
304
+ /**
305
+ * The _id of a Scene within which this Combat occurs
306
+ * @defaultValue `null`
307
+ */
308
+ scene: fields.ForeignDocumentField<typeof documents.BaseScene>;
309
+
310
+ /**
311
+ * A Collection of Combatant embedded Documents
312
+ * @defaultValue `[]`
313
+ */
314
+ combatants: fields.EmbeddedCollectionField<typeof documents.BaseCombatant, Combat.Implementation>;
315
+
316
+ /**
317
+ * Is the Combat encounter currently active?
318
+ * @defaultValue `false`
319
+ */
320
+ active: fields.BooleanField;
321
+
322
+ /**
323
+ * The current round of the Combat encounter
324
+ * @defaultValue `0`
325
+ */
326
+ round: fields.NumberField<{
327
+ required: true;
328
+ nullable: false;
329
+ integer: true;
330
+ min: 0;
331
+ initial: 0;
332
+ label: "COMBAT.Round";
333
+ }>;
334
+
335
+ /**
336
+ * The current turn in the Combat round
337
+ * @defaultValue `null`
338
+ */
339
+ turn: fields.NumberField<{ required: true; integer: true; min: 0; initial: null; label: "COMBAT.Turn" }>;
340
+
341
+ /**
342
+ * The current sort order of this Combat relative to others in the same Scene
343
+ * @defaultValue `0`
344
+ */
345
+ sort: fields.IntegerSortField;
346
+
347
+ /**
348
+ * An object of optional key/value flags
349
+ * @defaultValue `{}`
350
+ */
351
+ flags: fields.ObjectField.FlagsField<Name>;
352
+
353
+ /**
354
+ * An object of creation and access information
355
+ * @defaultValue see {@link fields.DocumentStatsField | `fields.DocumentStatsField`}
356
+ */
357
+ _stats: fields.DocumentStatsField;
358
+ }
359
+
360
+ namespace Database {
361
+ /** Options passed along in Get operations for Combats */
362
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<Combat.Parent> {}
363
+
364
+ /** Options passed along in Create operations for Combats */
365
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
366
+ extends foundry.abstract.types.DatabaseCreateOperation<Combat.CreateData, Combat.Parent, Temporary> {}
367
+
368
+ /** Options passed along in Delete operations for Combats */
369
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<Combat.Parent> {}
370
+
371
+ /** Options passed along in Update operations for Combats */
372
+ interface Update extends foundry.abstract.types.DatabaseUpdateOperation<Combat.UpdateData, Combat.Parent> {
373
+ direction: -1 | 1;
374
+ worldTime: { delta: number };
375
+ turnEvents: boolean;
376
+ }
377
+
378
+ /** Operation for {@link Combat.createDocuments | `Combat.createDocuments`} */
379
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
380
+ extends Document.Database.CreateOperation<Combat.Database.Create<Temporary>> {}
381
+
382
+ /** Operation for {@link Combat.updateDocuments | `Combat.updateDocuments`} */
383
+ interface UpdateDocumentsOperation extends Document.Database.UpdateDocumentsOperation<Combat.Database.Update> {}
384
+
385
+ /** Operation for {@link Combat.deleteDocuments | `Combat.deleteDocuments`} */
386
+ interface DeleteDocumentsOperation extends Document.Database.DeleteDocumentsOperation<Combat.Database.Delete> {}
387
+
388
+ /** Operation for {@link Combat.create | `Combat.create`} */
389
+ interface CreateOperation<Temporary extends boolean | undefined>
390
+ extends Document.Database.CreateOperation<Combat.Database.Create<Temporary>> {}
391
+
392
+ /** Operation for {@link Combat.update | `Combat#update`} */
393
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
394
+
395
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
396
+
397
+ /** Options for {@link Combat.get | `Combat.get`} */
398
+ interface GetOptions extends Document.Database.GetOptions {}
399
+
400
+ /** Options for {@link Combat._preCreate | `Combat#_preCreate`} */
401
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
402
+
403
+ /** Options for {@link Combat._onCreate | `Combat#_onCreate`} */
404
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
405
+
406
+ /** Operation for {@link Combat._preCreateOperation | `Combat._preCreateOperation`} */
407
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<Combat.Database.Create> {}
408
+
409
+ /** Operation for {@link Combat._onCreateOperation | `Combat#_onCreateOperation`} */
410
+ interface OnCreateOperation extends Combat.Database.Create {}
411
+
412
+ /** Options for {@link Combat._preUpdate | `Combat#_preUpdate`} */
413
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
414
+
415
+ /** Options for {@link Combat._onUpdate | `Combat#_onUpdate`} */
416
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
417
+
418
+ /** Operation for {@link Combat._preUpdateOperation | `Combat._preUpdateOperation`} */
419
+ interface PreUpdateOperation extends Combat.Database.Update {}
420
+
421
+ /** Operation for {@link Combat._onUpdateOperation | `Combat._preUpdateOperation`} */
422
+ interface OnUpdateOperation extends Combat.Database.Update {}
423
+
424
+ /** Options for {@link Combat._preDelete | `Combat#_preDelete`} */
425
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
426
+
427
+ /** Options for {@link Combat._onDelete | `Combat#_onDelete`} */
428
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
429
+
430
+ /** Options for {@link Combat._preDeleteOperation | `Combat#_preDeleteOperation`} */
431
+ interface PreDeleteOperation extends Combat.Database.Delete {}
432
+
433
+ /** Options for {@link Combat._onDeleteOperation | `Combat#_onDeleteOperation`} */
434
+ interface OnDeleteOperation extends Combat.Database.Delete {}
435
+
436
+ /** Context for {@link Combat._onDeleteOperation | `Combat._onDeleteOperation`} */
437
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<Combat.Parent> {}
438
+
439
+ /** Context for {@link Combat._onCreateDocuments | `Combat._onCreateDocuments`} */
440
+ interface OnCreateDocumentsContext extends Document.ModificationContext<Combat.Parent> {}
441
+
442
+ /** Context for {@link Combat._onUpdateDocuments | `Combat._onUpdateDocuments`} */
443
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<Combat.Parent> {}
444
+
445
+ /**
446
+ * Options for {@link Combat._preCreateDescendantDocuments | `Combat#_preCreateDescendantDocuments`}
447
+ * and {@link Combat._onCreateDescendantDocuments | `Combat#_onCreateDescendantDocuments`}
448
+ */
449
+ interface CreateOptions extends Document.Database.CreateOptions<Combat.Database.Create> {}
450
+
451
+ /**
452
+ * Options for {@link Combat._preUpdateDescendantDocuments | `Combat#_preUpdateDescendantDocuments`}
453
+ * and {@link Combat._onUpdateDescendantDocuments | `Combat#_onUpdateDescendantDocuments`}
454
+ */
455
+ interface UpdateOptions extends Document.Database.UpdateOptions<Combat.Database.Update> {}
456
+
457
+ /**
458
+ * Options for {@link Combat._preDeleteDescendantDocuments | `Combat#_preDeleteDescendantDocuments`}
459
+ * and {@link Combat._onDeleteDescendantDocuments | `Combat#_onDeleteDescendantDocuments`}
460
+ */
461
+ interface DeleteOptions extends Document.Database.DeleteOptions<Combat.Database.Delete> {}
462
+ }
463
+
464
+ /**
465
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
466
+ */
467
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
468
+
469
+ namespace Flags {
470
+ /**
471
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
472
+ */
473
+ type Scope = Document.FlagKeyOf<Flags>;
474
+
475
+ /**
476
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
477
+ */
478
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
479
+
480
+ /**
481
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
482
+ */
483
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
484
+ }
485
+
486
+ type PreCreateDescendantDocumentsArgs = Document.PreCreateDescendantDocumentsArgs<
487
+ Combat.Stored,
488
+ Combat.DirectDescendant,
489
+ Combat.Metadata.Embedded
490
+ >;
491
+
492
+ type OnCreateDescendantDocumentsArgs = Document.OnCreateDescendantDocumentsArgs<
493
+ Combat.Stored,
494
+ Combat.DirectDescendant,
495
+ Combat.Metadata.Embedded
496
+ >;
497
+
498
+ type PreUpdateDescendantDocumentsArgs = Document.PreUpdateDescendantDocumentsArgs<
499
+ Combat.Stored,
500
+ Combat.DirectDescendant,
501
+ Combat.Metadata.Embedded
502
+ >;
503
+
504
+ type OnUpdateDescendantDocumentsArgs = Document.OnUpdateDescendantDocumentsArgs<
505
+ Combat.Stored,
506
+ Combat.DirectDescendant,
507
+ Combat.Metadata.Embedded
508
+ >;
509
+
510
+ type PreDeleteDescendantDocumentsArgs = Document.PreDeleteDescendantDocumentsArgs<
511
+ Combat.Stored,
512
+ Combat.DirectDescendant,
513
+ Combat.Metadata.Embedded
514
+ >;
515
+
516
+ type OnDeleteDescendantDocumentsArgs = Document.OnDeleteDescendantDocumentsArgs<
517
+ Combat.Stored,
518
+ Combat.DirectDescendant,
519
+ Combat.Metadata.Embedded
520
+ >;
521
+
522
+ /**
523
+ * @deprecated {@link Combat.Database | `Combat.Database`}
524
+ */
12
525
  /* eslint-disable @typescript-eslint/no-empty-object-type */
13
526
  interface DatabaseOperations
527
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
14
528
  extends Document.Database.Operations<
15
- Combat,
529
+ Combat.Implementation,
16
530
  {},
17
531
  { direction: -1 | 1; worldTime: { delta: number }; turnEvents: boolean },
18
532
  {}
19
533
  > {}
20
534
  /* eslint-enable @typescript-eslint/no-empty-object-type */
21
535
 
22
- // Helpful aliases
23
- type TypeNames = BaseCombat.TypeNames;
24
- type ConstructorData = BaseCombat.ConstructorData;
25
- type UpdateData = BaseCombat.UpdateData;
26
- type Schema = BaseCombat.Schema;
27
- type Source = BaseCombat.Source;
536
+ /**
537
+ * @deprecated {@link Combat.SubType | `Combat.SubType`}
538
+ */
539
+ type TypeNames = Combat.SubType;
540
+
541
+ /**
542
+ * @deprecated {@link Combat.CreateData | `Combat.CreateData`}
543
+ */
544
+ interface ConstructorData extends Combat.CreateData {}
545
+
546
+ /**
547
+ * @deprecated {@link Combat.implementation | `Combat.ImplementationClass`}
548
+ */
549
+ type ConfiguredClass = ImplementationClass;
550
+
551
+ /**
552
+ * @deprecated {@link Combat.Implementation | `Combat.Implementation`}
553
+ */
554
+ type ConfiguredInstance = Implementation;
28
555
 
29
556
  interface InitiativeOptions {
30
557
  /**
@@ -43,7 +570,7 @@ declare global {
43
570
  * Additional options with which to customize created Chat Messages
44
571
  * @defaultValue `{}`
45
572
  */
46
- messageOptions?: foundry.documents.BaseChatMessage.ConstructorData;
573
+ messageOptions?: foundry.documents.BaseChatMessage.CreateData;
47
574
  }
48
575
 
49
576
  interface HistoryData {
@@ -59,26 +586,21 @@ declare global {
59
586
  /**
60
587
  * The client-side Combat document which extends the common BaseCombat model.
61
588
  *
62
- * @see {@link Combats} The world-level collection of Combat documents
63
- * @see {@link Combatant} The Combatant embedded document which exists within a Combat document
64
- * @see {@link CombatConfig} The Combat configuration application
589
+ * @see {@link Combats | `Combats`} The world-level collection of Combat documents
590
+ * @see {@link Combatant | `Combatant`} The Combatant embedded document which exists within a Combat document
591
+ * @see {@link CombatConfig | `CombatConfig`} The Combat configuration application
65
592
  */
66
- class Combat extends ClientDocumentMixin(foundry.documents.BaseCombat) {
67
- static override metadata: Combat.Metadata;
68
-
69
- static get implementation(): Combat.ConfiguredClass;
70
-
593
+ class Combat<out SubType extends Combat.SubType = Combat.SubType> extends ClientDocumentMixin(
594
+ foundry.documents.BaseCombat,
595
+ )<SubType> {
71
596
  /**
72
- * @param data - Initial data provided to construct the Combat document
597
+ * @param data - Initial data from which to construct the `Combat`
598
+ * @param context - Construction context options
73
599
  */
74
- // Note(LukeAbby): TODO, this constructor just copies from the parent. Should this just be removed?
75
- // constructor(
76
- // data?: ConstructorParameters<typeof foundry.documents.BaseCombat>[0],
77
- // context?: ConstructorParameters<typeof foundry.documents.BaseCombat>[1],
78
- // );
600
+ constructor(...args: Combat.ConstructorArgs);
79
601
 
80
602
  /** Track the sorted turn order of this combat encounter */
81
- turns: Combatant.ConfiguredInstance[];
603
+ turns: Combatant.Implementation[];
82
604
 
83
605
  /** Record the current round, turn, and tokenId to understand changes in the encounter state */
84
606
  current: Combat.HistoryData;
@@ -98,7 +620,7 @@ declare global {
98
620
  /**
99
621
  * Get the Combatant who has the next turn.
100
622
  */
101
- get nextCombatant(): Combatant.ConfiguredInstance | undefined;
623
+ get nextCombatant(): Combatant.Implementation | undefined;
102
624
 
103
625
  /** Return the object of settings which modify the Combat Tracker behavior */
104
626
  // Type is copied here to avoid recursion issue
@@ -117,7 +639,7 @@ declare global {
117
639
  * Deactivate all other Combat encounters within the viewed Scene and set this one as active
118
640
  * @param options - Additional context to customize the update workflow
119
641
  */
120
- activate(options?: Document.OnUpdateOptions<"Combat">): Promise<Combat.ConfiguredInstance[]>;
642
+ activate(options?: Combat.Database.UpdateOperation): Promise<Combat.Implementation[]>;
121
643
 
122
644
  override prepareDerivedData(): void;
123
645
 
@@ -126,13 +648,13 @@ declare global {
126
648
  * @param token - A Token ID or a TokenDocument instance
127
649
  * @returns An array of Combatants which represent the Token.
128
650
  */
129
- getCombatantsByToken(token: string | TokenDocument): Combatant.ConfiguredInstance[];
651
+ getCombatantsByToken(token: string | TokenDocument.Implementation): Combatant.Implementation[];
130
652
 
131
653
  /**
132
654
  * Get a Combatant that represents the given Actor or Actor ID.
133
655
  * @param actorOrId - An Actor ID or an Actor instance.
134
656
  */
135
- getCombatantsByActor(actorOrId: string | Actor): Combatant.ConfiguredInstance[];
657
+ getCombatantsByActor(actorOrId: string | Actor.Implementation): Combatant.Implementation[];
136
658
 
137
659
  /** Begin the combat encounter, advancing to round 1 and turn 1 */
138
660
  startCombat(): Promise<this>;
@@ -205,8 +727,7 @@ declare global {
205
727
 
206
728
  /**
207
729
  * Loads the registered Combat Theme (if any) and plays the requested type of sound.
208
-
209
- * If multiple exist for that type, one is chosen at random.
730
+ * If multiple exist for that type, one is chosen at random.
210
731
  * @param announcement - The announcement that should be played: "startEncounter", "nextUp", or "yourTurn".
211
732
  */
212
733
  protected _playCombatSound(announcement: foundry.CONST.COMBAT_ANNOUNCEMENTS): void;
@@ -217,45 +738,71 @@ declare global {
217
738
  * By default sort by initiative, next falling back to name, lastly tie-breaking by combatant id.
218
739
  * @internal
219
740
  */
220
- protected _sortCombatants(a: Combatant.ConfiguredInstance, b: Combatant.ConfiguredInstance): number;
741
+ protected _sortCombatants(a: Combatant.Implementation, b: Combatant.Implementation): number;
221
742
 
222
743
  /**
223
744
  * Refresh the Token HUD under certain circumstances.
224
745
  * @param documents - A list of Combatant documents that were added or removed.
225
746
  */
226
- protected _refreshTokenHUD(documents: Array<Combatant>): void;
747
+ protected _refreshTokenHUD(documents: Array<Combatant.Implementation>): void;
227
748
 
228
749
  /**
229
- * @privateRemarks _onCreate, _onUpdate, and _onDelete are all overridden but with no signature changes.
230
- * For type simplicity they are left off. These methods historically have been the source of a large amount of computation from tsc.
750
+ * @privateRemarks _onCreate, _onUpdate, and _onDelete are all overridden but with no signature changes from BaseCombat.
231
751
  */
232
752
 
233
- protected override _onCreateDescendantDocuments(
234
- parent: ClientDocument,
235
- collection: string,
236
- documents: ClientDocument[],
237
- result: unknown[],
238
- options: Document.OnCreateOptions<"Combatant"> & InexactPartial<{ combatTurn: number; turnEvents: boolean }>,
239
- userId: string,
240
- ): void;
753
+ /**
754
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
755
+ * this method must be overriden like so:
756
+ * ```typescript
757
+ * class GurpsCombat extends Combat {
758
+ * protected override _onCreateDescendantDocuments(...args: Combat.OnCreateDescendantDocumentsArgs) {
759
+ * super._onCreateDescendantDocuments(...args);
760
+ *
761
+ * const [parent, collection, documents, data, options, userId] = args;
762
+ * if (collection === "combatants") {
763
+ * options; // Will be narrowed.
764
+ * }
765
+ * }
766
+ * }
767
+ * ```
768
+ */
769
+ protected override _onCreateDescendantDocuments(...args: Combat.OnCreateDescendantDocumentsArgs): void;
241
770
 
242
- protected override _onUpdateDescendantDocuments(
243
- parent: ClientDocument,
244
- collection: string,
245
- documents: ClientDocument[],
246
- changes: unknown[],
247
- options: Document.OnUpdateOptions<"Combatant"> & InexactPartial<{ combatTurn: number; turnEvents: boolean }>,
248
- userId: string,
249
- ): void;
771
+ /**
772
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
773
+ * this method must be overriden like so:
774
+ * ```typescript
775
+ * class Ptr2eCombat extends Combat {
776
+ * protected override _onUpdateDescendantDocuments(...args: Combat.OnUpdateDescendantDocumentsArgs) {
777
+ * super._onUpdateDescendantDocuments(...args);
778
+ *
779
+ * const [parent, collection, documents, changes, options, userId] = args;
780
+ * if (collection === "combatants") {
781
+ * options; // Will be narrowed.
782
+ * }
783
+ * }
784
+ * }
785
+ * ```
786
+ */
787
+ protected override _onUpdateDescendantDocuments(...args: Combat.OnUpdateDescendantDocumentsArgs): void;
250
788
 
251
- protected override _onDeleteDescendantDocuments(
252
- parent: ClientDocument,
253
- collection: string,
254
- documents: ClientDocument[],
255
- ids: string[],
256
- options: Document.OnDeleteOptions<"Combatant"> & InexactPartial<{ combatTurn: number; turnEvents: boolean }>,
257
- userId: string,
258
- ): void;
789
+ /**
790
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
791
+ * this method must be overriden like so:
792
+ * ```typescript
793
+ * class BladesCombat extends Combat {
794
+ * protected override _onDeleteDescendantDocuments(...args: Combat.OnUpdateDescendantDocuments) {
795
+ * super._onDeleteDescendantDocuments(...args);
796
+ *
797
+ * const [parent, collection, documents, ids, options, userId] = args;
798
+ * if (collection === "combatants") {
799
+ * options; // Will be narrowed.
800
+ * }
801
+ * }
802
+ * }
803
+ * ```
804
+ */
805
+ protected override _onDeleteDescendantDocuments(...args: Combat.OnDeleteDescendantDocumentsArgs): void;
259
806
 
260
807
  #onModifyCombatants();
261
808
 
@@ -263,7 +810,7 @@ declare global {
263
810
  * Get the current history state of the Combat encounter.
264
811
  * @param combatant - The new active combatant
265
812
  */
266
- protected _getCurrentState(combatant: Combatant): Combat.HistoryData;
813
+ protected _getCurrentState(combatant: Combatant.Implementation): Combat.HistoryData;
267
814
 
268
815
  /**
269
816
  * Manage the execution of Combat lifecycle events.
@@ -284,7 +831,7 @@ declare global {
284
831
  * This method only executes for one designated GM user. If no GM users are present this method will not be called.
285
832
  * @param combatant - The Combatant whose turn just ended
286
833
  */
287
- protected _onEndTurn(combatant: Combatant): Promise<void>;
834
+ protected _onEndTurn(combatant: Combatant.Implementation): Promise<void>;
288
835
 
289
836
  /**
290
837
  * A workflow that occurs at the end of each Combat Round.
@@ -309,21 +856,104 @@ declare global {
309
856
  * This method only executes for one designated GM user. If no GM users are present this method will not be called.
310
857
  * @param combatant - The Combatant whose turn just started
311
858
  */
312
- protected _onStartTurn(combatant: Combatant): Promise<void>;
859
+ protected _onStartTurn(combatant: Combatant.Implementation): Promise<void>;
313
860
 
314
861
  /**
315
- * @deprecated Since v11 until v13. Use {@link Combat#updateCombatantActors} instead.
862
+ * @deprecated Since v11 until v13. Use {@link Combat.updateCombatantActors | `Combat#updateCombatantActors`} instead.
316
863
  */
317
864
  updateEffectDurations(): void;
318
865
 
319
866
  /**
320
- * @deprecated Since v12. Use {@link Combat#getCombatantsByActor} instead.
867
+ * @deprecated Since v12. Use {@link Combat.getCombatantsByActor | `Combat#getCombatantsByActor`} instead.
321
868
  */
322
- getCombatantByActor(actor: Actor): Combatant[];
869
+ getCombatantByActor(actor: Actor.Implementation): Combatant.Implementation[];
323
870
 
324
871
  /**
325
- * @deprecated Since v12. Use {@link Combat#getCombatantsByActor} instead.
872
+ * @deprecated Since v12. Use {@link Combat.getCombatantsByActor | `Combat#getCombatantsByActor`} instead.
873
+ */
874
+ getCombatantByToken(token: Token.Implementation): Combatant.Implementation[];
875
+
876
+ /*
877
+ * After this point these are not really overridden methods.
878
+ * They are here because Foundry's documents are complex and have lots of edge cases.
879
+ * There are DRY ways of representing this but this ends up being harder to understand
880
+ * for end users extending these functions, especially for static methods. There are also a
881
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
882
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
883
+ * separate like this helps against circularities.
326
884
  */
327
- getCombatantByToken(token: Token): Combatant[];
885
+
886
+ // ClientDocument overrides
887
+
888
+ /**
889
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
890
+ * this method must be overriden like so:
891
+ * ```typescript
892
+ * class SwadeCombat extends Combat {
893
+ * protected override _preCreateDescendantDocuments(...args: Combat.PreCreateDescendantDocumentsArgs) {
894
+ * super._preCreateDescendantDocuments(...args);
895
+ *
896
+ * const [parent, collection, data, options, userId] = args;
897
+ * if (collection === "combatants") {
898
+ * options; // Will be narrowed.
899
+ * }
900
+ * }
901
+ * }
902
+ * ```
903
+ */
904
+ protected override _preCreateDescendantDocuments(...args: Combat.PreCreateDescendantDocumentsArgs): void;
905
+
906
+ /**
907
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
908
+ * this method must be overriden like so:
909
+ * ```typescript
910
+ * class LancerCombat extends Combat {
911
+ * protected override _preUpdateDescendantDocuments(...args: Combat.OnUpdateDescendantDocuments) {
912
+ * super._preUpdateDescendantDocuments(...args);
913
+ *
914
+ * const [parent, collection, changes, options, userId] = args;
915
+ * if (collection === "combatants") {
916
+ * options; // Will be narrowed.
917
+ * }
918
+ * }
919
+ * }
920
+ * ```
921
+ */
922
+ protected override _preUpdateDescendantDocuments(...args: Combat.PreUpdateDescendantDocumentsArgs): void;
923
+
924
+ /**
925
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
926
+ * this method must be overriden like so:
927
+ * ```typescript
928
+ * class KultCombat extends Combat {
929
+ * protected override _preDeleteDescendantDocuments(...args: Combat.PreDeleteDescendantDocumentsArgs) {
930
+ * super._preDeleteDescendantDocuments(...args);
931
+ *
932
+ * const [parent, collection, ids, options, userId] = args;
933
+ * if (collection === "combatants") {
934
+ * options; // Will be narrowed.
935
+ * }
936
+ * }
937
+ * }
938
+ * ```
939
+ */
940
+ protected override _preDeleteDescendantDocuments(...args: Combat.PreDeleteDescendantDocumentsArgs): void;
941
+
942
+ static override defaultName(context?: Document.DefaultNameContext<Combat.SubType, Combat.Parent>): string;
943
+
944
+ static override createDialog(
945
+ data?: Document.CreateDialogData<Combat.CreateData>,
946
+ context?: Document.CreateDialogContext<Combat.SubType, Combat.Parent>,
947
+ ): Promise<Combat.Stored | null | undefined>;
948
+
949
+ static override fromDropData(
950
+ data: Document.DropData<Combat.Implementation>,
951
+ options?: Document.FromDropDataOptions,
952
+ ): Promise<Combat.Implementation | undefined>;
953
+
954
+ static override fromImport(
955
+ source: Combat.Source,
956
+ context?: Document.FromImportContext<Combat.Parent>,
957
+ ): Promise<Combat.Implementation>;
328
958
  }
329
959
  }