@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,71 +1,639 @@
1
- import type { DeepPartial, InexactPartial } from "../../../../types/utils.d.mts";
1
+ import type { AnyObject, InexactPartial, NullishProps, Merge } from "#utils";
2
+ import type { documents } from "../../../client-esm/client.d.mts";
2
3
  import type Document from "../../../common/abstract/document.d.mts";
3
- import type { DocumentDatabaseOperations } from "../../../common/abstract/document.d.mts";
4
4
  import type BaseActor from "../../../common/documents/actor.d.mts";
5
+ import type { fields, PrototypeToken } from "../../../common/data/module.d.mts";
6
+ import type { ConfiguredActor } from "../../../../configuration/index.d.mts";
7
+ import type { DataSchema } from "../../../common/data/fields.d.mts";
5
8
 
6
9
  declare global {
7
10
  namespace Actor {
8
- type Metadata = Document.MetadataFor<Actor>;
11
+ /**
12
+ * The document's name.
13
+ */
14
+ type Name = "Actor";
15
+
16
+ /**
17
+ * The arguments to construct the document.
18
+ */
19
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
9
20
 
10
- type ConfiguredClass = Document.ConfiguredClassForName<"Actor">;
11
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"Actor">;
21
+ /**
22
+ * The documents embedded within `Actor`.
23
+ */
24
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
12
25
 
13
- interface DatabaseOperations extends DocumentDatabaseOperations<Actor> {}
26
+ /**
27
+ * The implementation of the `Actor` document instance configured through `CONFIG.Actor.documentClass` in Foundry and
28
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredActor | `fvtt-types/configuration/ConfiguredActor`} in fvtt-types.
29
+ */
30
+ type Implementation = Document.ImplementationFor<"Actor">;
14
31
 
15
- type ItemTypes = {
16
- [K in Game.Model.TypeNames<"Item">]: Array<
17
- // TODO(LukeAbby): Looks like a `Item.OfType` helper would be useful.
18
- Item.ConfiguredInstance & {
19
- type: K;
20
- } & (DataModelConfig extends { Item: { readonly [_ in K]?: infer SystemData } }
21
- ? {
22
- // For backwards compatability both instances and classes are supported for the time being.
23
- // Only constructors are valid however.
24
- system: SystemData extends abstract new (arg0: never, ...args: never[]) => infer Instance
25
- ? Instance
26
- : SystemData;
27
- }
28
- : // eslint-disable-next-line @typescript-eslint/no-empty-object-type
29
- {})
32
+ /**
33
+ * The implementation of the `Actor` document configured through `CONFIG.Actor.documentClass` in Foundry and
34
+ * {@link DocumentClassConfig | `DocumentClassConfig`} in fvtt-types.
35
+ */
36
+ type ImplementationClass = Document.ImplementationClassFor<"Actor">;
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: "Actor";
47
+ collection: "actors";
48
+ indexed: true;
49
+ compendiumIndexFields: ["_id", "name", "img", "type", "sort", "folder"];
50
+ embedded: Metadata.Embedded;
51
+ hasTypeData: true;
52
+ label: string;
53
+ labelPlural: string;
54
+ permissions: Metadata.Permissions;
55
+ schemaVersion: string;
56
+ }>
57
+ > {}
58
+
59
+ namespace Metadata {
60
+ /**
61
+ * The embedded metadata
62
+ */
63
+ interface Embedded {
64
+ ActiveEffect: "effects";
65
+ Item: "items";
66
+ }
67
+
68
+ /**
69
+ * The permissions for whether a certain user can create, update, or delete this document.
70
+ */
71
+ interface Permissions {
72
+ create(user: User.Internal.Implementation, doc: Implementation): boolean;
73
+ update(user: User.Internal.Implementation, doc: Implementation, data: UpdateData): boolean;
74
+ }
75
+ }
76
+
77
+ /**
78
+ * Allowed subtypes of `Actor`. This is configured through various methods. Modern Foundry
79
+ * recommends registering using [Data Models](https://foundryvtt.com/article/system-data-models/)
80
+ * under {@link CONFIG.Actor.dataModels | `CONFIG.Actor.dataModels`}. This corresponds to
81
+ * fvtt-type's {@link DataModelConfig | `DataModelConfig`}.
82
+ *
83
+ * Subtypes can also be registered through a `template.json` though this is discouraged.
84
+ * The corresponding fvtt-type configs are {@link SourceConfig | `SourceConfig`} and
85
+ * {@link DataConfig | `DataConfig`}.
86
+ */
87
+ type SubType = Game.Model.TypeNames<"Actor">;
88
+
89
+ /**
90
+ * `ConfiguredSubTypes` represents the subtypes a user explicitly registered. This excludes
91
+ * subtypes like the Foundry builtin subtype `"base"` and the catch-all subtype for arbitrary
92
+ * module subtypes `${string}.${string}`.
93
+ *
94
+ * @see {@link SubType} for more information.
95
+ */
96
+ type ConfiguredSubTypes = Document.ConfiguredSubTypesOf<"Actor">;
97
+
98
+ /**
99
+ * `Known` represents the types of `Actor` that a user explicitly registered.
100
+ *
101
+ * @see {@link ConfiguredSubTypes} for more information.
102
+ */
103
+ type Known = Actor.OfType<Actor.ConfiguredSubTypes>;
104
+
105
+ /**
106
+ * `OfType` returns an instance of `Actor` with the corresponding type. This works with both the
107
+ * builtin `Actor` class or a custom subclass if that is set up in
108
+ * {@link ConfiguredActor | `fvtt-types/configuration/ConfiguredActor`}.
109
+ */
110
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types
111
+ type OfType<Type extends SubType> = Document.Internal.OfType<ConfiguredActor<Type>, Actor<Type>>;
112
+
113
+ /**
114
+ * `SystemOfType` returns the system property for a specific `Actor` subtype.
115
+ */
116
+ type SystemOfType<Type extends SubType> = Document.Internal.SystemOfType<_SystemMap, Type>;
117
+
118
+ /**
119
+ * @internal
120
+ */
121
+ interface _SystemMap extends Document.Internal.SystemMap<"Actor"> {}
122
+
123
+ /**
124
+ * A document's parent is something that can contain it.
125
+ * For example an `Item` can be contained by an `Actor` which makes `Actor` one of its possible parents.
126
+ */
127
+ type Parent = TokenDocument.Implementation | null;
128
+
129
+ /**
130
+ * A document's direct descendants are documents that are contained directly within its schema.
131
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
132
+ */
133
+ type DirectDescendant = Item.Stored | ActiveEffect.Stored;
134
+
135
+ /**
136
+ * A document's direct descendants are documents that are contained directly within its schema.
137
+ * This is a union of all such classes, or never if the document doesn't have any descendants.
138
+ */
139
+ type DirectDescendantClass = Item.ImplementationClass | ActiveEffect.ImplementationClass;
140
+
141
+ /**
142
+ * A document's descendants are any documents that are contained within, either within its schema
143
+ * or its descendant's schemas.
144
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
145
+ */
146
+ type Descendant = DirectDescendant;
147
+
148
+ /**
149
+ * A document's descendants are any child documents, grandchild documents, etc.
150
+ * This is a union of all classes, or never if the document doesn't have any descendants.
151
+ */
152
+ type DescendantClass = DirectDescendantClass;
153
+
154
+ /**
155
+ * Types of `CompendiumCollection` this document might be contained in.
156
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
157
+ */
158
+ // Note: Takes any document in the heritage chain (i.e. itself or any parent, transitive or not) that can be contained in a compendium.
159
+ type Pack = CompendiumCollection.ForDocument<"Actor">;
160
+
161
+ /**
162
+ * An embedded document is a document contained in another.
163
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
164
+ *
165
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
166
+ */
167
+ type Embedded = Document.ImplementationFor<Embedded.Name>;
168
+
169
+ namespace Embedded {
170
+ /**
171
+ * An embedded document is a document contained in another.
172
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
173
+ *
174
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
175
+ */
176
+ type Name = keyof Metadata.Embedded;
177
+
178
+ /**
179
+ * Gets the collection name for an embedded document.
180
+ */
181
+ type CollectionNameOf<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionNameFor<
182
+ Metadata.Embedded,
183
+ CollectionName
30
184
  >;
185
+
186
+ /**
187
+ * Gets the collection document for an embedded document.
188
+ */
189
+ // TODO(LukeAbby): There's a circularity. Should be `Document.Embedded.CollectionDocumentFor<Metadata.Embedded, CollectionName>`
190
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
191
+ type DocumentFor<CollectionName extends Embedded.CollectionName> = Document.Any;
192
+
193
+ /**
194
+ * Gets the collection for an embedded document.
195
+ */
196
+ type CollectionFor<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionFor<
197
+ // TODO(LukeAbby): This should be `TokenDocument.Implementation` but this causes a circularity.
198
+ Document.Any,
199
+ Metadata.Embedded,
200
+ CollectionName
201
+ >;
202
+
203
+ /**
204
+ * A valid name to refer to a collection embedded in this document. For example an `Actor`
205
+ * has the key `"items"` which contains `Item` instance which would make both `"Item" | "Items"`
206
+ * valid keys (amongst others).
207
+ */
208
+ type CollectionName = Document.Embedded.CollectionName<Metadata.Embedded>;
209
+ }
210
+
211
+ /**
212
+ * The name of the world or embedded collection this document can find itself in.
213
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
214
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
215
+ */
216
+ type ParentCollectionName = Metadata["collection"];
217
+
218
+ /**
219
+ * The world collection that contains `Actor`s. Will be `never` if none exists.
220
+ */
221
+ type CollectionClass = Actors.ConfiguredClass;
222
+
223
+ /**
224
+ * The world collection that contains `Actor`s. Will be `never` if none exists.
225
+ */
226
+ type Collection = Actors.Configured;
227
+
228
+ /**
229
+ * An instance of `Actor` that comes from the database but failed validation meaning that
230
+ * its `system` and `_source` could theoretically be anything.
231
+ */
232
+ interface Invalid<out SubType extends Actor.SubType = Actor.SubType> extends Document.Invalid<OfType<SubType>> {}
233
+
234
+ /**
235
+ * An instance of `Actor` that comes from the database.
236
+ */
237
+ interface Stored<out SubType extends Actor.SubType = Actor.SubType> extends Document.Stored<OfType<SubType>> {}
238
+
239
+ /**
240
+ * The data put in {@link Actor._source | `Actor#_source`}. This data is what was
241
+ * persisted to the database and therefore it must be valid JSON.
242
+ *
243
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
244
+ * but initialized as a {@link Set | `Set`}.
245
+ */
246
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
247
+
248
+ /**
249
+ * @deprecated {@link Actor.Source | `Actor.Source`}
250
+ */
251
+ type PersistedData = Source;
252
+
253
+ /**
254
+ * The data necessary to create a document. Used in places like {@link Actor.create | `Actor.create`}
255
+ * and {@link Actor | `new Actor(...)`}.
256
+ *
257
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
258
+ * with the right values. This means you can pass a `Set` instance, an array of values,
259
+ * a generator, or any other iterable.
260
+ */
261
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
262
+
263
+ /**
264
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
265
+ * {@link Actor.name | `Actor#name`}.
266
+ *
267
+ * This is data transformed from {@link Actor.Source | `Actor.Source`} and turned into more
268
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
269
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
270
+ */
271
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
272
+
273
+ /**
274
+ * The data used to update a document, for example {@link Actor.update | `Actor#update`}.
275
+ * It is a distinct type from {@link Actor.CreateData | `DeepPartial<Actor.CreateData>`} because
276
+ * it has different rules for `null` and `undefined`.
277
+ */
278
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
279
+
280
+ /**
281
+ * The schema for {@link Actor | `Actor`}. This is the source of truth for how an Actor document
282
+ * must be structured.
283
+ *
284
+ * Foundry uses this schema to validate the structure of the {@link Actor | `Actor`}. For example
285
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
286
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
287
+ * starting as an array in the database, initialized as a set, and allows updates with any
288
+ * iterable.
289
+ */
290
+ interface Schema extends DataSchema {
291
+ /**
292
+ * The _id which uniquely identifies this Actor document
293
+ * @defaultValue `null`
294
+ */
295
+ _id: fields.DocumentIdField;
296
+
297
+ /** The name of this Actor */
298
+ // FIXME: required with no initial, assignment type override required
299
+ name: fields.StringField<{ required: true; blank: false; textSearch: true }, string>;
300
+
301
+ /** An Actor subtype which configures the system data model applied */
302
+ // TODO: required with no initial, needs assignment type override
303
+ type: fields.DocumentTypeField<typeof BaseActor>;
304
+
305
+ /**
306
+ * An image file path which provides the artwork for this Actor
307
+ * @defaultValue `Actor.DEFAULT_ICON`
308
+ */
309
+ img: fields.FilePathField<{ categories: ["IMAGE"]; initial: (data: unknown) => string }>;
310
+
311
+ /**
312
+ * The system data object which is defined by the system template.json model
313
+ * @defaultValue `{}`
314
+ */
315
+ system: fields.TypeDataField<typeof BaseActor>;
316
+
317
+ /**
318
+ * Default Token settings which are used for Tokens created from this Actor
319
+ * @defaultValue see {@linkcode PrototypeToken.Schema}
320
+ */
321
+ prototypeToken: fields.EmbeddedDataField<typeof PrototypeToken>;
322
+
323
+ /**
324
+ * A Collection of Item embedded Documents
325
+ * @defaultValue `[]`
326
+ */
327
+ items: fields.EmbeddedCollectionField<typeof documents.BaseItem, Actor.Implementation>;
328
+
329
+ /**
330
+ * A Collection of ActiveEffect embedded Documents
331
+ * @defaultValue `[]`
332
+ */
333
+ effects: fields.EmbeddedCollectionField<typeof documents.BaseActiveEffect, Actor.Implementation>;
334
+
335
+ /**
336
+ * The _id of a Folder which contains this Actor
337
+ * @defaultValue `null`
338
+ */
339
+ folder: fields.ForeignDocumentField<typeof documents.BaseFolder>;
340
+
341
+ /**
342
+ * The numeric sort value which orders this Actor relative to its siblings
343
+ * @defaultValue `0`
344
+ */
345
+ sort: fields.IntegerSortField;
346
+
347
+ /**
348
+ * An object which configures ownership of this Actor
349
+ * @defaultValue `{ default: DOCUMENT_OWNERSHIP_LEVELS.NONE }`
350
+ */
351
+ ownership: fields.DocumentOwnershipField;
352
+
353
+ /**
354
+ * An object of optional key/value flags
355
+ * @defaultValue `{}`
356
+ */
357
+ flags: fields.ObjectField.FlagsField<"Actor">;
358
+
359
+ /**
360
+ * An object of creation and access information
361
+ * @defaultValue see {@link fields.DocumentStatsField | `fields.DocumentStatsField`}
362
+ */
363
+ _stats: fields.DocumentStatsField;
364
+ }
365
+
366
+ namespace Database {
367
+ /** Options passed along in Get operations for Actors */
368
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<Actor.Parent> {}
369
+
370
+ /** Options passed along in Create operations for Actors */
371
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
372
+ extends foundry.abstract.types.DatabaseCreateOperation<Actor.CreateData, Actor.Parent, Temporary> {}
373
+
374
+ /** Options passed along in Delete operations for Actors */
375
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<Actor.Parent> {}
376
+
377
+ /** Options passed along in Update operations for Actors */
378
+ interface Update extends foundry.abstract.types.DatabaseUpdateOperation<Actor.UpdateData, Actor.Parent> {}
379
+
380
+ /** Operation for {@link Actor.createDocuments | `Actor.createDocuments`} */
381
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
382
+ extends Document.Database.CreateOperation<Actor.Database.Create<Temporary>> {}
383
+
384
+ /** Operation for {@link Actor.updateDocuments | `Actor.updateDocuments`} */
385
+ interface UpdateDocumentsOperation extends Document.Database.UpdateDocumentsOperation<Actor.Database.Update> {}
386
+
387
+ /** Operation for {@link Actor.deleteDocuments | `Actor.deleteDocuments`} */
388
+ interface DeleteDocumentsOperation extends Document.Database.DeleteDocumentsOperation<Actor.Database.Delete> {}
389
+
390
+ /** Operation for {@link Actor.create | `Actor.create`} */
391
+ interface CreateOperation<Temporary extends boolean | undefined>
392
+ extends Document.Database.CreateOperation<Actor.Database.Create<Temporary>> {}
393
+
394
+ /** Operation for {@link Actor.update | `Actor#update`} */
395
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
396
+
397
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
398
+
399
+ /** Options for {@link Actor.get | `Actor.get`} */
400
+ interface GetOptions extends Document.Database.GetOptions {}
401
+
402
+ /** Options for {@link Actor._preCreate | `Actor#_preCreate`} */
403
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
404
+
405
+ /** Options for {@link Actor._onCreate | `Actor#_onCreate`} */
406
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
407
+
408
+ /** Operation for {@link Actor._preCreateOperation | `Actor._preCreateOperation`} */
409
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<Actor.Database.Create> {}
410
+
411
+ /** Operation for {@link Actor._onCreateOperation | `Actor#_onCreateOperation`} */
412
+ interface OnCreateOperation extends Actor.Database.Create {}
413
+
414
+ /** Options for {@link Actor._preUpdate | `Actor#_preUpdate`} */
415
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
416
+
417
+ /** Options for {@link Actor._onUpdate | `Actor#_onUpdate`} */
418
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
419
+
420
+ /** Operation for {@link Actor._preUpdateOperation | `Actor._preUpdateOperation`} */
421
+ interface PreUpdateOperation extends Actor.Database.Update {}
422
+
423
+ /** Operation for {@link Actor._onUpdateOperation | `Actor._preUpdateOperation`} */
424
+ interface OnUpdateOperation extends Actor.Database.Update {}
425
+
426
+ /** Options for {@link Actor._preDelete | `Actor#_preDelete`} */
427
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
428
+
429
+ /** Options for {@link Actor._onDelete | `Actor#_onDelete`} */
430
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
431
+
432
+ /** Options for {@link Actor._preDeleteOperation | `Actor#_preDeleteOperation`} */
433
+ interface PreDeleteOperation extends Actor.Database.Delete {}
434
+
435
+ /** Options for {@link Actor._onDeleteOperation | `Actor#_onDeleteOperation`} */
436
+ interface OnDeleteOperation extends Actor.Database.Delete {}
437
+
438
+ /** Context for {@link Actor._onDeleteOperation | `Actor._onDeleteOperation`} */
439
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<Actor.Parent> {}
440
+
441
+ /** Context for {@link Actor._onCreateDocuments | `Actor._onCreateDocuments`} */
442
+ interface OnCreateDocumentsContext extends Document.ModificationContext<Actor.Parent> {}
443
+
444
+ /** Context for {@link Actor._onUpdateDocuments | `Actor._onUpdateDocuments`} */
445
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<Actor.Parent> {}
446
+
447
+ /**
448
+ * Options for {@link Actor._preCreateDescendantDocuments | `Actor#_preCreateDescendantDocuments`}
449
+ * and {@link Actor._onCreateDescendantDocuments | `Actor#_onCreateDescendantDocuments`}
450
+ */
451
+ interface CreateOptions extends Document.Database.CreateOptions<Actor.Database.Create> {}
452
+
453
+ /**
454
+ * Options for {@link Actor._preUpdateDescendantDocuments | `Actor#_preUpdateDescendantDocuments`}
455
+ * and {@link Actor._onUpdateDescendantDocuments | `Actor#_onUpdateDescendantDocuments`}
456
+ */
457
+ interface UpdateOptions extends Document.Database.UpdateOptions<Actor.Database.Update> {}
458
+
459
+ /**
460
+ * Options for {@link Actor._preDeleteDescendantDocuments | `Actor#_preDeleteDescendantDocuments`}
461
+ * and {@link Actor._onDeleteDescendantDocuments | `Actor#_onDeleteDescendantDocuments`}
462
+ */
463
+ interface DeleteOptions extends Document.Database.DeleteOptions<Actor.Database.Delete> {}
464
+ }
465
+
466
+ /**
467
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
468
+ */
469
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
470
+
471
+ namespace Flags {
472
+ /**
473
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
474
+ */
475
+ type Scope = Document.FlagKeyOf<Flags>;
476
+
477
+ /**
478
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
479
+ */
480
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
481
+
482
+ /**
483
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
484
+ */
485
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
486
+ }
487
+
488
+ type PreCreateDescendantDocumentsArgs =
489
+ | Document.PreCreateDescendantDocumentsArgs<Actor.Stored, Actor.DirectDescendant, Actor.Metadata.Embedded>
490
+ | Item.PreCreateDescendantDocumentsArgs;
491
+
492
+ type OnCreateDescendantDocumentsArgs =
493
+ | Document.OnCreateDescendantDocumentsArgs<Actor.Stored, Actor.DirectDescendant, Actor.Metadata.Embedded>
494
+ | Item.OnCreateDescendantDocumentsArgs;
495
+
496
+ type PreUpdateDescendantDocumentsArgs =
497
+ | Document.PreUpdateDescendantDocumentsArgs<Actor.Stored, Actor.DirectDescendant, Actor.Metadata.Embedded>
498
+ | Item.PreUpdateDescendantDocumentsArgs;
499
+
500
+ type OnUpdateDescendantDocumentsArgs =
501
+ | Document.OnUpdateDescendantDocumentsArgs<Actor.Stored, Actor.DirectDescendant, Actor.Metadata.Embedded>
502
+ | Item.OnUpdateDescendantDocumentsArgs;
503
+
504
+ type PreDeleteDescendantDocumentsArgs =
505
+ | Document.PreDeleteDescendantDocumentsArgs<Actor.Stored, Actor.DirectDescendant, Actor.Metadata.Embedded>
506
+ | Item.PreDeleteDescendantDocumentsArgs;
507
+
508
+ type OnDeleteDescendantDocumentsArgs =
509
+ | Document.OnDeleteDescendantDocumentsArgs<Actor.Stored, Actor.DirectDescendant, Actor.Metadata.Embedded>
510
+ | Item.OnDeleteDescendantDocumentsArgs;
511
+
512
+ interface GetDefaultArtworkReturn {
513
+ img: string;
514
+ texture: GetDefaultArtworkTextureReturn;
515
+ }
516
+
517
+ interface GetDefaultArtworkTextureReturn {
518
+ src: string;
519
+ }
520
+
521
+ type ItemTypes = {
522
+ [SubType in Item.SubType]: Array<Item.OfType<SubType>>;
31
523
  };
32
524
 
33
- // Helpful aliases
34
- type TypeNames = BaseActor.TypeNames;
35
- type ConstructorData = BaseActor.ConstructorData;
36
- type UpdateData = BaseActor.UpdateData;
37
- type Schema = BaseActor.Schema;
38
- type Source = BaseActor.Source;
525
+ type GetActiveTokensReturn<Document extends boolean | null | undefined> = Document extends true
526
+ ? TokenDocument.Implementation[]
527
+ : Token.Object[];
39
528
 
40
- interface RollInitiativeOptions {
529
+ /** @internal */
530
+ type _RollInitiativeOptions = NullishProps<{
41
531
  /**
42
532
  * Create new Combatant entries for Tokens associated with this actor.
43
533
  * @defaultValue `false`
44
534
  */
45
- createCombatants?: boolean;
535
+ createCombatants: boolean;
46
536
 
47
537
  /**
48
538
  * Re-roll the initiative for this Actor if it has already been rolled.
49
539
  * @defaultValue `false`
50
540
  */
51
- rerollInitiative?: boolean;
541
+ rerollInitiative: boolean;
542
+ }> &
543
+ InexactPartial<{
544
+ /**
545
+ * Additional options passed to the Combat#rollInitiative method.
546
+ * @defaultValue `{}`
547
+ * @remarks Can't be `null` as it only has a parameter default
548
+ */
549
+ initiativeOptions: Combat.InitiativeOptions;
550
+ }>;
52
551
 
552
+ interface RollInitiativeOptions extends _RollInitiativeOptions {}
553
+
554
+ /** @internal */
555
+ type _ToggleStatusEffectOptions = NullishProps<{
53
556
  /**
54
- * Additional options passed to the Combat#rollInitiative method.
55
- * @defaultValue `{}`
557
+ * Force a certain active state for the effect
558
+ * @defaultValue `undefined`
559
+ * @remarks `null` is treated as `false`, `undefined` or omitted is treated as `true` *if no status
560
+ * with the given ID already exists*, otherwise also as `false`
56
561
  */
57
- initiativeOptions?: Combat.InitiativeOptions;
58
- }
562
+ active: boolean;
563
+
564
+ /**
565
+ * Whether to set the effect as the overlay effect?
566
+ * @defaultValue `false`
567
+ */
568
+ overlay: boolean;
569
+ }>;
570
+
571
+ interface ToggleStatusEffectOptions extends _ToggleStatusEffectOptions {}
572
+
573
+ /** @internal */
574
+ type _RequestTokenImagesOptions = NullishProps<{
575
+ /**
576
+ * The name of the compendium the actor is in.
577
+ * @defaultValue `null`
578
+ * @remarks The default comes from the `"requestTokenImages"` socket handler in `dist/database/documents/actor.mjs` where it's the parameter default
579
+ */
580
+ pack: string;
581
+ }>;
582
+
583
+ interface RequestTokenImagesOptions extends _RequestTokenImagesOptions {}
584
+
585
+ /** @internal */
586
+ type _GetDependentTokensOptions = NullishProps<{
587
+ /**
588
+ * A single Scene, or list of Scenes to filter by.
589
+ * @defaultValue `Array.from(this._dependentTokens.keys())`
590
+ */
591
+ scenes: Scene.Implementation | Scene.Implementation[];
592
+
593
+ /**
594
+ * Limit the results to tokens that are linked to the actor.
595
+ * @defaultValue `false`
596
+ */
597
+ linked: boolean;
598
+ }>;
599
+
600
+ interface GetDependentTokensOptions extends _GetDependentTokensOptions {}
601
+
602
+ /**
603
+ * @deprecated {@link Actor.Database | `Actor.DatabaseOperation`}
604
+ */
605
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
606
+ interface DatabaseOperations extends Document.Database.Operations<Actor.Implementation> {}
607
+
608
+ /**
609
+ * @deprecated {@link Actor.SubType | `Actor.SubType`}
610
+ */
611
+ type TypeNames = Actor.SubType;
612
+
613
+ /**
614
+ * @deprecated {@link Actor.CreateData | `Actor.CreateData`}
615
+ */
616
+ interface ConstructorData extends Actor.CreateData {}
617
+
618
+ /**
619
+ * @deprecated {@link Actor.implementation | `Actor.ImplementationClass`}
620
+ */
621
+ type ConfiguredClass = ImplementationClass;
622
+
623
+ /**
624
+ * @deprecated {@link Actor.Implementation | `Actor.Implementation`}
625
+ */
626
+ type ConfiguredInstance = Implementation;
59
627
  }
60
628
 
61
629
  /**
62
630
  * The client-side Actor document which extends the common BaseActor model.
63
631
  *
64
632
  * ### Hook Events
65
- * {@link hookEvents.applyCompendiumArt}
633
+ * {@link hookEvents.applyCompendiumArt | `hookEvents.applyCompendiumArt`}
66
634
  *
67
- * @see {@link Actors} The world-level collection of Actor documents
68
- * @see {@link ActorSheet} The Actor configuration application
635
+ * @see {@link Actors | `Actors`} The world-level collection of Actor documents
636
+ * @see {@link ActorSheet | `ActorSheet`} The Actor configuration application
69
637
  *
70
638
  * @example <caption>Create a new Actor</caption>
71
639
  * ```typescript
@@ -81,25 +649,32 @@ declare global {
81
649
  * let actor = game.actors.get(actorId);
82
650
  * ```
83
651
  */
84
- class Actor extends ClientDocumentMixin(foundry.documents.BaseActor) {
85
- static override metadata: Actor.Metadata;
86
-
87
- // NOTE(LukeAbby): Helps stymy circularity.
88
- // get documentName(): "Actor";
652
+ class Actor<out SubType extends Actor.SubType = Actor.SubType> extends ClientDocumentMixin(
653
+ foundry.documents.BaseActor,
654
+ )<SubType> {
655
+ /**
656
+ * @param data - Initial data from which to construct the `Actor`
657
+ * @param context - Construction context options
658
+ */
659
+ constructor(...args: Actor.ConstructorArgs);
89
660
 
90
- protected override _configure(options?: { pack?: string | null }): void;
661
+ // options: not null (parameter default only, destructured in super)
662
+ protected override _configure(options?: Document.ConfigureOptions): void;
91
663
 
92
664
  /**
93
665
  * Maintain a list of Token Documents that represent this Actor, stored by Scene.
666
+ * @remarks Doesn't exist prior to being `defineProperty`'d in {@link Actor._configure | `Actor#_configure`}
94
667
  */
95
- protected _dependentTokens: foundry.utils.IterableWeakMap<
96
- Scene.ConfiguredInstance,
97
- TokenDocument.ConfiguredInstance
668
+ protected _dependentTokens?: foundry.utils.IterableWeakMap<
669
+ Scene.Implementation,
670
+ foundry.utils.IterableWeakSet<TokenDocument.Implementation>
98
671
  >;
99
672
 
673
+ /** @remarks `||=`s the `prototypeToken`'s `name` and `texture.src` fields with the main actor's values */
674
+ // options: not null (parameter default only)
100
675
  protected override _initializeSource(
101
- data: this | Actor.ConstructorData,
102
- options?: Omit<foundry.abstract.DataModel.DataValidationOptions, "parent">,
676
+ data: this | Actor.CreateData,
677
+ options?: Document.InitializeSourceOptions,
103
678
  ): Actor.Source;
104
679
 
105
680
  /**
@@ -117,6 +692,7 @@ declare global {
117
692
  * A cached array of image paths which can be used for this Actor's token.
118
693
  * Null if the list has not yet been populated.
119
694
  * @defaultValue `null`
695
+ * @private
120
696
  */
121
697
  protected _tokenImages: string[] | null;
122
698
 
@@ -129,12 +705,13 @@ declare global {
129
705
  /**
130
706
  * Provide a thumbnail image path used to represent this document.
131
707
  */
132
- get thumbnail(): this["img"];
708
+ get thumbnail(): string;
133
709
 
134
710
  /**
135
711
  * Provide an object which organizes all embedded Item instances by their type
136
712
  */
137
713
  get itemTypes(): Actor.ItemTypes;
714
+
138
715
  /**
139
716
  * Test whether an Actor document is a synthetic representation of a Token (if true) or a full Document (if false)
140
717
  */
@@ -143,17 +720,17 @@ declare global {
143
720
  /**
144
721
  * Retrieve the list of ActiveEffects that are currently applied to this Actor.
145
722
  */
146
- get appliedEffects(): ActiveEffect.ConfiguredInstance[];
723
+ get appliedEffects(): ActiveEffect.Implementation[];
147
724
 
148
725
  /**
149
726
  * An array of ActiveEffect instances which are present on the Actor which have a limited duration.
150
727
  */
151
- get temporaryEffects(): ReturnType<this["effects"]["filter"]>;
728
+ get temporaryEffects(): ActiveEffect.Implementation[];
152
729
 
153
730
  /**
154
731
  * Return a reference to the TokenDocument which owns this Actor as a synthetic override
155
732
  */
156
- get token(): TokenDocument.ConfiguredInstance | null;
733
+ get token(): TokenDocument.Implementation | null;
157
734
 
158
735
  /**
159
736
  * Whether the Actor has at least one Combatant in the active Combat that represents it.
@@ -172,13 +749,14 @@ declare global {
172
749
  *
173
750
  * @param linked - Limit results to Tokens which are linked to the Actor. Otherwise return all
174
751
  * Tokens even those which are not linked. (default: `false`)
175
- * @param document - Return the Document instance rather than the PlaceableObject (default: `false`)
752
+ * @param document - Return the Document instance rather than the PlaceableObject
753
+ * (default: `false`)
176
754
  * @returns An array of Token instances in the current Scene which reference this Actor.
177
755
  */
178
- getActiveTokens<ReturnDocument extends boolean = false>(
179
- linked?: boolean,
756
+ getActiveTokens<ReturnDocument extends boolean | null | undefined = false>(
757
+ linked?: boolean | null,
180
758
  document?: ReturnDocument,
181
- ): ReturnDocument extends true ? TokenDocument.ConfiguredInstance[] : Token.ConfiguredInstance[];
759
+ ): Actor.GetActiveTokensReturn<ReturnDocument>;
182
760
 
183
761
  /**
184
762
  * Get all ActiveEffects that may apply to this Actor.
@@ -186,20 +764,24 @@ declare global {
186
764
  * If CONFIG.ActiveEffect.legacyTransferral is false, this will also return all the transferred ActiveEffects on any
187
765
  * of the Actor's owned Items.
188
766
  */
189
- allApplicableEffects(): Generator<ActiveEffect.ConfiguredInstance>;
767
+ allApplicableEffects(): Generator<ActiveEffect.Implementation>;
190
768
 
191
769
  /**
192
770
  * Prepare a data object which defines the data schema used by dice roll commands against this Actor
193
771
  * @remarks defaults to this.system, but provided as object for flexible overrides
194
772
  */
195
- getRollData(): object;
773
+ getRollData(): AnyObject;
196
774
 
197
775
  /**
198
776
  * Create a new TokenData object which can be used to create a Token representation of the Actor.
199
777
  * @param data - Additional data, such as x, y, rotation, etc. for the created token data (default: `{}`)
200
778
  * @returns The created TokenData instance
201
779
  */
202
- getTokenDocument(data?: foundry.documents.BaseToken.ConstructorData): Promise<TokenDocument.ConfiguredInstance>;
780
+ // data, options: not null (parameter defaults only)
781
+ getTokenDocument(
782
+ data?: TokenDocument.CreateData,
783
+ options?: Document.ConstructionContext<TokenDocument.Parent>,
784
+ ): Promise<TokenDocument.Implementation>;
203
785
 
204
786
  /**
205
787
  * Get an Array of Token images which could represent this Actor
@@ -215,7 +797,13 @@ declare global {
215
797
  * @param isBar - Whether the new value is part of an attribute bar, or just a direct value (default: `true`)
216
798
  * @returns The updated Actor document
217
799
  */
218
- modifyTokenAttribute(attribute: string, value: number, isDelta: boolean, isBar: boolean): Promise<this | undefined>;
800
+ modifyTokenAttribute(
801
+ attribute: string,
802
+ // TODO: tighten Combatant.Resource with the justification of this being simply `number`
803
+ value: number,
804
+ isDelta?: boolean,
805
+ isBar?: boolean,
806
+ ): Promise<this | undefined>;
219
807
 
220
808
  override prepareData(): void;
221
809
 
@@ -229,6 +817,7 @@ declare global {
229
817
  * @param options - Configuration for how initiative for this Actor is rolled.
230
818
  * @returns A promise which resolves to the Combat document once rolls are complete.
231
819
  */
820
+ // options: not null (destructured)
232
821
  rollInitiative(options?: Actor.RollInitiativeOptions): Promise<void>;
233
822
 
234
823
  /**
@@ -241,73 +830,106 @@ declare global {
241
830
  * - false if an existing effect needed to be removed
242
831
  * - undefined if no changes need to be made
243
832
  */
833
+ // options: not null (destructured)
244
834
  toggleStatusEffect(
245
835
  statusId: string,
246
- options?: InexactPartial<{
247
- /** Force the effect to be active or inactive regardless of its current state. */
248
- active: boolean;
249
- /** Display the toggled effect as an overlay. Default `false`. */
250
- overlay: boolean;
251
- }>,
252
- ): Promise<ActiveEffect.ConfiguredInstance | boolean | undefined>;
836
+ options?: Actor.ToggleStatusEffectOptions,
837
+ ): Promise<ActiveEffect.Implementation | boolean | undefined>;
253
838
 
254
839
  /**
255
840
  * Request wildcard token images from the server and return them.
256
841
  * @param actorId - The actor whose prototype token contains the wildcard image path.
257
- * @internal
842
+ * @private
258
843
  */
259
- protected static _requestTokenImages(
260
- actorId: string,
261
- options?: {
262
- /** The name of the compendium the actor is in. */
263
- pack: string;
264
- },
265
- ): Promise<string[]>;
844
+ // options: not null (parameter default only)
845
+ protected static _requestTokenImages(actorId: string, options?: Actor.RequestTokenImagesOptions): Promise<string[]>;
266
846
 
267
847
  /**
268
848
  * Get this actor's dependent tokens.
269
849
  * If the actor is a synthetic token actor, only the exact Token which it represents will be returned.
270
850
  */
271
- getDependentTokens(
272
- options?: InexactPartial<{
273
- /**
274
- * A single Scene, or list of Scenes to filter by.
275
- */
276
- scenes: Scene | Scene[];
277
- /**
278
- * Limit the results to tokens that are linked to the actor.
279
- * @defaultValue `false`
280
- */
281
- linked: boolean;
282
- }>,
283
- ): TokenDocument.ConfiguredInstance[];
851
+ // options: not null (destructured)
852
+ getDependentTokens(options?: Actor.GetDependentTokensOptions): TokenDocument.Implementation[];
284
853
 
285
854
  /**
286
855
  * Register a token as a dependent of this actor.
287
856
  * @param token - The Token
857
+ * @internal
288
858
  */
289
- protected _registerDependantToken(token: TokenDocument): void;
859
+ protected _registerDependantToken(token: TokenDocument.Implementation): void;
290
860
 
291
861
  /**
292
862
  * Remove a token from this actor's dependents.
293
863
  * @param token - The Token
864
+ * @internal
294
865
  */
295
- protected _unregisterDependentToken(token: TokenDocument): void;
866
+ protected _unregisterDependentToken(token: TokenDocument.Implementation): void;
296
867
 
297
868
  /**
298
869
  * Prune a whole scene from this actor's dependent tokens.
299
870
  * @param scene - The scene
871
+ * @internal
300
872
  */
301
- protected _unregisterDependentScene(scene: Scene): void;
873
+ protected _unregisterDependentScene(scene: Scene.Implementation): void;
874
+
875
+ // _onUpdate is overridden but with no signature changes from BaseActor.
302
876
 
303
877
  /**
304
- * @privateRemarks _preCreate, _onUpdate, onCreateDescendantDocuments, onUpdateDescendantDocuments, and _onDeleteDescendentDocuments are all overridden but with no signature changes.
305
- * For type simplicity they are left off. These methods historically have been the source of a large amount of computation from tsc.
878
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
879
+ * this method must be overridden like so:
880
+ * ```typescript
881
+ * class GurpsActor extends Actor {
882
+ * protected override _onCreateDescendantDocuments(...args: Actor.OnCreateDescendantDocumentsArgs) {
883
+ * super._onCreateDescendantDocuments(...args);
884
+ *
885
+ * const [parent, collection, documents, data, options, userId] = args;
886
+ * if (collection === "effects") {
887
+ * options; // Will be narrowed.
888
+ * }
889
+ * }
890
+ * }
891
+ * ```
306
892
  */
893
+ protected override _onCreateDescendantDocuments(...args: Actor.OnCreateDescendantDocumentsArgs): void;
894
+
895
+ /**
896
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
897
+ * this method must be overridden like so:
898
+ * ```typescript
899
+ * class Ptr2eActor extends Actor {
900
+ * protected override _onUpdateDescendantDocuments(...args: Actor.OnUpdateDescendantDocumentsArgs) {
901
+ * super._onUpdateDescendantDocuments(...args);
902
+ *
903
+ * const [parent, collection, documents, changes, options, userId] = args;
904
+ * if (collection === "effects") {
905
+ * options; // Will be narrowed.
906
+ * }
907
+ * }
908
+ * }
909
+ * ```
910
+ */
911
+ protected override _onUpdateDescendantDocuments(...args: Actor.OnUpdateDescendantDocumentsArgs): void;
912
+
913
+ /**
914
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
915
+ * this method must be overridden like so:
916
+ * ```typescript
917
+ * class BladesActor extends Actor {
918
+ * protected override _onDeleteDescendantDocuments(...args: Actor.OnUpdateDescendantDocuments) {
919
+ * super._onDeleteDescendantDocuments(...args);
920
+ *
921
+ * const [parent, collection, documents, ids, options, userId] = args;
922
+ * if (collection === "effects") {
923
+ * options; // Will be narrowed.
924
+ * }
925
+ * }
926
+ * }
927
+ * ```
928
+ */
929
+ protected override _onDeleteDescendantDocuments(...args: Actor.OnDeleteDescendantDocumentsArgs): void;
307
930
 
308
931
  /**
309
932
  * Additional workflows to perform when any descendant document within this Actor changes.
310
- * @internal
311
933
  */
312
934
  protected _onEmbeddedDocumentChange(): void;
313
935
 
@@ -315,10 +937,96 @@ declare global {
315
937
  * Update the active TokenDocument instances which represent this Actor.
316
938
  * @param update - The update delta.
317
939
  * @param options - The update context.
940
+ * @remarks Forwards to {@link Token._onUpdateBaseActor | `Token#_onUpdateBaseActor`}
941
+ */
942
+ protected _updateDependentTokens(update: Actor.UpdateData, options: Actor.Database.UpdateOperation): void;
943
+
944
+ /*
945
+ * After this point these are not really overridden methods.
946
+ * They are here because Foundry's documents are complex and have lots of edge cases.
947
+ * There are DRY ways of representing this but this ends up being harder to understand
948
+ * for end users extending these functions, especially for static methods. There are also a
949
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
950
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
951
+ * separate like this helps against circularities.
318
952
  */
319
- protected _updateDependentTokens(
320
- update: DeepPartial<TokenDocument["_source"]>,
321
- options: Document.OnUpdateOptions<"Token">,
322
- ): void;
953
+
954
+ // ClientDocument overrides
955
+
956
+ /**
957
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
958
+ * this method must be overridden like so:
959
+ * ```typescript
960
+ * class SwadeActor extends Actor {
961
+ * protected override _preCreateDescendantDocuments(...args: Actor.PreCreateDescendantDocumentsArgs) {
962
+ * super._preCreateDescendantDocuments(...args);
963
+ *
964
+ * const [parent, collection, data, options, userId] = args;
965
+ * if (collection === "effects") {
966
+ * options; // Will be narrowed.
967
+ * }
968
+ * }
969
+ * }
970
+ * ```
971
+ */
972
+ protected override _preCreateDescendantDocuments(...args: Actor.PreCreateDescendantDocumentsArgs): void;
973
+
974
+ /**
975
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
976
+ * this method must be overridden like so:
977
+ * ```typescript
978
+ * class LancerActor extends Actor {
979
+ * protected override _preUpdateDescendantDocuments(...args: Actor.OnUpdateDescendantDocuments) {
980
+ * super._preUpdateDescendantDocuments(...args);
981
+ *
982
+ * const [parent, collection, changes, options, userId] = args;
983
+ * if (collection === "effects") {
984
+ * options; // Will be narrowed.
985
+ * }
986
+ * }
987
+ * }
988
+ * ```
989
+ */
990
+ protected override _preUpdateDescendantDocuments(...args: Actor.PreUpdateDescendantDocumentsArgs): void;
991
+
992
+ /**
993
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
994
+ * this method must be overridden like so:
995
+ * ```typescript
996
+ * class KultActor extends Actor {
997
+ * protected override _preDeleteDescendantDocuments(...args: Actor.PreDeleteDescendantDocumentsArgs) {
998
+ * super._preDeleteDescendantDocuments(...args);
999
+ *
1000
+ * const [parent, collection, ids, options, userId] = args;
1001
+ * if (collection === "effects") {
1002
+ * options; // Will be narrowed.
1003
+ * }
1004
+ * }
1005
+ * }
1006
+ * ```
1007
+ */
1008
+ protected override _preDeleteDescendantDocuments(...args: Actor.PreDeleteDescendantDocumentsArgs): void;
1009
+
1010
+ // context: not null (destructured)
1011
+ static override defaultName(context?: Document.DefaultNameContext<"Actor", Actor.Parent>): string;
1012
+
1013
+ // data: not null (parameter default only), context: not null (destructured)
1014
+ static override createDialog(
1015
+ data?: Document.CreateDialogData<Actor.CreateData>,
1016
+ context?: Document.CreateDialogContext<"Actor", Actor.Parent>,
1017
+ ): Promise<Actor.Stored | null | undefined>;
1018
+
1019
+ // options: not null (parameter default only)
1020
+ static override fromDropData(
1021
+ data: Document.DropData<Actor.Implementation>,
1022
+ options?: AnyObject,
1023
+ ): Promise<Actor.Implementation | undefined>;
1024
+
1025
+ static override fromImport(
1026
+ source: Actor.Source,
1027
+ context?: Document.FromImportContext<Actor.Parent> | null,
1028
+ ): Promise<Actor.Implementation>;
1029
+
1030
+ override _onClickDocumentLink(event: MouseEvent): ClientDocument.OnClickDocumentLinkReturn;
323
1031
  }
324
1032
  }