@league-of-foundry-developers/foundry-vtt-types 12.331.3-beta → 12.331.5

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 (559) hide show
  1. package/README.md +17 -18
  2. package/package.json +91 -32
  3. package/src/configuration/configuration.d.mts +316 -0
  4. package/src/configuration/documents.d.mts +295 -0
  5. package/src/configuration/globals.d.mts +357 -0
  6. package/src/configuration/index.d.mts +5 -0
  7. package/src/foundry/client/apps/app.d.mts +129 -122
  8. package/src/foundry/client/apps/av/av-config.d.mts +12 -7
  9. package/src/foundry/client/apps/av/cameras.d.mts +12 -7
  10. package/src/foundry/client/apps/dice/dice-config.d.mts +59 -0
  11. package/src/foundry/client/apps/dice/index.d.mts +1 -0
  12. package/src/foundry/client/apps/form.d.mts +114 -86
  13. package/src/foundry/client/apps/forms/actor.d.mts +21 -11
  14. package/src/foundry/client/apps/forms/adventure-exporter.d.mts +12 -7
  15. package/src/foundry/client/apps/forms/adventure-importer.d.mts +14 -6
  16. package/src/foundry/client/apps/forms/base-sheet.d.mts +16 -8
  17. package/src/foundry/client/apps/forms/card-config.d.mts +16 -8
  18. package/src/foundry/client/apps/forms/cards-config.d.mts +15 -14
  19. package/src/foundry/client/apps/forms/combat-config.d.mts +7 -7
  20. package/src/foundry/client/apps/forms/combatant-config.d.mts +3 -3
  21. package/src/foundry/client/apps/forms/default-sheets-config.d.mts +1 -1
  22. package/src/foundry/client/apps/forms/effect-config.d.mts +7 -7
  23. package/src/foundry/client/apps/forms/folder-config.d.mts +10 -5
  24. package/src/foundry/client/apps/forms/fonts.d.mts +42 -35
  25. package/src/foundry/client/apps/forms/grid-config.d.mts +12 -13
  26. package/src/foundry/client/apps/forms/image-popout.d.mts +29 -23
  27. package/src/foundry/client/apps/forms/item.d.mts +9 -9
  28. package/src/foundry/client/apps/forms/journal-page-sheet.d.mts +16 -14
  29. package/src/foundry/client/apps/forms/journal-sheet.d.mts +48 -38
  30. package/src/foundry/client/apps/forms/macro-config.d.mts +7 -7
  31. package/src/foundry/client/apps/forms/measure-template.d.mts +10 -12
  32. package/src/foundry/client/apps/forms/ownership.d.mts +5 -5
  33. package/src/foundry/client/apps/forms/playlist-config.d.mts +8 -10
  34. package/src/foundry/client/apps/forms/playlist-sound-config.d.mts +7 -7
  35. package/src/foundry/client/apps/forms/roll-table-config.d.mts +11 -10
  36. package/src/foundry/client/apps/forms/scene-config.d.mts +40 -41
  37. package/src/foundry/client/apps/forms/sheet-config.d.mts +9 -21
  38. package/src/foundry/client/apps/forms/user-config.d.mts +13 -12
  39. package/src/foundry/client/apps/hud/chatbubble.d.mts +18 -6
  40. package/src/foundry/client/apps/hud/container.d.mts +4 -4
  41. package/src/foundry/client/apps/hud/controls.d.mts +126 -81
  42. package/src/foundry/client/apps/hud/hotbar.d.mts +17 -12
  43. package/src/foundry/client/apps/hud/hud.d.mts +5 -5
  44. package/src/foundry/client/apps/hud/menu.d.mts +10 -3
  45. package/src/foundry/client/apps/hud/navigation.d.mts +14 -9
  46. package/src/foundry/client/apps/hud/pause.d.mts +9 -4
  47. package/src/foundry/client/apps/hud/players.d.mts +14 -9
  48. package/src/foundry/client/apps/i18n.d.mts +31 -27
  49. package/src/foundry/client/apps/index.d.mts +1 -0
  50. package/src/foundry/client/apps/placeables/drawing-config.d.mts +41 -33
  51. package/src/foundry/client/apps/placeables/drawing-hud.d.mts +5 -5
  52. package/src/foundry/client/apps/placeables/index.d.mts +0 -2
  53. package/src/foundry/client/apps/placeables/note-config.d.mts +28 -18
  54. package/src/foundry/client/apps/placeables/tile-config.d.mts +23 -10
  55. package/src/foundry/client/apps/placeables/tile-hud.d.mts +10 -5
  56. package/src/foundry/client/apps/placeables/token-config.d.mts +91 -58
  57. package/src/foundry/client/apps/placeables/token-hud.d.mts +12 -7
  58. package/src/foundry/client/apps/placeables/wall-config.d.mts +21 -17
  59. package/src/foundry/client/apps/sidebar/apps/chat-popout.d.mts +5 -5
  60. package/src/foundry/client/apps/sidebar/apps/client-settings.d.mts +3 -3
  61. package/src/foundry/client/apps/sidebar/apps/compendium.d.mts +15 -13
  62. package/src/foundry/client/apps/sidebar/apps/invitation-links.d.mts +3 -3
  63. package/src/foundry/client/apps/sidebar/apps/keybindings-config.d.mts +3 -2
  64. package/src/foundry/client/apps/sidebar/apps/module-management.d.mts +6 -6
  65. package/src/foundry/client/apps/sidebar/apps/permission-config.d.mts +6 -6
  66. package/src/foundry/client/apps/sidebar/apps/support-details.d.mts +34 -29
  67. package/src/foundry/client/apps/sidebar/apps/tours-management.d.mts +2 -2
  68. package/src/foundry/client/apps/sidebar/apps/world-config.d.mts +13 -10
  69. package/src/foundry/client/apps/sidebar/directory-tab-mixin.d.mts +50 -35
  70. package/src/foundry/client/apps/sidebar/document-directory.d.mts +52 -38
  71. package/src/foundry/client/apps/sidebar/package-configuration.d.mts +4 -4
  72. package/src/foundry/client/apps/sidebar/sidebar-tab.d.mts +3 -3
  73. package/src/foundry/client/apps/sidebar/sidebar.d.mts +9 -4
  74. package/src/foundry/client/apps/sidebar/tabs/actors-directory.d.mts +11 -2
  75. package/src/foundry/client/apps/sidebar/tabs/cards-directory.d.mts +11 -2
  76. package/src/foundry/client/apps/sidebar/tabs/chat-log.d.mts +39 -27
  77. package/src/foundry/client/apps/sidebar/tabs/combat-tracker.d.mts +21 -12
  78. package/src/foundry/client/apps/sidebar/tabs/compendium-directory.d.mts +30 -15
  79. package/src/foundry/client/apps/sidebar/tabs/items-directory.d.mts +11 -2
  80. package/src/foundry/client/apps/sidebar/tabs/journal-directory.d.mts +11 -2
  81. package/src/foundry/client/apps/sidebar/tabs/macros-directory.d.mts +14 -5
  82. package/src/foundry/client/apps/sidebar/tabs/playlists-directory.d.mts +30 -22
  83. package/src/foundry/client/apps/sidebar/tabs/roll-table-directory.d.mts +11 -2
  84. package/src/foundry/client/apps/sidebar/tabs/scenes-directory.d.mts +14 -5
  85. package/src/foundry/client/apps/sidebar/tabs/settings.d.mts +23 -5
  86. package/src/foundry/client/apps/templates.d.mts +1 -1
  87. package/src/foundry/client/av/client.d.mts +1 -1
  88. package/src/foundry/client/av/clients/simplepeer.d.mts +11 -1
  89. package/src/foundry/client/av/master.d.mts +2 -2
  90. package/src/foundry/client/av/settings.d.mts +17 -15
  91. package/src/foundry/client/config.d.mts +444 -312
  92. package/src/foundry/client/core/document-index.d.mts +11 -3
  93. package/src/foundry/client/core/hooks.d.mts +2 -4
  94. package/src/foundry/client/core/image.d.mts +14 -13
  95. package/src/foundry/client/core/issues.d.mts +9 -4
  96. package/src/foundry/client/core/keybindings.d.mts +5 -5
  97. package/src/foundry/client/core/nue.d.mts +1 -1
  98. package/src/foundry/client/core/packages.d.mts +400 -62
  99. package/src/foundry/client/core/settings.d.mts +62 -38
  100. package/src/foundry/client/core/socket.d.mts +2 -2
  101. package/src/foundry/client/core/sorting.d.mts +6 -6
  102. package/src/foundry/client/core/time.d.mts +6 -3
  103. package/src/foundry/client/core/tooltip.d.mts +2 -2
  104. package/src/foundry/client/core/tour.d.mts +59 -50
  105. package/src/foundry/client/core/tours.d.mts +1 -1
  106. package/src/foundry/client/core/utils.d.mts +33 -10
  107. package/src/foundry/client/core/video.d.mts +1 -1
  108. package/src/foundry/client/core/workers.d.mts +24 -17
  109. package/src/foundry/client/data/abstract/canvas-document.d.mts +22 -28
  110. package/src/foundry/client/data/abstract/client-document.d.mts +238 -206
  111. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +24 -40
  112. package/src/foundry/client/data/abstract/document-collection.d.mts +96 -68
  113. package/src/foundry/client/data/abstract/world-collection.d.mts +53 -54
  114. package/src/foundry/client/data/collections/actors.d.mts +30 -28
  115. package/src/foundry/client/data/collections/cards.d.mts +16 -3
  116. package/src/foundry/client/data/collections/combats.d.mts +18 -5
  117. package/src/foundry/client/data/collections/compendium-collection.d.mts +84 -101
  118. package/src/foundry/client/data/collections/compendium-folders.d.mts +6 -6
  119. package/src/foundry/client/data/collections/compendium-packs.d.mts +5 -5
  120. package/src/foundry/client/data/collections/fog.d.mts +16 -3
  121. package/src/foundry/client/data/collections/folder.d.mts +20 -6
  122. package/src/foundry/client/data/collections/items.d.mts +17 -4
  123. package/src/foundry/client/data/collections/journal.d.mts +22 -7
  124. package/src/foundry/client/data/collections/macros.d.mts +21 -19
  125. package/src/foundry/client/data/collections/messages.d.mts +19 -6
  126. package/src/foundry/client/data/collections/playlists.d.mts +17 -5
  127. package/src/foundry/client/data/collections/scenes.d.mts +24 -27
  128. package/src/foundry/client/data/collections/settings.d.mts +16 -3
  129. package/src/foundry/client/data/collections/tables.d.mts +18 -5
  130. package/src/foundry/client/data/collections/users.d.mts +22 -10
  131. package/src/foundry/client/data/documents/active-effect.d.mts +780 -112
  132. package/src/foundry/client/data/documents/actor-delta.d.mts +705 -31
  133. package/src/foundry/client/data/documents/actor.d.mts +806 -98
  134. package/src/foundry/client/data/documents/adventure.d.mts +522 -59
  135. package/src/foundry/client/data/documents/ambient-light.d.mts +427 -20
  136. package/src/foundry/client/data/documents/ambient-sound.d.mts +478 -14
  137. package/src/foundry/client/data/documents/card.d.mts +598 -44
  138. package/src/foundry/client/data/documents/cards.d.mts +862 -169
  139. package/src/foundry/client/data/documents/chat-message.d.mts +668 -77
  140. package/src/foundry/client/data/documents/combat.d.mts +757 -107
  141. package/src/foundry/client/data/documents/combatant.d.mts +545 -32
  142. package/src/foundry/client/data/documents/drawing.d.mts +545 -14
  143. package/src/foundry/client/data/documents/fog-exploration.d.mts +465 -30
  144. package/src/foundry/client/data/documents/folder.d.mts +567 -51
  145. package/src/foundry/client/data/documents/index.d.mts +2 -0
  146. package/src/foundry/client/data/documents/item.d.mts +691 -24
  147. package/src/foundry/client/data/documents/journal-entry-page.d.mts +654 -55
  148. package/src/foundry/client/data/documents/journal-entry.d.mts +631 -35
  149. package/src/foundry/client/data/documents/macro.d.mts +560 -31
  150. package/src/foundry/client/data/documents/measured-template.d.mts +484 -15
  151. package/src/foundry/client/data/documents/note.d.mts +498 -15
  152. package/src/foundry/client/data/documents/playlist-sound.d.mts +443 -45
  153. package/src/foundry/client/data/documents/playlist.d.mts +710 -99
  154. package/src/foundry/client/data/documents/region-behavior.d.mts +516 -0
  155. package/src/foundry/client/data/documents/region.d.mts +789 -0
  156. package/src/foundry/client/data/documents/scene.d.mts +1216 -159
  157. package/src/foundry/client/data/documents/setting.d.mts +406 -23
  158. package/src/foundry/client/data/documents/table-result.d.mts +488 -14
  159. package/src/foundry/client/data/documents/table.d.mts +667 -78
  160. package/src/foundry/client/data/documents/tile.d.mts +505 -14
  161. package/src/foundry/client/data/documents/token.d.mts +1191 -143
  162. package/src/foundry/client/data/documents/user.d.mts +613 -57
  163. package/src/foundry/client/data/documents/wall.d.mts +555 -14
  164. package/src/foundry/client/game.d.mts +60 -92
  165. package/src/foundry/client/head.d.mts +9 -9
  166. package/src/foundry/client/hooks.d.mts +259 -248
  167. package/src/foundry/client/pixi/board.d.mts +107 -94
  168. package/src/foundry/client/pixi/core/containers/base-canvas-group.d.mts +97 -25
  169. package/src/foundry/client/pixi/core/containers/cached-container.d.mts +37 -19
  170. package/src/foundry/client/pixi/core/containers/full-canvas-container.d.mts +7 -10
  171. package/src/foundry/client/pixi/core/containers/point-source-mesh.d.mts +25 -15
  172. package/src/foundry/client/pixi/core/containers/quad-mesh.d.mts +16 -6
  173. package/src/foundry/client/pixi/core/containers/quadtree.d.mts +113 -54
  174. package/src/foundry/client/pixi/core/containers/sprite-mesh.d.mts +69 -26
  175. package/src/foundry/client/pixi/core/containers/unbound-container.d.mts +20 -2
  176. package/src/foundry/client/pixi/core/interaction/canvas-animation.d.mts +164 -99
  177. package/src/foundry/client/pixi/core/interaction/control-icon.d.mts +61 -22
  178. package/src/foundry/client/pixi/core/interaction/mouse-handler.d.mts +120 -53
  179. package/src/foundry/client/pixi/core/interaction/ping.d.mts +62 -31
  180. package/src/foundry/client/pixi/core/interaction/pings/chevron.d.mts +23 -10
  181. package/src/foundry/client/pixi/core/interaction/pings/pulse.d.mts +91 -34
  182. package/src/foundry/client/pixi/core/interaction/render-flags.d.mts +69 -30
  183. package/src/foundry/client/pixi/core/interaction/resize-handle.d.mts +35 -5
  184. package/src/foundry/client/pixi/core/interaction/targets.d.mts +21 -18
  185. package/src/foundry/client/pixi/core/loader.d.mts +86 -76
  186. package/src/foundry/client/pixi/core/shapes/limited-angle-polygon.d.mts +42 -17
  187. package/src/foundry/client/pixi/core/shapes/polygon-mesher.d.mts +92 -64
  188. package/src/foundry/client/pixi/core/shapes/precise-text.d.mts +28 -10
  189. package/src/foundry/client/pixi/core/shapes/ray.d.mts +47 -23
  190. package/src/foundry/client/pixi/core/shapes/source-polygon.d.mts +170 -75
  191. package/src/foundry/client/pixi/extensions/circle.d.mts +128 -125
  192. package/src/foundry/client/pixi/extensions/graphics.d.mts +3 -1
  193. package/src/foundry/client/pixi/extensions/observable-transform.d.mts +5 -4
  194. package/src/foundry/client/pixi/extensions/polygon.d.mts +154 -134
  195. package/src/foundry/client/pixi/extensions/rectangle.d.mts +242 -259
  196. package/src/foundry/client/pixi/groups/effects.d.mts +75 -24
  197. package/src/foundry/client/pixi/groups/environment.d.mts +68 -19
  198. package/src/foundry/client/pixi/groups/hidden.d.mts +27 -11
  199. package/src/foundry/client/pixi/groups/interface.d.mts +62 -38
  200. package/src/foundry/client/pixi/groups/overlay.d.mts +19 -7
  201. package/src/foundry/client/pixi/groups/primary.d.mts +66 -44
  202. package/src/foundry/client/pixi/groups/rendered.d.mts +19 -7
  203. package/src/foundry/client/pixi/layers/base/canvas-layer.d.mts +11 -15
  204. package/src/foundry/client/pixi/layers/base/interaction-layer.d.mts +29 -28
  205. package/src/foundry/client/pixi/layers/base/placeables-layer.d.mts +306 -272
  206. package/src/foundry/client/pixi/layers/controls/cursor.d.mts +18 -9
  207. package/src/foundry/client/pixi/layers/controls/door.d.mts +32 -11
  208. package/src/foundry/client/pixi/layers/controls/layer.d.mts +89 -77
  209. package/src/foundry/client/pixi/layers/controls/ruler.d.mts +121 -96
  210. package/src/foundry/client/pixi/layers/effects/background-effects.d.mts +9 -12
  211. package/src/foundry/client/pixi/layers/effects/coloration-effects.d.mts +9 -10
  212. package/src/foundry/client/pixi/layers/effects/darkness-effects.d.mts +8 -8
  213. package/src/foundry/client/pixi/layers/effects/illumination-effects.d.mts +22 -22
  214. package/src/foundry/client/pixi/layers/effects/visibility.d.mts +106 -86
  215. package/src/foundry/client/pixi/layers/effects/weather/particles/effect.d.mts +14 -5
  216. package/src/foundry/client/pixi/layers/effects/weather/particles/leaves.d.mts +31 -2
  217. package/src/foundry/client/pixi/layers/effects/weather-effects.d.mts +137 -65
  218. package/src/foundry/client/pixi/layers/grid/highlight.d.mts +14 -4
  219. package/src/foundry/client/pixi/layers/grid/layer.d.mts +92 -92
  220. package/src/foundry/client/pixi/layers/grid/mesh.d.mts +37 -16
  221. package/src/foundry/client/pixi/layers/masks/depth.d.mts +12 -7
  222. package/src/foundry/client/pixi/layers/masks/occlusion.d.mts +19 -12
  223. package/src/foundry/client/pixi/layers/masks/vision.d.mts +104 -18
  224. package/src/foundry/client/pixi/layers/placeables/drawings.d.mts +16 -15
  225. package/src/foundry/client/pixi/layers/placeables/index.d.mts +1 -0
  226. package/src/foundry/client/pixi/layers/placeables/lighting.d.mts +12 -14
  227. package/src/foundry/client/pixi/layers/placeables/notes.d.mts +49 -32
  228. package/src/foundry/client/pixi/layers/placeables/regions.d.mts +113 -0
  229. package/src/foundry/client/pixi/layers/placeables/sounds.d.mts +81 -67
  230. package/src/foundry/client/pixi/layers/placeables/templates.d.mts +11 -15
  231. package/src/foundry/client/pixi/layers/placeables/tiles.d.mts +30 -21
  232. package/src/foundry/client/pixi/layers/placeables/tokens.d.mts +66 -52
  233. package/src/foundry/client/pixi/layers/placeables/walls.d.mts +54 -57
  234. package/src/foundry/client/pixi/perception/clockwise-sweep.d.mts +62 -27
  235. package/src/foundry/client/pixi/perception/detection-mode.d.mts +121 -47
  236. package/src/foundry/client/pixi/perception/fog.d.mts +38 -15
  237. package/src/foundry/client/pixi/perception/perception-manager.d.mts +136 -136
  238. package/src/foundry/client/pixi/perception/vision-mode.d.mts +91 -64
  239. package/src/foundry/client/pixi/perception/weiler-atherton-clipping.d.mts +44 -16
  240. package/src/foundry/client/pixi/placeable.d.mts +239 -137
  241. package/src/foundry/client/pixi/placeables/drawing.d.mts +255 -133
  242. package/src/foundry/client/pixi/placeables/index.d.mts +1 -0
  243. package/src/foundry/client/pixi/placeables/light.d.mts +193 -64
  244. package/src/foundry/client/pixi/placeables/note.d.mts +145 -54
  245. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-canvas-object.d.mts +30 -8
  246. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-graphics.d.mts +41 -11
  247. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-occludable-object.d.mts +59 -18
  248. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-sprite-mesh.d.mts +120 -37
  249. package/src/foundry/client/pixi/placeables/region.d.mts +280 -0
  250. package/src/foundry/client/pixi/placeables/sound.d.mts +205 -66
  251. package/src/foundry/client/pixi/placeables/template.d.mts +181 -100
  252. package/src/foundry/client/pixi/placeables/tile.d.mts +206 -140
  253. package/src/foundry/client/pixi/placeables/token.d.mts +916 -449
  254. package/src/foundry/client/pixi/placeables/wall.d.mts +249 -129
  255. package/src/foundry/client/pixi/webgl/extensions/batch-renderer.d.mts +72 -33
  256. package/src/foundry/client/pixi/webgl/extensions/batch-shader-generator.d.mts +10 -9
  257. package/src/foundry/client/pixi/webgl/helpers/{framebugger-snapshot.d.mts → framebuffer-snapshot.d.mts} +10 -9
  258. package/src/foundry/client/pixi/webgl/helpers/index.d.mts +1 -1
  259. package/src/foundry/client/pixi/webgl/helpers/smooth-noise.d.mts +38 -23
  260. package/src/foundry/client/pixi/webgl/helpers/texture-extractor.d.mts +82 -53
  261. package/src/foundry/client/pixi/webgl/shaders/base-shader-mixin.d.mts +12 -12
  262. package/src/foundry/client/pixi/webgl/shaders/base-shader.d.mts +45 -28
  263. package/src/foundry/client/pixi/webgl/shaders/filters/base-filter.d.mts +12 -11
  264. package/src/foundry/client/pixi/webgl/shaders/filters/base-mask-filter.d.mts +12 -10
  265. package/src/foundry/client/pixi/webgl/shaders/filters/blur.d.mts +22 -20
  266. package/src/foundry/client/pixi/webgl/shaders/filters/effects-masking.d.mts +36 -32
  267. package/src/foundry/client/pixi/webgl/shaders/filters/environment.d.mts +10 -9
  268. package/src/foundry/client/pixi/webgl/shaders/filters/glow-overlay.d.mts +12 -11
  269. package/src/foundry/client/pixi/webgl/shaders/filters/invisibility.d.mts +10 -9
  270. package/src/foundry/client/pixi/webgl/shaders/filters/outline-overlay.d.mts +12 -11
  271. package/src/foundry/client/pixi/webgl/shaders/filters/transition.d.mts +67 -60
  272. package/src/foundry/client/pixi/webgl/shaders/filters/visibility.d.mts +24 -17
  273. package/src/foundry/client/pixi/webgl/shaders/filters/vision-mask-filter.d.mts +13 -10
  274. package/src/foundry/client/pixi/webgl/shaders/filters/void.d.mts +10 -9
  275. package/src/foundry/client/pixi/webgl/shaders/filters/weather-occlusion-masks.d.mts +11 -10
  276. package/src/foundry/client/pixi/webgl/shaders/fragment-channel-mixin.d.mts +20 -14
  277. package/src/foundry/client/pixi/webgl/shaders/grid/grid.d.mts +12 -11
  278. package/src/foundry/client/pixi/webgl/shaders/lighting/background-lighting.d.mts +10 -9
  279. package/src/foundry/client/pixi/webgl/shaders/lighting/base-lighting.d.mts +33 -33
  280. package/src/foundry/client/pixi/webgl/shaders/lighting/coloration-lighting.d.mts +10 -9
  281. package/src/foundry/client/pixi/webgl/shaders/lighting/darkness-lighting.d.mts +10 -9
  282. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/bewitching-wave.d.mts +19 -17
  283. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/black-hole.d.mts +10 -9
  284. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/chroma.d.mts +10 -9
  285. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/emanation.d.mts +10 -9
  286. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/energy-field.d.mts +10 -9
  287. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fairy-light.d.mts +19 -17
  288. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/flame.d.mts +19 -17
  289. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fog.d.mts +10 -9
  290. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/force-grid.d.mts +10 -8
  291. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/ghost-light.d.mts +19 -17
  292. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/hexa-dome.d.mts +10 -9
  293. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/light-dome.d.mts +10 -9
  294. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/magical-gloom.d.mts +10 -9
  295. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/pulse.d.mts +19 -17
  296. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/radial-rainbow.d.mts +10 -9
  297. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/revolving-light.d.mts +10 -9
  298. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/roiling-mass.d.mts +10 -9
  299. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/siren-light.d.mts +19 -17
  300. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/smoke-patch.d.mts +20 -17
  301. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/star-light.d.mts +10 -9
  302. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/sunburst.d.mts +19 -17
  303. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/swirling-rainbow.d.mts +10 -9
  304. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/torch.d.mts +19 -17
  305. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/vortex.d.mts +19 -17
  306. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/wave.d.mts +19 -17
  307. package/src/foundry/client/pixi/webgl/shaders/lighting/illumination-lighting.d.mts +10 -9
  308. package/src/foundry/client/pixi/webgl/shaders/region/adjust-darkness-level.d.mts +71 -29
  309. package/src/foundry/client/pixi/webgl/shaders/region/base.d.mts +54 -10
  310. package/src/foundry/client/pixi/webgl/shaders/region/highlight.d.mts +69 -9
  311. package/src/foundry/client/pixi/webgl/shaders/samplers/base-sampler.d.mts +24 -25
  312. package/src/foundry/client/pixi/webgl/shaders/samplers/baseline-illumination.d.mts +10 -9
  313. package/src/foundry/client/pixi/webgl/shaders/samplers/color-adjustment.d.mts +38 -29
  314. package/src/foundry/client/pixi/webgl/shaders/samplers/depth.d.mts +21 -17
  315. package/src/foundry/client/pixi/webgl/shaders/samplers/fog-of-war.d.mts +10 -9
  316. package/src/foundry/client/pixi/webgl/shaders/samplers/occlusion.d.mts +20 -18
  317. package/src/foundry/client/pixi/webgl/shaders/samplers/primary.d.mts +11 -2
  318. package/src/foundry/client/pixi/webgl/shaders/samplers/token-ring.d.mts +28 -2
  319. package/src/foundry/client/pixi/webgl/shaders/vision/background-vision.d.mts +10 -9
  320. package/src/foundry/client/pixi/webgl/shaders/vision/base-vision.d.mts +11 -9
  321. package/src/foundry/client/pixi/webgl/shaders/vision/coloration-vision.d.mts +10 -9
  322. package/src/foundry/client/pixi/webgl/shaders/vision/effects/amplification.d.mts +10 -9
  323. package/src/foundry/client/pixi/webgl/shaders/vision/effects/wave.d.mts +19 -17
  324. package/src/foundry/client/pixi/webgl/shaders/vision/illumination-vision.d.mts +10 -9
  325. package/src/foundry/client/pixi/webgl/shaders/weather/base-weather.d.mts +40 -36
  326. package/src/foundry/client/pixi/webgl/shaders/weather/effect.d.mts +27 -33
  327. package/src/foundry/client/pixi/webgl/shaders/weather/fog.d.mts +17 -16
  328. package/src/foundry/client/pixi/webgl/shaders/weather/rain.d.mts +19 -18
  329. package/src/foundry/client/pixi/webgl/shaders/weather/snow.d.mts +15 -14
  330. package/src/foundry/client/pixi/workers/texture-worker.d.mts +33 -53
  331. package/src/foundry/client/tours/setup-tour.d.mts +15 -10
  332. package/src/foundry/client/ui/context.d.mts +48 -40
  333. package/src/foundry/client/ui/dialog.d.mts +137 -126
  334. package/src/foundry/client/ui/drag.d.mts +1 -1
  335. package/src/foundry/client/ui/dragdrop.d.mts +34 -28
  336. package/src/foundry/client/ui/editor.d.mts +29 -21
  337. package/src/foundry/client/ui/filepicker.d.mts +43 -38
  338. package/src/foundry/client/ui/filter.d.mts +62 -50
  339. package/src/foundry/client/ui/forms.d.mts +22 -22
  340. package/src/foundry/client/ui/notifications.d.mts +10 -3
  341. package/src/foundry/client/ui/prosemirror.d.mts +15 -7
  342. package/src/foundry/client/ui/secrets.d.mts +42 -27
  343. package/src/foundry/client/ui/tabs.d.mts +40 -33
  344. package/src/foundry/client-esm/applications/_module.d.mts +3 -3
  345. package/src/foundry/client-esm/applications/_types.d.mts +0 -2
  346. package/src/foundry/client-esm/applications/api/_module.d.mts +2 -2
  347. package/src/foundry/client-esm/applications/api/application.d.mts +28 -19
  348. package/src/foundry/client-esm/applications/api/dialog.d.mts +20 -22
  349. package/src/foundry/client-esm/applications/api/document-sheet.d.mts +26 -12
  350. package/src/foundry/client-esm/applications/api/handlebars-application.d.mts +142 -126
  351. package/src/foundry/client-esm/applications/apps/_module.d.mts +2 -2
  352. package/src/foundry/client-esm/applications/apps/compendium-art-config.d.mts +10 -10
  353. package/src/foundry/client-esm/applications/apps/permission-config.d.mts +3 -3
  354. package/src/foundry/client-esm/applications/dice/_module.d.mts +2 -2
  355. package/src/foundry/client-esm/applications/dice/roll-resolver.d.mts +14 -2
  356. package/src/foundry/client-esm/applications/elements/_module.d.mts +2 -2
  357. package/src/foundry/client-esm/applications/elements/document-tags.d.mts +2 -0
  358. package/src/foundry/client-esm/applications/elements/file-picker.d.mts +1 -1
  359. package/src/foundry/client-esm/applications/elements/multi-select.d.mts +15 -5
  360. package/src/foundry/client-esm/applications/elements/string-tags.d.mts +1 -1
  361. package/src/foundry/client-esm/applications/forms/fields.d.mts +1 -1
  362. package/src/foundry/client-esm/applications/sheets/_module.d.mts +2 -2
  363. package/src/foundry/client-esm/applications/sheets/actor-sheet.d.mts +3 -3
  364. package/src/foundry/client-esm/applications/sheets/ambient-light-config.d.mts +10 -8
  365. package/src/foundry/client-esm/applications/sheets/ambient-sound-config.d.mts +9 -7
  366. package/src/foundry/client-esm/applications/sheets/item-sheet.d.mts +3 -3
  367. package/src/foundry/client-esm/applications/sheets/region-behavior-config.d.mts +30 -5
  368. package/src/foundry/client-esm/applications/sheets/region-config.d.mts +36 -5
  369. package/src/foundry/client-esm/applications/sheets/user-config.d.mts +8 -7
  370. package/src/foundry/client-esm/applications/ui/_module.d.mts +2 -2
  371. package/src/foundry/client-esm/applications/ui/region-legend.d.mts +45 -3
  372. package/src/foundry/client-esm/audio/_module.d.mts +2 -3
  373. package/src/foundry/client-esm/audio/_types.d.mts +2 -0
  374. package/src/foundry/client-esm/audio/biquad.d.mts +76 -26
  375. package/src/foundry/client-esm/audio/cache.d.mts +31 -20
  376. package/src/foundry/client-esm/audio/convolver.d.mts +47 -25
  377. package/src/foundry/client-esm/audio/helper.d.mts +124 -80
  378. package/src/foundry/client-esm/audio/sound.d.mts +230 -126
  379. package/src/foundry/client-esm/audio/timeout.d.mts +28 -12
  380. package/src/foundry/client-esm/canvas/_module.d.mts +2 -2
  381. package/src/foundry/client-esm/canvas/edges/_module.d.mts +2 -2
  382. package/src/foundry/client-esm/canvas/edges/collision.d.mts +69 -18
  383. package/src/foundry/client-esm/canvas/edges/edge.d.mts +110 -41
  384. package/src/foundry/client-esm/canvas/edges/edges.d.mts +10 -0
  385. package/src/foundry/client-esm/canvas/edges/vertex.d.mts +56 -26
  386. package/src/foundry/client-esm/canvas/regions/_module.d.mts +6 -11
  387. package/src/foundry/client-esm/canvas/regions/geometry.d.mts +38 -0
  388. package/src/foundry/client-esm/canvas/regions/mesh.d.mts +72 -0
  389. package/src/foundry/client-esm/canvas/regions/polygon-tree.d.mts +130 -0
  390. package/src/foundry/client-esm/canvas/regions/shape.d.mts +129 -0
  391. package/src/foundry/client-esm/canvas/scene-manager.d.mts +13 -3
  392. package/src/foundry/client-esm/canvas/smaa/blend.d.mts +14 -3
  393. package/src/foundry/client-esm/canvas/smaa/edges.d.mts +25 -3
  394. package/src/foundry/client-esm/canvas/smaa/smaa.d.mts +121 -23
  395. package/src/foundry/client-esm/canvas/smaa/weights.d.mts +26 -3
  396. package/src/foundry/client-esm/canvas/sources/_module.d.mts +2 -2
  397. package/src/foundry/client-esm/canvas/sources/base-effect-source.d.mts +84 -40
  398. package/src/foundry/client-esm/canvas/sources/base-light-source.d.mts +103 -39
  399. package/src/foundry/client-esm/canvas/sources/global-light-source.d.mts +89 -15
  400. package/src/foundry/client-esm/canvas/sources/point-darkness-source.d.mts +71 -27
  401. package/src/foundry/client-esm/canvas/sources/point-effect-source.d.mts +49 -20
  402. package/src/foundry/client-esm/canvas/sources/point-light-source.d.mts +57 -16
  403. package/src/foundry/client-esm/canvas/sources/point-movement-source.d.mts +31 -4
  404. package/src/foundry/client-esm/canvas/sources/point-sound-source.d.mts +45 -12
  405. package/src/foundry/client-esm/canvas/sources/point-vision-source.d.mts +98 -52
  406. package/src/foundry/client-esm/canvas/sources/rendered-effect-source.d.mts +180 -69
  407. package/src/foundry/client-esm/canvas/tokens/_module.d.mts +2 -3
  408. package/src/foundry/client-esm/canvas/tokens/ring-config.d.mts +175 -2
  409. package/src/foundry/client-esm/canvas/tokens/ring-data.d.mts +142 -2
  410. package/src/foundry/client-esm/canvas/tokens/ring.d.mts +284 -2
  411. package/src/foundry/client-esm/client.d.mts +47 -54
  412. package/src/foundry/client-esm/data/_module.d.mts +2 -2
  413. package/src/foundry/client-esm/data/client-backend.d.mts +22 -23
  414. package/src/foundry/client-esm/data/region-behaviors/_module.d.mts +11 -14
  415. package/src/foundry/client-esm/data/region-behaviors/adjust-darkness-level.d.mts +56 -0
  416. package/src/foundry/client-esm/data/region-behaviors/base.d.mts +59 -0
  417. package/src/foundry/client-esm/data/region-behaviors/display-scrolling-text.d.mts +64 -0
  418. package/src/foundry/client-esm/data/region-behaviors/execute-macro.d.mts +27 -0
  419. package/src/foundry/client-esm/data/region-behaviors/execute-script.d.mts +23 -0
  420. package/src/foundry/client-esm/data/region-behaviors/pause-game.d.mts +23 -0
  421. package/src/foundry/client-esm/data/region-behaviors/suppress-weather.d.mts +17 -0
  422. package/src/foundry/client-esm/data/region-behaviors/teleport-token.d.mts +32 -0
  423. package/src/foundry/client-esm/data/region-behaviors/toggle-behavior.d.mts +31 -0
  424. package/src/foundry/client-esm/dice/_module.d.mts +2 -3
  425. package/src/foundry/client-esm/dice/parser.d.mts +11 -25
  426. package/src/foundry/client-esm/dice/roll.d.mts +112 -89
  427. package/src/foundry/client-esm/dice/terms/_module.d.mts +2 -3
  428. package/src/foundry/client-esm/dice/terms/coin.d.mts +8 -5
  429. package/src/foundry/client-esm/dice/terms/dice.d.mts +93 -63
  430. package/src/foundry/client-esm/dice/terms/die.d.mts +11 -4
  431. package/src/foundry/client-esm/dice/terms/fate.d.mts +9 -2
  432. package/src/foundry/client-esm/dice/terms/function.d.mts +18 -18
  433. package/src/foundry/client-esm/dice/terms/numeric.d.mts +3 -5
  434. package/src/foundry/client-esm/dice/terms/operator.d.mts +2 -2
  435. package/src/foundry/client-esm/dice/terms/parenthetical.d.mts +9 -10
  436. package/src/foundry/client-esm/dice/terms/pool.d.mts +25 -31
  437. package/src/foundry/client-esm/dice/terms/string.d.mts +4 -4
  438. package/src/foundry/client-esm/dice/terms/term.d.mts +18 -4
  439. package/src/foundry/client-esm/dice/twister.d.mts +3 -3
  440. package/src/foundry/client-esm/helpers/_module.d.mts +2 -2
  441. package/src/foundry/client-esm/helpers/_types.d.mts +12 -46
  442. package/src/foundry/client-esm/helpers/compendium-art.d.mts +56 -4
  443. package/src/foundry/common/abstract/_types.d.mts +60 -54
  444. package/src/foundry/common/abstract/backend.d.mts +51 -45
  445. package/src/foundry/common/abstract/data.d.mts +265 -236
  446. package/src/foundry/common/abstract/document.d.mts +1449 -464
  447. package/src/foundry/common/abstract/embedded-collection-delta.d.mts +1 -1
  448. package/src/foundry/common/abstract/embedded-collection.d.mts +37 -7
  449. package/src/foundry/common/abstract/module.d.mts +3 -2
  450. package/src/foundry/common/abstract/singleton-collection.d.mts +1 -1
  451. package/src/foundry/common/abstract/socket.d.mts +1 -1
  452. package/src/foundry/common/abstract/type-data.d.mts +61 -55
  453. package/src/foundry/common/config.d.mts +11 -3
  454. package/src/foundry/common/constants.d.mts +261 -231
  455. package/src/foundry/common/data/data.d.mts +238 -102
  456. package/src/foundry/common/data/fields.d.mts +1334 -874
  457. package/src/foundry/common/data/module.d.mts +2 -2
  458. package/src/foundry/common/data/validation-failure.d.mts +12 -9
  459. package/src/foundry/common/documents/_module.d.mts +4 -2
  460. package/src/foundry/common/documents/_types.d.mts +22 -56
  461. package/src/foundry/common/documents/active-effect.d.mts +358 -194
  462. package/src/foundry/common/documents/actor-delta.d.mts +403 -73
  463. package/src/foundry/common/documents/actor.d.mts +359 -117
  464. package/src/foundry/common/documents/adventure.d.mts +312 -142
  465. package/src/foundry/common/documents/ambient-light.d.mts +296 -75
  466. package/src/foundry/common/documents/ambient-sound.d.mts +296 -109
  467. package/src/foundry/common/documents/card.d.mts +321 -187
  468. package/src/foundry/common/documents/cards.d.mts +353 -125
  469. package/src/foundry/common/documents/chat-message.d.mts +338 -167
  470. package/src/foundry/common/documents/combat.d.mts +358 -94
  471. package/src/foundry/common/documents/combatant.d.mts +323 -92
  472. package/src/foundry/common/documents/drawing.d.mts +327 -206
  473. package/src/foundry/common/documents/fog-exploration.d.mts +303 -69
  474. package/src/foundry/common/documents/folder.d.mts +307 -82
  475. package/src/foundry/common/documents/item.d.mts +377 -100
  476. package/src/foundry/common/documents/journal-entry-page.d.mts +327 -187
  477. package/src/foundry/common/documents/journal-entry.d.mts +345 -68
  478. package/src/foundry/common/documents/macro.d.mts +325 -139
  479. package/src/foundry/common/documents/measured-template.d.mts +328 -138
  480. package/src/foundry/common/documents/note.d.mts +312 -151
  481. package/src/foundry/common/documents/playlist-sound.d.mts +309 -102
  482. package/src/foundry/common/documents/playlist.d.mts +341 -131
  483. package/src/foundry/common/documents/region-behavior.d.mts +360 -0
  484. package/src/foundry/common/documents/region.d.mts +355 -0
  485. package/src/foundry/common/documents/roll-table.d.mts +320 -102
  486. package/src/foundry/common/documents/scene.d.mts +437 -350
  487. package/src/foundry/common/documents/setting.d.mts +285 -54
  488. package/src/foundry/common/documents/table-result.d.mts +326 -103
  489. package/src/foundry/common/documents/tile.d.mts +337 -172
  490. package/src/foundry/common/documents/token.d.mts +396 -447
  491. package/src/foundry/common/documents/user.d.mts +296 -173
  492. package/src/foundry/common/documents/wall.d.mts +303 -156
  493. package/src/foundry/common/grid/_module.d.mts +3 -3
  494. package/src/foundry/common/grid/base.d.mts +66 -49
  495. package/src/foundry/common/grid/gridless.d.mts +2 -2
  496. package/src/foundry/common/grid/hexagonal.d.mts +35 -28
  497. package/src/foundry/common/grid/square.d.mts +3 -3
  498. package/src/foundry/common/packages/base-module.d.mts +6 -24
  499. package/src/foundry/common/packages/base-package.d.mts +56 -31
  500. package/src/foundry/common/packages/base-system.d.mts +45 -63
  501. package/src/foundry/common/packages/base-world.d.mts +15 -61
  502. package/src/foundry/common/packages/module.d.mts +7 -7
  503. package/src/foundry/common/packages/sub-types.d.mts +4 -6
  504. package/src/foundry/common/primitives/array.d.mts +4 -4
  505. package/src/foundry/common/primitives/math.d.mts +7 -1
  506. package/src/foundry/common/primitives/number.d.mts +2 -2
  507. package/src/foundry/common/primitives/set.d.mts +17 -14
  508. package/src/foundry/common/primitives/string.d.mts +1 -1
  509. package/src/foundry/common/prosemirror/_module.d.mts +15 -15
  510. package/src/foundry/common/prosemirror/dirty-plugin.d.mts +1 -1
  511. package/src/foundry/common/prosemirror/dom-parser.d.mts +2 -1
  512. package/src/foundry/common/prosemirror/dropdown.d.mts +1 -1
  513. package/src/foundry/common/prosemirror/highlight-matches-plugin.d.mts +2 -2
  514. package/src/foundry/common/prosemirror/image-plugin.d.mts +1 -1
  515. package/src/foundry/common/prosemirror/menu.d.mts +3 -3
  516. package/src/foundry/common/prosemirror/paste-transformer.d.mts +1 -1
  517. package/src/foundry/common/prosemirror/plugin.d.mts +2 -2
  518. package/src/foundry/common/prosemirror/schema/index.d.mts +0 -1
  519. package/src/foundry/common/prosemirror/schema/lists.d.mts +2 -0
  520. package/src/foundry/common/prosemirror/util.d.mts +1 -1
  521. package/src/foundry/common/types.d.mts +3 -3
  522. package/src/foundry/common/utils/bitmask.d.mts +23 -11
  523. package/src/foundry/common/utils/collection.d.mts +61 -38
  524. package/src/foundry/common/utils/color.d.mts +20 -2
  525. package/src/foundry/common/utils/event-emitter.d.mts +32 -17
  526. package/src/foundry/common/utils/helpers.d.mts +36 -26
  527. package/src/foundry/common/utils/http.d.mts +2 -2
  528. package/src/foundry/common/utils/module.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/foundry/index.d.mts +0 -1
  532. package/src/foundry/{clipper → public/scripts/clipper}/clipper.d.mts +58 -16
  533. package/src/foundry/public/scripts/index.d.mts +1 -0
  534. package/src/foundry/public/scripts/workers/image-compressor.d.mts +23 -0
  535. package/src/foundry/public/scripts/workers/index.d.mts +1 -0
  536. package/{index-lenient.d.mts → src/index-lenient.d.mts} +2 -0
  537. package/src/index.d.mts +6 -0
  538. package/src/tsconfig.json +15 -0
  539. package/src/types/augments/particles.d.mts +29 -0
  540. package/src/types/augments/pixi.d.mts +1024 -21
  541. package/src/types/augments/smooth.d.mts +31 -0
  542. package/src/types/augments/tinyMCE.d.mts +1 -1
  543. package/src/types/config.d.mts +18 -313
  544. package/src/types/documentConfiguration.d.mts +286 -542
  545. package/src/types/index.d.mts +1 -1
  546. package/src/types/lib.d.mts +12 -0
  547. package/src/types/workers/image-compressor.d.mts +176 -0
  548. package/src/utils/index.d.mts +1279 -0
  549. package/tsconfig.json +29 -0
  550. package/tsconfig.main.json +8 -0
  551. package/tsconfig.miscellaneous.json +16 -0
  552. package/index.d.mts +0 -5
  553. package/src/foundry/client/apps/placeables/light-config.d.mts +0 -100
  554. package/src/foundry/client/apps/placeables/sound-config.d.mts +0 -43
  555. package/src/foundry/common/documents/module.d.mts +0 -35
  556. package/src/foundry/common/primitives/regex.d.mts +0 -12
  557. package/src/types/helperTypes.d.mts +0 -583
  558. package/src/types/utils.d.mts +0 -539
  559. /package/src/foundry/{clipper → public/scripts/clipper}/index.d.mts +0 -0
@@ -1,81 +1,555 @@
1
- import type { ValueOf } from "../../../../types/utils.d.mts";
1
+ import type { ConfiguredCombatant } from "../../../../configuration/index.d.mts";
2
+ import type { AnyObject, Merge } from "#utils";
3
+ import type { documents } from "../../../client-esm/client.d.mts";
2
4
  import type Document from "../../../common/abstract/document.d.mts";
3
- import type { DocumentDatabaseOperations } from "../../../common/abstract/document.d.mts";
5
+ import type { DataSchema } from "../../../common/data/fields.d.mts";
6
+ import type { fields } from "../../../common/data/module.d.mts";
4
7
  import type BaseCombatant from "../../../common/documents/combatant.d.mts";
5
8
 
6
9
  declare global {
7
10
  namespace Combatant {
8
- type Metadata = Document.MetadataFor<Combatant>;
11
+ /**
12
+ * The document's name.
13
+ */
14
+ type Name = "Combatant";
15
+
16
+ /**
17
+ * The arguments to construct the document.
18
+ */
19
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
20
+
21
+ /**
22
+ * The documents embedded within `Combatant`.
23
+ */
24
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
25
+
26
+ /**
27
+ * The implementation of the `Combatant` document instance configured through `CONFIG.Combatant.documentClass` in Foundry and
28
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredCombatant | `fvtt-types/configuration/ConfiguredCombatant`} in fvtt-types.
29
+ */
30
+ type Implementation = Document.ImplementationFor<Name>;
31
+
32
+ /**
33
+ * The implementation of the `Combatant` document configured through `CONFIG.Combatant.documentClass` in Foundry and
34
+ * {@link DocumentClassConfig | `DocumentClassConfig`} in fvtt-types.
35
+ */
36
+ type ImplementationClass = Document.ImplementationClassFor<Name>;
37
+
38
+ /**
39
+ * A document's metadata is special information about the document ranging anywhere from its name,
40
+ * whether it's indexed, or to the permissions a user has over it.
41
+ */
42
+ interface Metadata
43
+ extends Merge<
44
+ Document.Metadata.Default,
45
+ Readonly<{
46
+ name: "Combatant";
47
+ collection: "combatants";
48
+ label: string;
49
+ labelPlural: string;
50
+ isEmbedded: true;
51
+ hasTypeData: true;
52
+ schemaVersion: string;
53
+ permissions: Metadata.Permissions;
54
+ }>
55
+ > {}
56
+
57
+ namespace Metadata {
58
+ /**
59
+ * The permissions for whether a certain user can create, update, or delete this document.
60
+ */
61
+ interface Permissions {
62
+ create(user: User.Internal.Implementation, doc: Implementation): boolean;
63
+ update(user: User.Internal.Implementation, doc: Implementation, data: UpdateData): boolean;
64
+ }
65
+ }
66
+
67
+ /**
68
+ * Allowed subtypes of `Combatant`. This is configured through various methods. Modern Foundry
69
+ * recommends registering using [Data Models](https://foundryvtt.com/article/system-data-models/)
70
+ * under {@link CONFIG.Combatant.dataModels | `CONFIG.Combatant.dataModels`}. This corresponds to
71
+ * fvtt-type's {@link DataModelConfig | `DataModelConfig`}.
72
+ *
73
+ * Subtypes can also be registered through a `template.json` though this is discouraged.
74
+ * The corresponding fvtt-type configs are {@link SourceConfig | `SourceConfig`} and
75
+ * {@link DataConfig | `DataConfig`}.
76
+ */
77
+ type SubType = Game.Model.TypeNames<"Combatant">;
78
+
79
+ /**
80
+ * `ConfiguredSubTypes` represents the subtypes a user explicitly registered. This excludes
81
+ * subtypes like the Foundry builtin subtype `"base"` and the catch-all subtype for arbitrary
82
+ * module subtypes `${string}.${string}`.
83
+ *
84
+ * @see {@link SubType} for more information.
85
+ */
86
+ type ConfiguredSubTypes = Document.ConfiguredSubTypesOf<"Combatant">;
87
+
88
+ /**
89
+ * `Known` represents the types of `Combatant` that a user explicitly registered.
90
+ *
91
+ * @see {@link ConfiguredSubTypes} for more information.
92
+ */
93
+ type Known = Combatant.OfType<Combatant.ConfiguredSubTypes>;
94
+
95
+ /**
96
+ * `OfType` returns an instance of `Combatant` with the corresponding type. This works with both the
97
+ * builtin `Combatant` class or a custom subclass if that is set up in
98
+ * {@link ConfiguredCombatant | `fvtt-types/configuration/ConfiguredCombatant`}.
99
+ */
100
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types
101
+ type OfType<Type extends SubType> = Document.Internal.OfType<ConfiguredCombatant<Type>, Combatant<Type>>;
102
+
103
+ /**
104
+ * `SystemOfType` returns the system property for a specific `Combatant` subtype.
105
+ */
106
+ type SystemOfType<Type extends SubType> = Document.Internal.SystemOfType<_SystemMap, Type>;
107
+
108
+ /**
109
+ * @internal
110
+ */
111
+ interface _SystemMap extends Document.Internal.SystemMap<"Combatant"> {}
112
+
113
+ /**
114
+ * A document's parent is something that can contain it.
115
+ * For example an `Item` can be contained by an `Actor` which makes `Actor` one of its possible parents.
116
+ */
117
+ type Parent = Combat.Implementation | null;
118
+
119
+ /**
120
+ * A document's descendants are any child documents, grandchild documents, etc.
121
+ * This is a union of all instances, or never if the document doesn't have any descendants.
122
+ */
123
+ type Descendant = never;
9
124
 
10
- type ConfiguredClass = Document.ConfiguredClassForName<"Combatant">;
11
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"Combatant">;
125
+ /**
126
+ * A document's descendants are any child documents, grandchild documents, etc.
127
+ * This is a union of all classes, or never if the document doesn't have any descendants.
128
+ */
129
+ type DescendantClass = never;
12
130
 
131
+ /**
132
+ * Types of `CompendiumCollection` this document might be contained in.
133
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
134
+ */
135
+ // Note: Takes any document in the heritage chain (i.e. itself or any parent, transitive or not) that can be contained in a compendium.
136
+ type Pack = never;
137
+
138
+ /**
139
+ * An embedded document is a document contained in another.
140
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
141
+ *
142
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
143
+ */
144
+ type Embedded = never;
145
+
146
+ /**
147
+ * The name of the world or embedded collection this document can find itself in.
148
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
149
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
150
+ */
151
+ type ParentCollectionName = Metadata["collection"];
152
+
153
+ /**
154
+ * The world collection that contains this document type. Will be `never` if none exists.
155
+ */
156
+ type CollectionClass = never;
157
+
158
+ /**
159
+ * The world collection that contains this document type. Will be `never` if none exists.
160
+ */
161
+ type Collection = never;
162
+
163
+ /**
164
+ * An instance of `Combatant` that comes from the database but failed validation meaning that
165
+ * its `system` and `_source` could theoretically be anything.
166
+ */
167
+ interface Invalid<out SubType extends Combatant.SubType = Combatant.SubType>
168
+ extends Document.Invalid<OfType<SubType>> {}
169
+
170
+ /**
171
+ * An instance of `Combatant` that comes from the database.
172
+ */
173
+ interface Stored<out SubType extends Combatant.SubType = Combatant.SubType>
174
+ extends Document.Stored<OfType<SubType>> {}
175
+
176
+ /**
177
+ * The data put in {@link Combatant._source | `Combatant#_source`}. This data is what was
178
+ * persisted to the database and therefore it must be valid JSON.
179
+ *
180
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
181
+ * but initialized as a {@link Set | `Set`}.
182
+ */
183
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
184
+
185
+ /**
186
+ * @deprecated {@link Combatant.Source | `Combatant.Source`}
187
+ */
188
+ type PersistedData = Source;
189
+
190
+ /**
191
+ * The data necessary to create a document. Used in places like {@link Combatant.create | `Combatant.create`}
192
+ * and {@link Combatant | `new Combatant(...)`}.
193
+ *
194
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
195
+ * with the right values. This means you can pass a `Set` instance, an array of values,
196
+ * a generator, or any other iterable.
197
+ */
198
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
199
+
200
+ /**
201
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
202
+ * {@link Combatant.name | `Combatant#name`}.
203
+ *
204
+ * This is data transformed from {@link Combatant.Source | `Combatant.Source`} and turned into more
205
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
206
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
207
+ */
208
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
209
+
210
+ /**
211
+ * The data used to update a document, for example {@link Combatant.update | `Combatant#update`}.
212
+ * It is a distinct type from {@link Combatant.CreateData | `DeepPartial<Combatant.CreateData>`} because
213
+ * it has different rules for `null` and `undefined`.
214
+ */
215
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
216
+
217
+ /**
218
+ * The schema for {@link Combatant | `Combatant`}. This is the source of truth for how an Combatant document
219
+ * must be structured.
220
+ *
221
+ * Foundry uses this schema to validate the structure of the {@link Combatant | `Combatant`}. For example
222
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
223
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
224
+ * starting as an array in the database, initialized as a set, and allows updates with any
225
+ * iterable.
226
+ */
227
+
228
+ interface Schema extends DataSchema {
229
+ /**
230
+ * The _id which uniquely identifies this Combatant embedded document
231
+ * @defaultValue `null`
232
+ */
233
+ _id: fields.DocumentIdField;
234
+
235
+ /** @defaultValue `"base"` */
236
+ type: fields.DocumentTypeField<typeof BaseCombatant, { initial: typeof foundry.CONST.BASE_DOCUMENT_TYPE }>;
237
+
238
+ system: fields.TypeDataField<typeof BaseCombatant>;
239
+
240
+ /**
241
+ * The _id of an Actor associated with this Combatant
242
+ * @defaultValue `null`
243
+ */
244
+ actorId: fields.ForeignDocumentField<
245
+ typeof documents.BaseActor,
246
+ { label: "COMBAT.CombatantActor"; idOnly: true }
247
+ >;
248
+
249
+ /**
250
+ * The _id of a Token associated with this Combatant
251
+ * @defaultValue `null`
252
+ */
253
+ tokenId: fields.ForeignDocumentField<
254
+ typeof documents.BaseToken,
255
+ { label: "COMBAT.CombatantToken"; idOnly: true }
256
+ >;
257
+
258
+ /**
259
+ * @defaultValue `null`
260
+ */
261
+ sceneId: fields.ForeignDocumentField<
262
+ typeof documents.BaseScene,
263
+ { label: "COMBAT.CombatantScene"; idOnly: true }
264
+ >;
265
+
266
+ /**
267
+ * A customized name which replaces the name of the Token in the tracker
268
+ * @defaultValue `undefined`
269
+ */
270
+ name: fields.StringField<{ label: "COMBAT.CombatantName"; textSearch: true }>;
271
+
272
+ /**
273
+ * A customized image which replaces the Token image in the tracker
274
+ * @defaultValue `null`
275
+ */
276
+ img: fields.FilePathField<{ categories: ["IMAGE"]; label: "COMBAT.CombatantImage" }>;
277
+
278
+ /**
279
+ * The initiative score for the Combatant which determines its turn order
280
+ * @defaultValue `null`
281
+ */
282
+ initiative: fields.NumberField<{ label: "COMBAT.CombatantInitiative" }>;
283
+
284
+ /**
285
+ * Is this Combatant currently hidden?
286
+ * @defaultValue `false`
287
+ */
288
+ hidden: fields.BooleanField<{ label: "COMBAT.CombatantHidden" }>;
289
+
290
+ /**
291
+ * Has this Combatant been defeated?
292
+ * @defaultValue `false`
293
+ */
294
+ defeated: fields.BooleanField<{ label: "COMBAT.CombatantDefeated" }>;
295
+
296
+ /**
297
+ * An object of optional key/value flags
298
+ * @defaultValue `{}`
299
+ */
300
+ flags: fields.ObjectField.FlagsField<Name>;
301
+
302
+ _stats: fields.DocumentStatsField;
303
+ }
304
+
305
+ namespace Database {
306
+ /** Options passed along in Get operations for Combatants */
307
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<Combatant.Parent> {}
308
+
309
+ /** Options passed along in Create operations for Combatants */
310
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
311
+ extends foundry.abstract.types.DatabaseCreateOperation<Combatant.CreateData, Combatant.Parent, Temporary> {
312
+ combatTurn?: number;
313
+ turnEvents?: boolean;
314
+ }
315
+
316
+ /** Options passed along in Delete operations for Combatants */
317
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<Combatant.Parent> {
318
+ combatTurn?: number;
319
+ turnEvents?: boolean;
320
+ }
321
+
322
+ /** Options passed along in Update operations for Combatants */
323
+ interface Update extends foundry.abstract.types.DatabaseUpdateOperation<Combatant.UpdateData, Combatant.Parent> {
324
+ combatTurn?: number;
325
+ turnEvents?: boolean;
326
+ }
327
+
328
+ /** Operation for {@link Combatant.createDocuments | `Combatant.createDocuments`} */
329
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
330
+ extends Document.Database.CreateOperation<Combatant.Database.Create<Temporary>> {}
331
+
332
+ /** Operation for {@link Combatant.updateDocuments | `Combatant.updateDocuments`} */
333
+ interface UpdateDocumentsOperation
334
+ extends Document.Database.UpdateDocumentsOperation<Combatant.Database.Update> {}
335
+
336
+ /** Operation for {@link Combatant.deleteDocuments | `Combatant.deleteDocuments`} */
337
+ interface DeleteDocumentsOperation
338
+ extends Document.Database.DeleteDocumentsOperation<Combatant.Database.Delete> {}
339
+
340
+ /** Operation for {@link Combatant.create | `Combatant.create`} */
341
+ interface CreateOperation<Temporary extends boolean | undefined>
342
+ extends Document.Database.CreateOperation<Combatant.Database.Create<Temporary>> {}
343
+
344
+ /** Operation for {@link Combatant.update | `Combatant#update`} */
345
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
346
+
347
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
348
+
349
+ /** Options for {@link Combatant.get | `Combatant.get`} */
350
+ interface GetOptions extends Document.Database.GetOptions {}
351
+
352
+ /** Options for {@link Combatant._preCreate | `Combatant#_preCreate`} */
353
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
354
+
355
+ /** Options for {@link Combatant._onCreate | `Combatant#_onCreate`} */
356
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
357
+
358
+ /** Operation for {@link Combatant._preCreateOperation | `Combatant._preCreateOperation`} */
359
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<Combatant.Database.Create> {}
360
+
361
+ /** Operation for {@link Combatant._onCreateOperation | `Combatant#_onCreateOperation`} */
362
+ interface OnCreateOperation extends Combatant.Database.Create {}
363
+
364
+ /** Options for {@link Combatant._preUpdate | `Combatant#_preUpdate`} */
365
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
366
+
367
+ /** Options for {@link Combatant._onUpdate | `Combatant#_onUpdate`} */
368
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
369
+
370
+ /** Operation for {@link Combatant._preUpdateOperation | `Combatant._preUpdateOperation`} */
371
+ interface PreUpdateOperation extends Combatant.Database.Update {}
372
+
373
+ /** Operation for {@link Combatant._onUpdateOperation | `Combatant._preUpdateOperation`} */
374
+ interface OnUpdateOperation extends Combatant.Database.Update {}
375
+
376
+ /** Options for {@link Combatant._preDelete | `Combatant#_preDelete`} */
377
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
378
+
379
+ /** Options for {@link Combatant._onDelete | `Combatant#_onDelete`} */
380
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
381
+
382
+ /** Options for {@link Combatant._preDeleteOperation | `Combatant#_preDeleteOperation`} */
383
+ interface PreDeleteOperation extends Combatant.Database.Delete {}
384
+
385
+ /** Options for {@link Combatant._onDeleteOperation | `Combatant#_onDeleteOperation`} */
386
+ interface OnDeleteOperation extends Combatant.Database.Delete {}
387
+
388
+ /** Context for {@link Combatant._onDeleteOperation | `Combatant._onDeleteOperation`} */
389
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<Combatant.Parent> {}
390
+
391
+ /** Context for {@link Combatant._onCreateDocuments | `Combatant._onCreateDocuments`} */
392
+ interface OnCreateDocumentsContext extends Document.ModificationContext<Combatant.Parent> {}
393
+
394
+ /** Context for {@link Combatant._onUpdateDocuments | `Combatant._onUpdateDocuments`} */
395
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<Combatant.Parent> {}
396
+
397
+ /**
398
+ * Options for {@link Combatant._preCreateDescendantDocuments | `Combatant#_preCreateDescendantDocuments`}
399
+ * and {@link Combatant._onCreateDescendantDocuments | `Combatant#_onCreateDescendantDocuments`}
400
+ */
401
+ interface CreateOptions extends Document.Database.CreateOptions<Combatant.Database.Create> {}
402
+
403
+ /**
404
+ * Options for {@link Combatant._preUpdateDescendantDocuments | `Combatant#_preUpdateDescendantDocuments`}
405
+ * and {@link Combatant._onUpdateDescendantDocuments | `Combatant#_onUpdateDescendantDocuments`}
406
+ */
407
+ interface UpdateOptions extends Document.Database.UpdateOptions<Combatant.Database.Update> {}
408
+
409
+ /**
410
+ * Options for {@link Combatant._preDeleteDescendantDocuments | `Combatant#_preDeleteDescendantDocuments`}
411
+ * and {@link Combatant._onDeleteDescendantDocuments | `Combatant#_onDeleteDescendantDocuments`}
412
+ */
413
+ interface DeleteOptions extends Document.Database.DeleteOptions<Combatant.Database.Delete> {}
414
+ }
415
+
416
+ /**
417
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
418
+ */
419
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
420
+
421
+ namespace Flags {
422
+ /**
423
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
424
+ */
425
+ type Scope = Document.FlagKeyOf<Flags>;
426
+
427
+ /**
428
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
429
+ */
430
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
431
+
432
+ /**
433
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
434
+ */
435
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
436
+ }
437
+
438
+ /**
439
+ * @remarks
440
+ * This is typed based on what is reasonable to expect, rather than accurately, as accurately would mean `unknown` (Foundry's type is `object|null`).
441
+ *
442
+ * Technically this is the value of an arbitrary property path in the Combatant's Actor's `system` (using `getProperty`), and while that path can usually be
443
+ * assumed to have been set to something in the return of {@linkcode TokenDocument.getTrackedAttributes}, since that's what the {@linkcode CombatTrackerConfig}
444
+ * provides as options, the path is stored in the {@linkcode Combat.CONFIG_SETTING} which could be updated to be anything. Also, `TokenDocument.getTrackedAttributes`
445
+ * doesn't actually check what the type of `value` and `max` are for bar type attributes, so even sticking to those choices isn't guaranteed safe.
446
+ *
447
+ * There's clear intent that the value *should* be numeric or null, but nothing seems to do math on it in core, and it's simply output in the {@linkcode CombatEncounters}
448
+ * template as `{{resource}}`, so `string` has been allowed.
449
+ *
450
+ * @privateRemarks Adding `boolean` is something that was discussed and decided against for now, but its plausible a system may request such in the future, and wouldn't
451
+ * make us any more wrong than currently.
452
+ */
453
+ type Resource = string | number | null;
454
+
455
+ /**
456
+ * @deprecated {@link Combatant.Database | `Combatant.DatabaseOperation`}
457
+ */
13
458
  interface DatabaseOperations
14
- extends DocumentDatabaseOperations<
15
- Combatant,
459
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
460
+ extends Document.Database.Operations<
461
+ Combatant.Implementation,
16
462
  { combatTurn: number },
17
463
  { combatTurn: number },
18
464
  { combatTurn: number }
19
465
  > {}
20
466
 
21
- // Helpful aliases
22
- type TypeNames = BaseCombatant.TypeNames;
23
- type ConstructorData = BaseCombatant.ConstructorData;
24
- type UpdateData = BaseCombatant.UpdateData;
25
- type Schema = BaseCombatant.Schema;
26
- type Source = BaseCombatant.Source;
467
+ /**
468
+ * @deprecated {@link Combatant.SubType | `Combatant.SubType`}
469
+ */
470
+ type TypeNames = Combatant.SubType;
471
+
472
+ /**
473
+ * @deprecated {@link Combatant.CreateData | `Combatant.CreateData`}
474
+ */
475
+ interface ConstructorData extends Combatant.CreateData {}
476
+
477
+ /**
478
+ * @deprecated {@link Combatant.implementation | `Combatant.ImplementationClass`}
479
+ */
480
+ type ConfiguredClass = ImplementationClass;
481
+
482
+ /**
483
+ * @deprecated {@link Combatant.Implementation | `Combatant.Implementation`}
484
+ */
485
+ type ConfiguredInstance = Implementation;
27
486
  }
28
487
 
29
488
  /**
30
489
  * The client-side Combatant document which extends the common BaseCombatant model.
31
490
  *
32
- * @see {@link Combat} The Combat document which contains Combatant embedded documents
33
- * @see {@link CombatantConfig} The Combatant configuration application
491
+ * @see {@link Combat | `Combat`} The Combat document which contains Combatant embedded documents
492
+ * @see {@link CombatantConfig | `CombatantConfig`} The Combatant configuration application
34
493
  */
35
- class Combatant extends ClientDocumentMixin(foundry.documents.BaseCombatant) {
36
- static override metadata: Combatant.Metadata;
494
+ class Combatant<out SubType extends Combatant.SubType = Combatant.SubType> extends ClientDocumentMixin(
495
+ foundry.documents.BaseCombatant,
496
+ )<SubType> {
497
+ /**
498
+ * @param data - Initial data from which to construct the `Combatant`
499
+ * @param context - Construction context options
500
+ */
501
+ constructor(...args: Combatant.ConstructorArgs);
37
502
 
38
503
  /**
39
504
  * The token video source image (if any)
505
+ * @defaultValue `null`
40
506
  */
41
507
  _videoSrc: string | null;
42
508
 
43
509
  /** The current value of the special tracked resource which pertains to this Combatant */
44
- resource: `${number}` | number | boolean | null;
510
+ resource: Combatant.Resource | null;
45
511
 
46
512
  /**
47
513
  * A convenience alias of Combatant#parent which is more semantically intuitive
48
514
  */
49
- get combat(): Combat.ConfiguredInstance | null;
515
+ get combat(): Combat.Implementation | null;
50
516
 
51
517
  /** This is treated as a non-player combatant if it has no associated actor and no player users who can control it */
52
518
  get isNPC(): boolean;
53
519
 
54
520
  /**
55
521
  * Eschew `ClientDocument`'s redirection to `Combat#permission` in favor of special ownership determination.
522
+ * @remarks Uses {@link BaseCombatant.getUserLevel | `BaseCombatant#getUserLevel`}, so can't return `null`
56
523
  */
57
- override get permission(): ValueOf<typeof CONST.DOCUMENT_OWNERSHIP_LEVELS>;
524
+ override get permission(): CONST.DOCUMENT_OWNERSHIP_LEVELS;
58
525
 
59
526
  override get visible(): boolean;
60
527
 
61
528
  /** A reference to the Actor document which this Combatant represents, if any */
62
- get actor(): Actor.ConfiguredInstance | null;
529
+ get actor(): Actor.Implementation | null;
63
530
 
64
531
  /** A reference to the Token document which this Combatant represents, if any */
65
- get token(): TokenDocument.ConfiguredInstance | null;
532
+ get token(): TokenDocument.Implementation | null;
66
533
 
67
- /** An array of User documents who have ownership of this Document */
68
- get players(): User.ConfiguredInstance[];
534
+ /** An array of non-Gamemaster Users who have ownership of this Combatant. */
535
+ get players(): User.Implementation[];
69
536
 
70
537
  /**
71
538
  * Has this combatant been marked as defeated?
72
539
  */
73
540
  get isDefeated(): boolean;
74
541
 
542
+ /**
543
+ * @remarks Returns `true` for GMs, regardless of `options.exact`. Otherwise, returns
544
+ * `this.actor?.canUserModify(user, "update") || false`
545
+ *
546
+ * @privateRemarks This is the only document that overrides this in the non-Base class
547
+ */
548
+ // options: not null (destructured)
75
549
  override testUserPermission(
76
- user: foundry.documents.BaseUser,
77
- permission: keyof typeof foundry.CONST.DOCUMENT_OWNERSHIP_LEVELS | foundry.CONST.DOCUMENT_OWNERSHIP_LEVELS,
78
- { exact }?: { exact?: boolean },
550
+ user: User.Implementation,
551
+ permission: Document.ActionPermission,
552
+ options?: Document.TestUserPermissionOptions,
79
553
  ): boolean;
80
554
 
81
555
  /**
@@ -83,7 +557,7 @@ declare global {
83
557
  * @param formula - An explicit Roll formula to use for the combatant.
84
558
  * @returns The Roll instance to use for the combatant.
85
559
  */
86
- getInitiativeRoll(formula?: string): Roll;
560
+ getInitiativeRoll(formula?: string): Roll.ConfiguredInstance;
87
561
 
88
562
  /**
89
563
  * Roll initiative for this particular combatant.
@@ -92,12 +566,15 @@ declare global {
92
566
  */
93
567
  rollInitiative(formula: string): Promise<this | undefined>;
94
568
 
569
+ /**
570
+ * @remarks Initializes `_videoSrc`, applies `img` and `name` fallbacks, and calls {@link Combatant.updateResource | `Combatant#updateResource`}
571
+ */
95
572
  override prepareDerivedData(): void;
96
573
 
97
574
  /**
98
575
  * Update the value of the tracked resource for this Combatant.
99
576
  */
100
- updateResource(): this["resource"];
577
+ updateResource(): Combatant.Resource;
101
578
 
102
579
  /**
103
580
  * Acquire the default dice formula which should be used to roll initiative for this combatant.
@@ -106,9 +583,45 @@ declare global {
106
583
  */
107
584
  protected _getInitiativeFormula(): string;
108
585
 
109
- /**
110
- * @deprecated since v9
586
+ // DatabaseLifecycle Events are overridden but with no signature changes.
587
+ // These are already covered in BaseCombatant
588
+
589
+ /*
590
+ * After this point these are not really overridden methods.
591
+ * They are here because Foundry's documents are complex and have lots of edge cases.
592
+ * There are DRY ways of representing this but this ends up being harder to understand
593
+ * for end users extending these functions, especially for static methods. There are also a
594
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
595
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
596
+ * separate like this helps against circularities.
111
597
  */
112
- get isVisible(): boolean;
598
+
599
+ // ClientDocument overrides
600
+
601
+ // Descendant Document operations have been left out because Combatant does not have any descendant documents.
602
+
603
+ // context: not null (destructured)
604
+ static override defaultName(
605
+ context?: Document.DefaultNameContext<"Combatant", NonNullable<Combatant.Parent>>,
606
+ ): string;
607
+
608
+ /** @remarks `context.parent` is required as creation requires one */
609
+ static override createDialog(
610
+ data: Document.CreateDialogData<Combatant.CreateData> | undefined,
611
+ context: Document.CreateDialogContext<"Combatant", NonNullable<Combatant.Parent>>,
612
+ ): Promise<Combatant.Stored | null | undefined>;
613
+
614
+ // options: not null (parameter default only)
615
+ static override fromDropData(
616
+ data: Document.DropData<Combatant.Implementation>,
617
+ options?: AnyObject,
618
+ ): Promise<Combatant.Implementation | undefined>;
619
+
620
+ static override fromImport(
621
+ source: Combatant.Source,
622
+ context?: Document.FromImportContext<Combatant.Parent> | null,
623
+ ): Promise<Combatant.Implementation>;
624
+
625
+ override _onClickDocumentLink(event: MouseEvent): ClientDocument.OnClickDocumentLinkReturn;
113
626
  }
114
627
  }