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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (543) hide show
  1. package/README.md +6 -3
  2. package/package.json +40 -18
  3. package/src/configuration/configuration.d.mts +24 -23
  4. package/src/configuration/documents.d.mts +295 -0
  5. package/src/configuration/globals.d.mts +8 -2
  6. package/src/configuration/index.d.mts +1 -0
  7. package/src/foundry/client/apps/app.d.mts +121 -119
  8. package/src/foundry/client/apps/av/av-config.d.mts +13 -8
  9. package/src/foundry/client/apps/av/cameras.d.mts +11 -11
  10. package/src/foundry/client/apps/dice/dice-config.d.mts +22 -8
  11. package/src/foundry/client/apps/form.d.mts +112 -94
  12. package/src/foundry/client/apps/forms/actor.d.mts +22 -12
  13. package/src/foundry/client/apps/forms/adventure-exporter.d.mts +13 -8
  14. package/src/foundry/client/apps/forms/adventure-importer.d.mts +15 -7
  15. package/src/foundry/client/apps/forms/base-sheet.d.mts +14 -7
  16. package/src/foundry/client/apps/forms/card-config.d.mts +17 -9
  17. package/src/foundry/client/apps/forms/cards-config.d.mts +13 -14
  18. package/src/foundry/client/apps/forms/combat-config.d.mts +7 -7
  19. package/src/foundry/client/apps/forms/combatant-config.d.mts +4 -4
  20. package/src/foundry/client/apps/forms/default-sheets-config.d.mts +1 -1
  21. package/src/foundry/client/apps/forms/effect-config.d.mts +6 -6
  22. package/src/foundry/client/apps/forms/folder-config.d.mts +5 -5
  23. package/src/foundry/client/apps/forms/fonts.d.mts +42 -35
  24. package/src/foundry/client/apps/forms/grid-config.d.mts +11 -11
  25. package/src/foundry/client/apps/forms/image-popout.d.mts +28 -22
  26. package/src/foundry/client/apps/forms/item.d.mts +6 -6
  27. package/src/foundry/client/apps/forms/journal-page-sheet.d.mts +17 -15
  28. package/src/foundry/client/apps/forms/journal-sheet.d.mts +46 -37
  29. package/src/foundry/client/apps/forms/macro-config.d.mts +6 -6
  30. package/src/foundry/client/apps/forms/measure-template.d.mts +8 -8
  31. package/src/foundry/client/apps/forms/ownership.d.mts +5 -5
  32. package/src/foundry/client/apps/forms/playlist-config.d.mts +7 -9
  33. package/src/foundry/client/apps/forms/playlist-sound-config.d.mts +6 -6
  34. package/src/foundry/client/apps/forms/roll-table-config.d.mts +9 -10
  35. package/src/foundry/client/apps/forms/scene-config.d.mts +39 -39
  36. package/src/foundry/client/apps/forms/sheet-config.d.mts +8 -8
  37. package/src/foundry/client/apps/forms/user-config.d.mts +11 -11
  38. package/src/foundry/client/apps/hud/chatbubble.d.mts +14 -9
  39. package/src/foundry/client/apps/hud/container.d.mts +3 -3
  40. package/src/foundry/client/apps/hud/controls.d.mts +124 -84
  41. package/src/foundry/client/apps/hud/hotbar.d.mts +12 -12
  42. package/src/foundry/client/apps/hud/hud.d.mts +4 -4
  43. package/src/foundry/client/apps/hud/menu.d.mts +6 -6
  44. package/src/foundry/client/apps/hud/navigation.d.mts +11 -11
  45. package/src/foundry/client/apps/hud/pause.d.mts +7 -7
  46. package/src/foundry/client/apps/hud/players.d.mts +11 -11
  47. package/src/foundry/client/apps/i18n.d.mts +31 -27
  48. package/src/foundry/client/apps/placeables/drawing-config.d.mts +41 -33
  49. package/src/foundry/client/apps/placeables/drawing-hud.d.mts +4 -4
  50. package/src/foundry/client/apps/placeables/index.d.mts +0 -2
  51. package/src/foundry/client/apps/placeables/note-config.d.mts +27 -17
  52. package/src/foundry/client/apps/placeables/tile-config.d.mts +23 -10
  53. package/src/foundry/client/apps/placeables/tile-hud.d.mts +8 -8
  54. package/src/foundry/client/apps/placeables/token-config.d.mts +84 -63
  55. package/src/foundry/client/apps/placeables/token-hud.d.mts +10 -10
  56. package/src/foundry/client/apps/placeables/wall-config.d.mts +19 -16
  57. package/src/foundry/client/apps/sidebar/apps/chat-popout.d.mts +5 -5
  58. package/src/foundry/client/apps/sidebar/apps/client-settings.d.mts +2 -2
  59. package/src/foundry/client/apps/sidebar/apps/compendium.d.mts +13 -10
  60. package/src/foundry/client/apps/sidebar/apps/invitation-links.d.mts +3 -3
  61. package/src/foundry/client/apps/sidebar/apps/keybindings-config.d.mts +1 -1
  62. package/src/foundry/client/apps/sidebar/apps/module-management.d.mts +6 -6
  63. package/src/foundry/client/apps/sidebar/apps/permission-config.d.mts +6 -6
  64. package/src/foundry/client/apps/sidebar/apps/support-details.d.mts +33 -28
  65. package/src/foundry/client/apps/sidebar/apps/tours-management.d.mts +1 -1
  66. package/src/foundry/client/apps/sidebar/apps/world-config.d.mts +12 -9
  67. package/src/foundry/client/apps/sidebar/directory-tab-mixin.d.mts +40 -32
  68. package/src/foundry/client/apps/sidebar/document-directory.d.mts +44 -37
  69. package/src/foundry/client/apps/sidebar/package-configuration.d.mts +3 -3
  70. package/src/foundry/client/apps/sidebar/sidebar-tab.d.mts +3 -3
  71. package/src/foundry/client/apps/sidebar/sidebar.d.mts +7 -7
  72. package/src/foundry/client/apps/sidebar/tabs/actors-directory.d.mts +4 -4
  73. package/src/foundry/client/apps/sidebar/tabs/cards-directory.d.mts +4 -4
  74. package/src/foundry/client/apps/sidebar/tabs/chat-log.d.mts +34 -29
  75. package/src/foundry/client/apps/sidebar/tabs/combat-tracker.d.mts +15 -15
  76. package/src/foundry/client/apps/sidebar/tabs/compendium-directory.d.mts +21 -12
  77. package/src/foundry/client/apps/sidebar/tabs/items-directory.d.mts +4 -4
  78. package/src/foundry/client/apps/sidebar/tabs/journal-directory.d.mts +4 -4
  79. package/src/foundry/client/apps/sidebar/tabs/macros-directory.d.mts +8 -8
  80. package/src/foundry/client/apps/sidebar/tabs/playlists-directory.d.mts +21 -21
  81. package/src/foundry/client/apps/sidebar/tabs/roll-table-directory.d.mts +4 -4
  82. package/src/foundry/client/apps/sidebar/tabs/scenes-directory.d.mts +6 -6
  83. package/src/foundry/client/apps/sidebar/tabs/settings.d.mts +12 -12
  84. package/src/foundry/client/apps/templates.d.mts +2 -2
  85. package/src/foundry/client/av/clients/simplepeer.d.mts +4 -4
  86. package/src/foundry/client/av/settings.d.mts +16 -13
  87. package/src/foundry/client/config.d.mts +1982 -1823
  88. package/src/foundry/client/core/document-index.d.mts +12 -4
  89. package/src/foundry/client/core/hooks.d.mts +0 -2
  90. package/src/foundry/client/core/image.d.mts +13 -11
  91. package/src/foundry/client/core/issues.d.mts +11 -6
  92. package/src/foundry/client/core/keybindings.d.mts +3 -3
  93. package/src/foundry/client/core/nue.d.mts +1 -1
  94. package/src/foundry/client/core/packages.d.mts +393 -63
  95. package/src/foundry/client/core/settings.d.mts +34 -12
  96. package/src/foundry/client/core/socket.d.mts +2 -2
  97. package/src/foundry/client/core/sorting.d.mts +6 -6
  98. package/src/foundry/client/core/time.d.mts +6 -3
  99. package/src/foundry/client/core/tooltip.d.mts +1 -1
  100. package/src/foundry/client/core/tour.d.mts +58 -49
  101. package/src/foundry/client/core/tours.d.mts +1 -1
  102. package/src/foundry/client/core/utils.d.mts +3 -3
  103. package/src/foundry/client/core/workers.d.mts +24 -17
  104. package/src/foundry/client/data/abstract/canvas-document.d.mts +9 -15
  105. package/src/foundry/client/data/abstract/client-document.d.mts +133 -172
  106. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +14 -36
  107. package/src/foundry/client/data/abstract/document-collection.d.mts +89 -65
  108. package/src/foundry/client/data/abstract/world-collection.d.mts +47 -53
  109. package/src/foundry/client/data/collections/actors.d.mts +24 -31
  110. package/src/foundry/client/data/collections/cards.d.mts +10 -6
  111. package/src/foundry/client/data/collections/combats.d.mts +12 -8
  112. package/src/foundry/client/data/collections/compendium-collection.d.mts +79 -66
  113. package/src/foundry/client/data/collections/compendium-folders.d.mts +6 -6
  114. package/src/foundry/client/data/collections/compendium-packs.d.mts +4 -4
  115. package/src/foundry/client/data/collections/fog.d.mts +10 -6
  116. package/src/foundry/client/data/collections/folder.d.mts +15 -10
  117. package/src/foundry/client/data/collections/items.d.mts +11 -7
  118. package/src/foundry/client/data/collections/journal.d.mts +16 -10
  119. package/src/foundry/client/data/collections/macros.d.mts +15 -22
  120. package/src/foundry/client/data/collections/messages.d.mts +14 -10
  121. package/src/foundry/client/data/collections/playlists.d.mts +12 -9
  122. package/src/foundry/client/data/collections/scenes.d.mts +19 -31
  123. package/src/foundry/client/data/collections/settings.d.mts +10 -6
  124. package/src/foundry/client/data/collections/tables.d.mts +11 -7
  125. package/src/foundry/client/data/collections/users.d.mts +14 -11
  126. package/src/foundry/client/data/documents/active-effect.d.mts +652 -88
  127. package/src/foundry/client/data/documents/actor-delta.d.mts +672 -28
  128. package/src/foundry/client/data/documents/actor.d.mts +722 -60
  129. package/src/foundry/client/data/documents/adventure.d.mts +482 -49
  130. package/src/foundry/client/data/documents/ambient-light.d.mts +426 -21
  131. package/src/foundry/client/data/documents/ambient-sound.d.mts +474 -15
  132. package/src/foundry/client/data/documents/card.d.mts +570 -39
  133. package/src/foundry/client/data/documents/cards.d.mts +742 -78
  134. package/src/foundry/client/data/documents/chat-message.d.mts +578 -45
  135. package/src/foundry/client/data/documents/combat.d.mts +701 -71
  136. package/src/foundry/client/data/documents/combatant.d.mts +510 -28
  137. package/src/foundry/client/data/documents/drawing.d.mts +543 -16
  138. package/src/foundry/client/data/documents/fog-exploration.d.mts +413 -27
  139. package/src/foundry/client/data/documents/folder.d.mts +461 -40
  140. package/src/foundry/client/data/documents/item.d.mts +679 -25
  141. package/src/foundry/client/data/documents/journal-entry-page.d.mts +587 -21
  142. package/src/foundry/client/data/documents/journal-entry.d.mts +621 -20
  143. package/src/foundry/client/data/documents/macro.d.mts +530 -25
  144. package/src/foundry/client/data/documents/measured-template.d.mts +480 -16
  145. package/src/foundry/client/data/documents/note.d.mts +495 -18
  146. package/src/foundry/client/data/documents/playlist-sound.d.mts +429 -27
  147. package/src/foundry/client/data/documents/playlist.d.mts +666 -75
  148. package/src/foundry/client/data/documents/region-behavior.d.mts +468 -38
  149. package/src/foundry/client/data/documents/region.d.mts +661 -35
  150. package/src/foundry/client/data/documents/scene.d.mts +986 -149
  151. package/src/foundry/client/data/documents/setting.d.mts +397 -15
  152. package/src/foundry/client/data/documents/table-result.d.mts +479 -17
  153. package/src/foundry/client/data/documents/table.d.mts +663 -80
  154. package/src/foundry/client/data/documents/tile.d.mts +502 -16
  155. package/src/foundry/client/data/documents/token.d.mts +1114 -90
  156. package/src/foundry/client/data/documents/user.d.mts +495 -27
  157. package/src/foundry/client/data/documents/wall.d.mts +550 -15
  158. package/src/foundry/client/game.d.mts +58 -92
  159. package/src/foundry/client/head.d.mts +5 -6
  160. package/src/foundry/client/hooks.d.mts +237 -221
  161. package/src/foundry/client/pixi/board.d.mts +95 -89
  162. package/src/foundry/client/pixi/core/containers/base-canvas-group.d.mts +6 -5
  163. package/src/foundry/client/pixi/core/containers/cached-container.d.mts +5 -5
  164. package/src/foundry/client/pixi/core/containers/full-canvas-container.d.mts +2 -2
  165. package/src/foundry/client/pixi/core/containers/point-source-mesh.d.mts +3 -3
  166. package/src/foundry/client/pixi/core/containers/quad-mesh.d.mts +3 -3
  167. package/src/foundry/client/pixi/core/containers/quadtree.d.mts +23 -21
  168. package/src/foundry/client/pixi/core/containers/sprite-mesh.d.mts +5 -5
  169. package/src/foundry/client/pixi/core/containers/unbound-container.d.mts +5 -5
  170. package/src/foundry/client/pixi/core/interaction/canvas-animation.d.mts +57 -51
  171. package/src/foundry/client/pixi/core/interaction/control-icon.d.mts +3 -3
  172. package/src/foundry/client/pixi/core/interaction/mouse-handler.d.mts +7 -7
  173. package/src/foundry/client/pixi/core/interaction/ping.d.mts +19 -11
  174. package/src/foundry/client/pixi/core/interaction/pings/chevron.d.mts +7 -2
  175. package/src/foundry/client/pixi/core/interaction/pings/pulse.d.mts +29 -23
  176. package/src/foundry/client/pixi/core/interaction/render-flags.d.mts +83 -38
  177. package/src/foundry/client/pixi/core/interaction/resize-handle.d.mts +3 -3
  178. package/src/foundry/client/pixi/core/interaction/targets.d.mts +9 -9
  179. package/src/foundry/client/pixi/core/loader.d.mts +8 -8
  180. package/src/foundry/client/pixi/core/shapes/limited-angle-polygon.d.mts +9 -4
  181. package/src/foundry/client/pixi/core/shapes/polygon-mesher.d.mts +3 -3
  182. package/src/foundry/client/pixi/core/shapes/precise-text.d.mts +3 -3
  183. package/src/foundry/client/pixi/core/shapes/ray.d.mts +23 -17
  184. package/src/foundry/client/pixi/core/shapes/source-polygon.d.mts +19 -14
  185. package/src/foundry/client/pixi/extensions/circle.d.mts +1 -1
  186. package/src/foundry/client/pixi/extensions/observable-transform.d.mts +3 -3
  187. package/src/foundry/client/pixi/groups/effects.d.mts +4 -4
  188. package/src/foundry/client/pixi/groups/environment.d.mts +5 -5
  189. package/src/foundry/client/pixi/groups/hidden.d.mts +3 -3
  190. package/src/foundry/client/pixi/groups/interface.d.mts +6 -6
  191. package/src/foundry/client/pixi/groups/overlay.d.mts +3 -3
  192. package/src/foundry/client/pixi/groups/primary.d.mts +11 -11
  193. package/src/foundry/client/pixi/groups/rendered.d.mts +3 -3
  194. package/src/foundry/client/pixi/layers/base/canvas-layer.d.mts +3 -3
  195. package/src/foundry/client/pixi/layers/base/interaction-layer.d.mts +13 -13
  196. package/src/foundry/client/pixi/layers/base/placeables-layer.d.mts +279 -233
  197. package/src/foundry/client/pixi/layers/controls/cursor.d.mts +17 -8
  198. package/src/foundry/client/pixi/layers/controls/door.d.mts +26 -14
  199. package/src/foundry/client/pixi/layers/controls/layer.d.mts +89 -79
  200. package/src/foundry/client/pixi/layers/controls/ruler.d.mts +121 -96
  201. package/src/foundry/client/pixi/layers/effects/background-effects.d.mts +4 -5
  202. package/src/foundry/client/pixi/layers/effects/coloration-effects.d.mts +6 -4
  203. package/src/foundry/client/pixi/layers/effects/darkness-effects.d.mts +7 -4
  204. package/src/foundry/client/pixi/layers/effects/illumination-effects.d.mts +19 -16
  205. package/src/foundry/client/pixi/layers/effects/visibility.d.mts +101 -84
  206. package/src/foundry/client/pixi/layers/effects/weather/particles/effect.d.mts +13 -4
  207. package/src/foundry/client/pixi/layers/effects/weather/particles/leaves.d.mts +31 -2
  208. package/src/foundry/client/pixi/layers/effects/weather-effects.d.mts +134 -59
  209. package/src/foundry/client/pixi/layers/grid/highlight.d.mts +13 -3
  210. package/src/foundry/client/pixi/layers/grid/layer.d.mts +89 -87
  211. package/src/foundry/client/pixi/layers/grid/mesh.d.mts +36 -15
  212. package/src/foundry/client/pixi/layers/masks/depth.d.mts +3 -3
  213. package/src/foundry/client/pixi/layers/masks/occlusion.d.mts +4 -4
  214. package/src/foundry/client/pixi/layers/masks/vision.d.mts +6 -6
  215. package/src/foundry/client/pixi/layers/placeables/drawings.d.mts +15 -11
  216. package/src/foundry/client/pixi/layers/placeables/lighting.d.mts +11 -10
  217. package/src/foundry/client/pixi/layers/placeables/notes.d.mts +47 -28
  218. package/src/foundry/client/pixi/layers/placeables/regions.d.mts +25 -12
  219. package/src/foundry/client/pixi/layers/placeables/sounds.d.mts +81 -63
  220. package/src/foundry/client/pixi/layers/placeables/templates.d.mts +10 -11
  221. package/src/foundry/client/pixi/layers/placeables/tiles.d.mts +28 -17
  222. package/src/foundry/client/pixi/layers/placeables/tokens.d.mts +67 -46
  223. package/src/foundry/client/pixi/layers/placeables/walls.d.mts +50 -51
  224. package/src/foundry/client/pixi/perception/clockwise-sweep.d.mts +22 -16
  225. package/src/foundry/client/pixi/perception/detection-mode.d.mts +123 -51
  226. package/src/foundry/client/pixi/perception/fog.d.mts +34 -19
  227. package/src/foundry/client/pixi/perception/perception-manager.d.mts +137 -137
  228. package/src/foundry/client/pixi/perception/vision-mode.d.mts +92 -67
  229. package/src/foundry/client/pixi/perception/weiler-atherton-clipping.d.mts +3 -3
  230. package/src/foundry/client/pixi/placeable.d.mts +241 -146
  231. package/src/foundry/client/pixi/placeables/drawing.d.mts +260 -134
  232. package/src/foundry/client/pixi/placeables/light.d.mts +204 -66
  233. package/src/foundry/client/pixi/placeables/note.d.mts +150 -55
  234. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-canvas-object.d.mts +7 -6
  235. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-graphics.d.mts +3 -3
  236. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-occludable-object.d.mts +2 -2
  237. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-sprite-mesh.d.mts +4 -4
  238. package/src/foundry/client/pixi/placeables/region.d.mts +219 -110
  239. package/src/foundry/client/pixi/placeables/sound.d.mts +211 -68
  240. package/src/foundry/client/pixi/placeables/template.d.mts +186 -100
  241. package/src/foundry/client/pixi/placeables/tile.d.mts +211 -142
  242. package/src/foundry/client/pixi/placeables/token.d.mts +911 -568
  243. package/src/foundry/client/pixi/placeables/wall.d.mts +253 -130
  244. package/src/foundry/client/pixi/webgl/extensions/batch-renderer.d.mts +27 -5
  245. package/src/foundry/client/pixi/webgl/extensions/batch-shader-generator.d.mts +3 -3
  246. package/src/foundry/client/pixi/webgl/helpers/framebuffer-snapshot.d.mts +3 -3
  247. package/src/foundry/client/pixi/webgl/helpers/smooth-noise.d.mts +13 -5
  248. package/src/foundry/client/pixi/webgl/helpers/texture-extractor.d.mts +6 -6
  249. package/src/foundry/client/pixi/webgl/shaders/base-shader-mixin.d.mts +2 -2
  250. package/src/foundry/client/pixi/webgl/shaders/base-shader.d.mts +5 -5
  251. package/src/foundry/client/pixi/webgl/shaders/filters/base-filter.d.mts +4 -4
  252. package/src/foundry/client/pixi/webgl/shaders/filters/base-mask-filter.d.mts +3 -3
  253. package/src/foundry/client/pixi/webgl/shaders/filters/blur.d.mts +5 -5
  254. package/src/foundry/client/pixi/webgl/shaders/filters/effects-masking.d.mts +6 -3
  255. package/src/foundry/client/pixi/webgl/shaders/filters/environment.d.mts +3 -3
  256. package/src/foundry/client/pixi/webgl/shaders/filters/glow-overlay.d.mts +4 -4
  257. package/src/foundry/client/pixi/webgl/shaders/filters/invisibility.d.mts +3 -3
  258. package/src/foundry/client/pixi/webgl/shaders/filters/outline-overlay.d.mts +4 -4
  259. package/src/foundry/client/pixi/webgl/shaders/filters/transition.d.mts +6 -6
  260. package/src/foundry/client/pixi/webgl/shaders/filters/visibility.d.mts +8 -5
  261. package/src/foundry/client/pixi/webgl/shaders/filters/vision-mask-filter.d.mts +3 -3
  262. package/src/foundry/client/pixi/webgl/shaders/filters/void.d.mts +3 -3
  263. package/src/foundry/client/pixi/webgl/shaders/filters/weather-occlusion-masks.d.mts +4 -4
  264. package/src/foundry/client/pixi/webgl/shaders/fragment-channel-mixin.d.mts +1 -1
  265. package/src/foundry/client/pixi/webgl/shaders/grid/grid.d.mts +4 -4
  266. package/src/foundry/client/pixi/webgl/shaders/lighting/background-lighting.d.mts +3 -3
  267. package/src/foundry/client/pixi/webgl/shaders/lighting/base-lighting.d.mts +3 -3
  268. package/src/foundry/client/pixi/webgl/shaders/lighting/coloration-lighting.d.mts +3 -3
  269. package/src/foundry/client/pixi/webgl/shaders/lighting/darkness-lighting.d.mts +3 -3
  270. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/bewitching-wave.d.mts +5 -5
  271. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/black-hole.d.mts +3 -3
  272. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/chroma.d.mts +3 -3
  273. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/emanation.d.mts +3 -3
  274. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/energy-field.d.mts +3 -3
  275. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fairy-light.d.mts +6 -6
  276. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/flame.d.mts +5 -5
  277. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fog.d.mts +3 -3
  278. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/force-grid.d.mts +3 -3
  279. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/ghost-light.d.mts +5 -5
  280. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/hexa-dome.d.mts +3 -3
  281. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/light-dome.d.mts +3 -3
  282. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/magical-gloom.d.mts +3 -3
  283. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/pulse.d.mts +5 -5
  284. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/radial-rainbow.d.mts +3 -3
  285. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/revolving-light.d.mts +3 -3
  286. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/roiling-mass.d.mts +3 -3
  287. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/siren-light.d.mts +5 -5
  288. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/smoke-patch.d.mts +6 -5
  289. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/star-light.d.mts +3 -3
  290. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/sunburst.d.mts +5 -5
  291. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/swirling-rainbow.d.mts +4 -3
  292. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/torch.d.mts +5 -5
  293. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/vortex.d.mts +5 -5
  294. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/wave.d.mts +5 -5
  295. package/src/foundry/client/pixi/webgl/shaders/lighting/illumination-lighting.d.mts +3 -3
  296. package/src/foundry/client/pixi/webgl/shaders/region/adjust-darkness-level.d.mts +7 -7
  297. package/src/foundry/client/pixi/webgl/shaders/region/base.d.mts +4 -4
  298. package/src/foundry/client/pixi/webgl/shaders/region/highlight.d.mts +3 -3
  299. package/src/foundry/client/pixi/webgl/shaders/samplers/base-sampler.d.mts +4 -4
  300. package/src/foundry/client/pixi/webgl/shaders/samplers/baseline-illumination.d.mts +3 -3
  301. package/src/foundry/client/pixi/webgl/shaders/samplers/color-adjustment.d.mts +5 -5
  302. package/src/foundry/client/pixi/webgl/shaders/samplers/depth.d.mts +3 -3
  303. package/src/foundry/client/pixi/webgl/shaders/samplers/fog-of-war.d.mts +3 -3
  304. package/src/foundry/client/pixi/webgl/shaders/samplers/occlusion.d.mts +3 -3
  305. package/src/foundry/client/pixi/webgl/shaders/samplers/primary.d.mts +4 -4
  306. package/src/foundry/client/pixi/webgl/shaders/samplers/token-ring.d.mts +4 -6
  307. package/src/foundry/client/pixi/webgl/shaders/vision/background-vision.d.mts +3 -3
  308. package/src/foundry/client/pixi/webgl/shaders/vision/base-vision.d.mts +3 -3
  309. package/src/foundry/client/pixi/webgl/shaders/vision/coloration-vision.d.mts +3 -3
  310. package/src/foundry/client/pixi/webgl/shaders/vision/effects/amplification.d.mts +3 -3
  311. package/src/foundry/client/pixi/webgl/shaders/vision/effects/wave.d.mts +5 -5
  312. package/src/foundry/client/pixi/webgl/shaders/vision/illumination-vision.d.mts +3 -3
  313. package/src/foundry/client/pixi/webgl/shaders/weather/base-weather.d.mts +14 -15
  314. package/src/foundry/client/pixi/webgl/shaders/weather/effect.d.mts +20 -27
  315. package/src/foundry/client/pixi/webgl/shaders/weather/fog.d.mts +5 -5
  316. package/src/foundry/client/pixi/webgl/shaders/weather/rain.d.mts +5 -5
  317. package/src/foundry/client/pixi/webgl/shaders/weather/snow.d.mts +5 -5
  318. package/src/foundry/client/pixi/workers/texture-worker.d.mts +5 -5
  319. package/src/foundry/client/tours/setup-tour.d.mts +15 -10
  320. package/src/foundry/client/ui/dialog.d.mts +3 -3
  321. package/src/foundry/client/ui/dragdrop.d.mts +33 -27
  322. package/src/foundry/client/ui/editor.d.mts +29 -21
  323. package/src/foundry/client/ui/filepicker.d.mts +42 -37
  324. package/src/foundry/client/ui/filter.d.mts +60 -48
  325. package/src/foundry/client/ui/forms.d.mts +22 -22
  326. package/src/foundry/client/ui/prosemirror.d.mts +15 -7
  327. package/src/foundry/client/ui/secrets.d.mts +43 -28
  328. package/src/foundry/client/ui/tabs.d.mts +40 -33
  329. package/src/foundry/client-esm/_module.d.mts +5 -5
  330. package/src/foundry/client-esm/_types.d.mts +2 -1
  331. package/src/foundry/client-esm/applications/api/application.d.mts +93 -31
  332. package/src/foundry/client-esm/applications/api/dialog.d.mts +23 -23
  333. package/src/foundry/client-esm/applications/api/document-sheet.d.mts +85 -32
  334. package/src/foundry/client-esm/applications/api/handlebars-application.d.mts +1 -1
  335. package/src/foundry/client-esm/applications/apps/av/camera-popout.d.mts +1 -1
  336. package/src/foundry/client-esm/applications/apps/av/cameras.d.mts +2 -2
  337. package/src/foundry/client-esm/applications/apps/compendium-art-config.d.mts +4 -5
  338. package/src/foundry/client-esm/applications/apps/file-picker.d.mts +2 -2
  339. package/src/foundry/client-esm/applications/apps/grid-config.d.mts +3 -3
  340. package/src/foundry/client-esm/applications/apps/image-popout.d.mts +1 -1
  341. package/src/foundry/client-esm/applications/apps/permission-config.d.mts +1 -1
  342. package/src/foundry/client-esm/applications/dice/roll-resolver.d.mts +4 -4
  343. package/src/foundry/client-esm/applications/elements/file-picker.d.mts +1 -1
  344. package/src/foundry/client-esm/applications/elements/prosemirror-editor.d.mts +1 -1
  345. package/src/foundry/client-esm/applications/hud/drawing-hud.d.mts +1 -1
  346. package/src/foundry/client-esm/applications/hud/tile-hud.d.mts +1 -1
  347. package/src/foundry/client-esm/applications/hud/token-hud.d.mts +1 -1
  348. package/src/foundry/client-esm/applications/sheets/active-effect-config.d.mts +3 -3
  349. package/src/foundry/client-esm/applications/sheets/actor-sheet.d.mts +2 -2
  350. package/src/foundry/client-esm/applications/sheets/adventure-exporter.d.mts +3 -3
  351. package/src/foundry/client-esm/applications/sheets/adventure-importer.d.mts +3 -3
  352. package/src/foundry/client-esm/applications/sheets/ambient-light-config.d.mts +5 -5
  353. package/src/foundry/client-esm/applications/sheets/ambient-sound-config.d.mts +4 -4
  354. package/src/foundry/client-esm/applications/sheets/card-config.d.mts +3 -3
  355. package/src/foundry/client-esm/applications/sheets/cards-config.d.mts +2 -2
  356. package/src/foundry/client-esm/applications/sheets/combatant-config.d.mts +3 -3
  357. package/src/foundry/client-esm/applications/sheets/drawing-config.d.mts +3 -3
  358. package/src/foundry/client-esm/applications/sheets/folder-config.d.mts +3 -3
  359. package/src/foundry/client-esm/applications/sheets/item-sheet.d.mts +2 -2
  360. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-category-config.d.mts +3 -3
  361. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-sheet.d.mts +3 -3
  362. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-sheet.d.mts +3 -3
  363. package/src/foundry/client-esm/applications/sheets/macro-config.d.mts +3 -3
  364. package/src/foundry/client-esm/applications/sheets/note-config.d.mts +3 -3
  365. package/src/foundry/client-esm/applications/sheets/playlist-config.d.mts +3 -3
  366. package/src/foundry/client-esm/applications/sheets/playlist-sound-config.d.mts +3 -3
  367. package/src/foundry/client-esm/applications/sheets/region-behavior-config.d.mts +3 -3
  368. package/src/foundry/client-esm/applications/sheets/region-config.d.mts +3 -3
  369. package/src/foundry/client-esm/applications/sheets/roll-table-config.d.mts +3 -3
  370. package/src/foundry/client-esm/applications/sheets/roll-table-sheet.d.mts +3 -3
  371. package/src/foundry/client-esm/applications/sheets/scene-config.d.mts +3 -3
  372. package/src/foundry/client-esm/applications/sheets/table-result-config.d.mts +3 -3
  373. package/src/foundry/client-esm/applications/sheets/template-config.d.mts +3 -3
  374. package/src/foundry/client-esm/applications/sheets/tile-config.d.mts +3 -3
  375. package/src/foundry/client-esm/applications/sheets/token/mixin.d.mts +1 -0
  376. package/src/foundry/client-esm/applications/sheets/token/token-config.d.mts +3 -3
  377. package/src/foundry/client-esm/applications/sheets/user-config.d.mts +4 -4
  378. package/src/foundry/client-esm/applications/sheets/wall-config.d.mts +3 -3
  379. package/src/foundry/client-esm/applications/sidebar/apps/chat-popout.d.mts +1 -1
  380. package/src/foundry/client-esm/applications/sidebar/sidebar-tab.d.mts +2 -2
  381. package/src/foundry/client-esm/applications/sidebar/tabs/actor-directory.d.mts +1 -1
  382. package/src/foundry/client-esm/applications/sidebar/tabs/cards-directory.d.mts +1 -1
  383. package/src/foundry/client-esm/applications/sidebar/tabs/combat-tracker.d.mts +242 -1
  384. package/src/foundry/client-esm/applications/sidebar/tabs/item-directory.d.mts +1 -1
  385. package/src/foundry/client-esm/applications/sidebar/tabs/journal-directory.d.mts +1 -1
  386. package/src/foundry/client-esm/applications/sidebar/tabs/macro-directory.d.mts +1 -1
  387. package/src/foundry/client-esm/applications/sidebar/tabs/playlist-directory.d.mts +1 -1
  388. package/src/foundry/client-esm/applications/sidebar/tabs/roll-table-directory.d.mts +1 -1
  389. package/src/foundry/client-esm/applications/sidebar/tabs/scene-directory.d.mts +1 -1
  390. package/src/foundry/client-esm/applications/ui/region-legend.d.mts +2 -2
  391. package/src/foundry/client-esm/applications/ux/context-menu.d.mts +56 -36
  392. package/src/foundry/client-esm/audio/_types.d.mts +2 -0
  393. package/src/foundry/client-esm/audio/biquad.d.mts +76 -26
  394. package/src/foundry/client-esm/audio/cache.d.mts +31 -20
  395. package/src/foundry/client-esm/audio/convolver.d.mts +47 -25
  396. package/src/foundry/client-esm/audio/helper.d.mts +124 -80
  397. package/src/foundry/client-esm/audio/sound.d.mts +202 -97
  398. package/src/foundry/client-esm/audio/timeout.d.mts +28 -12
  399. package/src/foundry/client-esm/canvas/edges/collision.d.mts +12 -4
  400. package/src/foundry/client-esm/canvas/edges/edge.d.mts +13 -8
  401. package/src/foundry/client-esm/canvas/edges/edges.d.mts +3 -2
  402. package/src/foundry/client-esm/canvas/edges/vertex.d.mts +12 -10
  403. package/src/foundry/client-esm/canvas/regions/geometry.d.mts +14 -7
  404. package/src/foundry/client-esm/canvas/regions/mesh.d.mts +25 -14
  405. package/src/foundry/client-esm/canvas/regions/polygon-tree.d.mts +50 -19
  406. package/src/foundry/client-esm/canvas/regions/shape.d.mts +45 -34
  407. package/src/foundry/client-esm/canvas/scene-manager.d.mts +7 -6
  408. package/src/foundry/client-esm/canvas/smaa/blend.d.mts +14 -3
  409. package/src/foundry/client-esm/canvas/smaa/edges.d.mts +25 -3
  410. package/src/foundry/client-esm/canvas/smaa/smaa.d.mts +119 -20
  411. package/src/foundry/client-esm/canvas/smaa/weights.d.mts +26 -3
  412. package/src/foundry/client-esm/canvas/sources/base-effect-source.d.mts +69 -39
  413. package/src/foundry/client-esm/canvas/sources/base-light-source.d.mts +66 -40
  414. package/src/foundry/client-esm/canvas/sources/global-light-source.d.mts +78 -19
  415. package/src/foundry/client-esm/canvas/sources/point-darkness-source.d.mts +37 -20
  416. package/src/foundry/client-esm/canvas/sources/point-effect-source.d.mts +39 -20
  417. package/src/foundry/client-esm/canvas/sources/point-light-source.d.mts +41 -12
  418. package/src/foundry/client-esm/canvas/sources/point-movement-source.d.mts +15 -4
  419. package/src/foundry/client-esm/canvas/sources/point-sound-source.d.mts +29 -14
  420. package/src/foundry/client-esm/canvas/sources/point-vision-source.d.mts +84 -39
  421. package/src/foundry/client-esm/canvas/sources/rendered-effect-source.d.mts +115 -41
  422. package/src/foundry/client-esm/canvas/tokens/ring-config.d.mts +83 -21
  423. package/src/foundry/client-esm/canvas/tokens/ring-data.d.mts +66 -93
  424. package/src/foundry/client-esm/canvas/tokens/ring.d.mts +146 -51
  425. package/src/foundry/client-esm/client.d.mts +16 -16
  426. package/src/foundry/client-esm/data/_module.d.mts +1 -1
  427. package/src/foundry/client-esm/data/calendar.d.mts +26 -39
  428. package/src/foundry/client-esm/data/client-backend.d.mts +6 -6
  429. package/src/foundry/client-esm/data/region-behaviors/adjust-darkness-level.d.mts +1 -1
  430. package/src/foundry/client-esm/data/region-behaviors/base.d.mts +5 -5
  431. package/src/foundry/client-esm/data/region-behaviors/display-scrolling-text.d.mts +2 -2
  432. package/src/foundry/client-esm/data/terrain-data.d.mts +1 -1
  433. package/src/foundry/client-esm/dice/parser.d.mts +5 -27
  434. package/src/foundry/client-esm/dice/roll.d.mts +63 -80
  435. package/src/foundry/client-esm/dice/terms/coin.d.mts +4 -8
  436. package/src/foundry/client-esm/dice/terms/dice.d.mts +85 -64
  437. package/src/foundry/client-esm/dice/terms/die.d.mts +7 -7
  438. package/src/foundry/client-esm/dice/terms/fate.d.mts +5 -5
  439. package/src/foundry/client-esm/dice/terms/function.d.mts +13 -16
  440. package/src/foundry/client-esm/dice/terms/numeric.d.mts +2 -4
  441. package/src/foundry/client-esm/dice/terms/operator.d.mts +1 -1
  442. package/src/foundry/client-esm/dice/terms/parenthetical.d.mts +8 -9
  443. package/src/foundry/client-esm/dice/terms/pool.d.mts +13 -28
  444. package/src/foundry/client-esm/dice/terms/string.d.mts +3 -3
  445. package/src/foundry/client-esm/dice/terms/term.d.mts +10 -5
  446. package/src/foundry/client-esm/dice/twister.d.mts +3 -3
  447. package/src/foundry/client-esm/documents/_module.d.mts +1 -1
  448. package/src/foundry/client-esm/helpers/_types.d.mts +12 -46
  449. package/src/foundry/client-esm/helpers/compendium-art.d.mts +57 -4
  450. package/src/foundry/client-esm/packages/_module.d.mts +1 -1
  451. package/src/foundry/client-esm/packages/_types.d.mts +2 -0
  452. package/src/foundry/client-esm/utils/_module.d.mts +1 -1
  453. package/src/foundry/client-esm/utils/_types.d.mts +2 -1
  454. package/src/foundry/common/_types.d.mts +1 -1
  455. package/src/foundry/common/abstract/_module.d.mts +1 -0
  456. package/src/foundry/common/abstract/_types.d.mts +60 -54
  457. package/src/foundry/common/abstract/backend.d.mts +28 -16
  458. package/src/foundry/common/abstract/data.d.mts +133 -116
  459. package/src/foundry/common/abstract/document.d.mts +1233 -440
  460. package/src/foundry/common/abstract/embedded-collection.d.mts +2 -2
  461. package/src/foundry/common/abstract/singleton-collection.d.mts +1 -1
  462. package/src/foundry/common/abstract/type-data.d.mts +35 -43
  463. package/src/foundry/common/config.d.mts +3 -3
  464. package/src/foundry/common/constants.d.mts +27 -26
  465. package/src/foundry/common/data/_types.d.mts +2 -0
  466. package/src/foundry/common/data/data.d.mts +189 -87
  467. package/src/foundry/common/data/fields.d.mts +579 -258
  468. package/src/foundry/common/data/validation-failure.d.mts +9 -4
  469. package/src/foundry/common/documents/_types.d.mts +16 -9
  470. package/src/foundry/common/documents/active-effect.d.mts +280 -180
  471. package/src/foundry/common/documents/actor-delta.d.mts +317 -70
  472. package/src/foundry/common/documents/actor.d.mts +304 -103
  473. package/src/foundry/common/documents/adventure.d.mts +254 -140
  474. package/src/foundry/common/documents/ambient-light.d.mts +267 -76
  475. package/src/foundry/common/documents/ambient-sound.d.mts +267 -110
  476. package/src/foundry/common/documents/card.d.mts +267 -176
  477. package/src/foundry/common/documents/cards.d.mts +299 -128
  478. package/src/foundry/common/documents/chat-message.d.mts +276 -160
  479. package/src/foundry/common/documents/combat.d.mts +300 -91
  480. package/src/foundry/common/documents/combatant.d.mts +283 -88
  481. package/src/foundry/common/documents/drawing.d.mts +286 -207
  482. package/src/foundry/common/documents/fog-exploration.d.mts +258 -72
  483. package/src/foundry/common/documents/folder.d.mts +248 -85
  484. package/src/foundry/common/documents/item.d.mts +305 -101
  485. package/src/foundry/common/documents/journal-entry-page.d.mts +279 -190
  486. package/src/foundry/common/documents/journal-entry.d.mts +294 -70
  487. package/src/foundry/common/documents/macro.d.mts +254 -134
  488. package/src/foundry/common/documents/measured-template.d.mts +293 -137
  489. package/src/foundry/common/documents/note.d.mts +274 -151
  490. package/src/foundry/common/documents/playlist-sound.d.mts +260 -96
  491. package/src/foundry/common/documents/playlist.d.mts +279 -122
  492. package/src/foundry/common/documents/region-behavior.d.mts +305 -64
  493. package/src/foundry/common/documents/region.d.mts +309 -90
  494. package/src/foundry/common/documents/roll-table.d.mts +286 -104
  495. package/src/foundry/common/documents/scene.d.mts +276 -344
  496. package/src/foundry/common/documents/setting.d.mts +229 -55
  497. package/src/foundry/common/documents/table-result.d.mts +267 -96
  498. package/src/foundry/common/documents/tile.d.mts +301 -172
  499. package/src/foundry/common/documents/token.d.mts +350 -452
  500. package/src/foundry/common/documents/user.d.mts +256 -146
  501. package/src/foundry/common/documents/wall.d.mts +272 -157
  502. package/src/foundry/common/grid/_types.d.mts +2 -0
  503. package/src/foundry/common/grid/base.d.mts +58 -37
  504. package/src/foundry/common/grid/hexagonal.d.mts +19 -19
  505. package/src/foundry/common/grid/square.d.mts +1 -1
  506. package/src/foundry/common/packages/_module.d.mts +5 -5
  507. package/src/foundry/common/packages/_types.d.mts +2 -0
  508. package/src/foundry/common/packages/base-module.d.mts +6 -24
  509. package/src/foundry/common/packages/base-package.d.mts +18 -16
  510. package/src/foundry/common/packages/base-system.d.mts +6 -78
  511. package/src/foundry/common/packages/base-world.d.mts +7 -60
  512. package/src/foundry/common/packages/sub-types.d.mts +1 -1
  513. package/src/foundry/common/primitives/array.d.mts +3 -3
  514. package/src/foundry/common/primitives/math.d.mts +7 -1
  515. package/src/foundry/common/primitives/number.d.mts +1 -1
  516. package/src/foundry/common/primitives/set.d.mts +17 -14
  517. package/src/foundry/common/prosemirror/_types.d.mts +2 -0
  518. package/src/foundry/common/prosemirror/dropdown.d.mts +1 -1
  519. package/src/foundry/common/prosemirror/highlight-matches-plugin.d.mts +1 -1
  520. package/src/foundry/common/prosemirror/menu.d.mts +3 -3
  521. package/src/foundry/common/prosemirror/plugin.d.mts +1 -1
  522. package/src/foundry/common/prosemirror/schema/index.d.mts +0 -1
  523. package/src/foundry/common/prosemirror/util.d.mts +1 -1
  524. package/src/foundry/common/utils/bitmask.d.mts +4 -1
  525. package/src/foundry/common/utils/collection.d.mts +59 -24
  526. package/src/foundry/common/utils/event-emitter.d.mts +46 -19
  527. package/src/foundry/common/utils/helpers.d.mts +13 -13
  528. package/src/foundry/common/utils/http.d.mts +2 -2
  529. package/src/foundry/common/utils/string-tree.d.mts +45 -39
  530. package/src/foundry/common/utils/word-tree.d.mts +10 -23
  531. package/src/tsconfig.json +1 -5
  532. package/src/types/augments/pixi.d.mts +28 -28
  533. package/src/types/config.d.mts +12 -12
  534. package/src/types/documentConfiguration.d.mts +282 -597
  535. package/src/types/lib.d.mts +4 -4
  536. package/src/types/workers/image-compressor.d.mts +1 -1
  537. package/src/utils/index.d.mts +255 -60
  538. package/tsconfig.json +29 -0
  539. package/tsconfig.main.json +8 -0
  540. package/tsconfig.miscellaneous.json +16 -0
  541. package/src/foundry/client/apps/placeables/light-config.d.mts +0 -100
  542. package/src/foundry/client/apps/placeables/sound-config.d.mts +0 -44
  543. package/src/foundry/common/documents/module.d.mts +0 -35
@@ -1,36 +1,544 @@
1
- import type { DeepPartial, InexactPartial } from "fvtt-types/utils";
2
- import type Document from "../../../common/abstract/document.d.mts";
3
- import type BaseActor from "../../../common/documents/actor.d.mts";
1
+ import type { AnyObject, InexactPartial, NullishProps, Merge } from "fvtt-types/utils";
2
+ import type { documents } from "#client-esm/client.d.mts";
3
+ import type Document from "#common/abstract/document.d.mts";
4
+ import type EmbeddedCollection from "#common/abstract/embedded-collection.d.mts";
5
+ import type BaseActor from "#common/documents/actor.d.mts";
6
+ import type { ConfiguredActor } from "fvtt-types/configuration";
7
+ import type { DataSchema } from "#common/data/fields.d.mts";
8
+ import type { PrototypeToken } from "#common/data/data.mjs";
9
+
10
+ import fields = foundry.data.fields;
4
11
 
5
12
  declare global {
6
13
  namespace Actor {
7
- type Metadata = Document.MetadataFor<Actor>;
14
+ /**
15
+ * The document's name.
16
+ */
17
+ type Name = "Actor";
8
18
 
9
- type ConfiguredClass = Document.ConfiguredClassForName<"Actor">;
10
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"Actor">;
19
+ /**
20
+ * The arguments to construct the document.
21
+ */
22
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
11
23
 
12
- interface DatabaseOperations extends Document.Database.Operations<Actor> {}
24
+ /**
25
+ * The documents embedded within `Actor`.
26
+ */
27
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
13
28
 
14
- type ItemTypes = {
15
- [K in Game.Model.TypeNames<"Item">]: Array<
16
- // TODO(LukeAbby): Looks like a `Item.OfType` helper would be useful.
17
- Item.ConfiguredInstance & {
18
- type: K;
19
- } & (DataModelConfig extends { Item: { readonly [_ in K]?: infer SystemData } }
20
- ? {
21
- system: SystemData;
22
- }
23
- : // eslint-disable-next-line @typescript-eslint/no-empty-object-type
24
- {})
29
+ /**
30
+ * The implementation of the `Actor` document instance configured through `CONFIG.Actor.documentClass` in Foundry and
31
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredActor | `fvtt-types/configuration/ConfiguredActor`} in fvtt-types.
32
+ */
33
+ type Implementation = Document.ImplementationFor<"Actor">;
34
+
35
+ /**
36
+ * The implementation of the `Actor` document configured through `CONFIG.Actor.documentClass` in Foundry and
37
+ * {@link DocumentClassConfig | `DocumentClassConfig`} in fvtt-types.
38
+ */
39
+ type ImplementationClass = Document.ImplementationClassFor<"Actor">;
40
+
41
+ /**
42
+ * A document's metadata is special information about the document ranging anywhere from its name,
43
+ * whether it's indexed, or to the permissions a user has over it.
44
+ */
45
+ interface Metadata
46
+ extends Merge<
47
+ Document.Metadata.Default,
48
+ Readonly<{
49
+ name: "Actor";
50
+ collection: "actors";
51
+ indexed: true;
52
+ compendiumIndexFields: ["_id", "name", "img", "type", "sort", "folder"];
53
+ embedded: Metadata.Embedded;
54
+ hasTypeData: true;
55
+ label: string;
56
+ labelPlural: string;
57
+ permissions: Metadata.Permissions;
58
+ schemaVersion: string;
59
+ }>
60
+ > {}
61
+
62
+ namespace Metadata {
63
+ /**
64
+ * The embedded metadata
65
+ */
66
+ interface Embedded {
67
+ ActiveEffect: "effects";
68
+ Item: "items";
69
+ }
70
+
71
+ /**
72
+ * The permissions for whether a certain user can create, update, or delete this document.
73
+ */
74
+ interface Permissions {
75
+ create(user: User.Internal.Implementation, doc: Implementation): boolean;
76
+ update(user: User.Internal.Implementation, doc: Implementation, data: UpdateData): boolean;
77
+ }
78
+ }
79
+
80
+ /**
81
+ * Allowed subtypes of `Actor`. This is configured through various methods. Modern Foundry
82
+ * recommends registering using [Data Models](https://foundryvtt.com/article/system-data-models/)
83
+ * under {@link CONFIG.Actor.dataModels | `CONFIG.Actor.dataModels`}. This corresponds to
84
+ * fvtt-type's {@link DataModelConfig | `DataModelConfig`}.
85
+ *
86
+ * Subtypes can also be registered through a `template.json` though this is discouraged.
87
+ * The corresponding fvtt-type configs are {@link SourceConfig | `SourceConfig`} and
88
+ * {@link DataConfig | `DataConfig`}.
89
+ */
90
+ type SubType = Game.Model.TypeNames<"Actor">;
91
+
92
+ /**
93
+ * `ConfiguredSubTypes` represents the subtypes a user explicitly registered. This excludes
94
+ * subtypes like the Foundry builtin subtype `"base"` and the catch-all subtype for arbitrary
95
+ * module subtypes `${string}.${string}`.
96
+ *
97
+ * @see {@link SubType} for more information.
98
+ */
99
+ type ConfiguredSubTypes = Document.ConfiguredSubTypesOf<"Actor">;
100
+
101
+ /**
102
+ * `Known` represents the types of `Actor` that a user explicitly registered.
103
+ *
104
+ * @see {@link ConfiguredSubTypes} for more information.
105
+ */
106
+ type Known = Actor.OfType<Actor.ConfiguredSubTypes>;
107
+
108
+ /**
109
+ * `OfType` returns an instance of `Actor` with the corresponding type. This works with both the
110
+ * builtin `Actor` class or a custom subclass if that is set up in
111
+ * {@link ConfiguredActor | `fvtt-types/configuration/ConfiguredActor`}.
112
+ */
113
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types
114
+ type OfType<Type extends SubType> = Document.Internal.OfType<ConfiguredActor<Type>, Actor<Type>>;
115
+
116
+ /**
117
+ * `SystemOfType` returns the system property for a specific `Actor` subtype.
118
+ */
119
+ type SystemOfType<Type extends SubType> = Document.Internal.SystemOfType<_SystemMap, Type>;
120
+
121
+ /**
122
+ * @internal
123
+ */
124
+ interface _SystemMap extends Document.Internal.SystemMap<"Actor"> {}
125
+
126
+ /**
127
+ * A document's parent is something that can contain it.
128
+ * For example an `Item` can be contained by an `Actor` which makes `Actor` one of its possible parents.
129
+ */
130
+ type Parent = TokenDocument.Implementation | null;
131
+
132
+ /**
133
+ * A document's direct descendants are documents that are contained directly within its schema.
134
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
135
+ */
136
+ type DirectDescendant = Item.Stored | ActiveEffect.Stored;
137
+
138
+ /**
139
+ * A document's direct descendants are documents that are contained directly within its schema.
140
+ * This is a union of all such classes, or never if the document doesn't have any descendants.
141
+ */
142
+ type DirectDescendantClass = Item.ImplementationClass | ActiveEffect.ImplementationClass;
143
+
144
+ /**
145
+ * A document's descendants are any documents that are contained within, either within its schema
146
+ * or its descendant's schemas.
147
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
148
+ */
149
+ type Descendant = DirectDescendant;
150
+
151
+ /**
152
+ * A document's descendants are any child documents, grandchild documents, etc.
153
+ * This is a union of all classes, or never if the document doesn't have any descendants.
154
+ */
155
+ type DescendantClass = DirectDescendantClass;
156
+
157
+ /**
158
+ * Types of `CompendiumCollection` this document might be contained in.
159
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
160
+ */
161
+ // Note: Takes any document in the heritage chain (i.e. itself or any parent, transitive or not) that can be contained in a compendium.
162
+ type Pack = CompendiumCollection.ForDocument<"Actor">;
163
+
164
+ /**
165
+ * An embedded document is a document contained in another.
166
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
167
+ *
168
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
169
+ */
170
+ type Embedded = Document.ImplementationFor<Embedded.Name>;
171
+
172
+ namespace Embedded {
173
+ /**
174
+ * An embedded document is a document contained in another.
175
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
176
+ *
177
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
178
+ */
179
+ type Name = keyof Metadata.Embedded;
180
+
181
+ /**
182
+ * Gets the collection name for an embedded document.
183
+ */
184
+ type CollectionNameOf<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionNameFor<
185
+ Metadata.Embedded,
186
+ CollectionName
187
+ >;
188
+
189
+ /**
190
+ * Gets the collection document for an embedded document.
191
+ */
192
+ // TODO(LukeAbby): There's a circularity. Should be `Document.Embedded.CollectionDocumentFor<Metadata.Embedded, CollectionName>`
193
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
194
+ type DocumentFor<CollectionName extends Embedded.CollectionName> = Document.Any;
195
+
196
+ /**
197
+ * Gets the collection for an embedded document.
198
+ */
199
+ type CollectionFor<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionFor<
200
+ // TODO(LukeAbby): This should be `TokenDocument.Implementation` but this causes a circularity.
201
+ Document.Any,
202
+ Metadata.Embedded,
203
+ CollectionName
25
204
  >;
26
- };
27
205
 
28
- // Helpful aliases
29
- type TypeNames = BaseActor.TypeNames;
30
- type ConstructorData = BaseActor.ConstructorData;
31
- type UpdateData = BaseActor.UpdateData;
32
- type Schema = BaseActor.Schema;
33
- type Source = BaseActor.Source;
206
+ /**
207
+ * A valid name to refer to a collection embedded in this document. For example an `Actor`
208
+ * has the key `"items"` which contains `Item` instance which would make both `"Item" | "Items"`
209
+ * valid keys (amongst others).
210
+ */
211
+ type CollectionName = Document.Embedded.CollectionName<Metadata.Embedded>;
212
+ }
213
+
214
+ /**
215
+ * The name of the world or embedded collection this document can find itself in.
216
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
217
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
218
+ */
219
+ type ParentCollectionName = Metadata["collection"];
220
+
221
+ /**
222
+ * The world collection that contains `Actor`s. Will be `never` if none exists.
223
+ */
224
+ type CollectionClass = Actors.ConfiguredClass;
225
+
226
+ /**
227
+ * The world collection that contains `Actor`s. Will be `never` if none exists.
228
+ */
229
+ type Collection = Actors.Configured;
230
+
231
+ /**
232
+ * An instance of `Actor` that comes from the database but failed validation meaining that
233
+ * its `system` and `_source` could theoretically be anything.
234
+ */
235
+ interface Invalid<out SubType extends Actor.SubType = Actor.SubType> extends Document.Invalid<OfType<SubType>> {}
236
+
237
+ /**
238
+ * An instance of `Actor` that comes from the database.
239
+ */
240
+ interface Stored<out SubType extends Actor.SubType = Actor.SubType> extends Document.Stored<OfType<SubType>> {}
241
+
242
+ /**
243
+ * The data put in {@link Actor._source | `Actor#_source`}. This data is what was
244
+ * persisted to the database and therefore it must be valid JSON.
245
+ *
246
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
247
+ * but initialized as a {@link Set | `Set`}.
248
+ */
249
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
250
+
251
+ /**
252
+ * @deprecated {@link Actor.Source | `Actor.Source`}
253
+ */
254
+ type PersistedData = Source;
255
+
256
+ /**
257
+ * The data necessary to create a document. Used in places like {@link Actor.create | `Actor.create`}
258
+ * and {@link Actor | `new Actor(...)`}.
259
+ *
260
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
261
+ * with the right values. This means you can pass a `Set` instance, an array of values,
262
+ * a generator, or any other iterable.
263
+ */
264
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
265
+
266
+ /**
267
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
268
+ * {@link Actor.name | `Actor#name`}.
269
+ *
270
+ * This is data transformed from {@link Actor.Source | `Actor.Source`} and turned into more
271
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
272
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
273
+ */
274
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
275
+
276
+ /**
277
+ * The data used to update a document, for example {@link Actor.update | `Actor#update`}.
278
+ * It is a distinct type from {@link Actor.CreateData | `DeepPartial<Actor.CreateData>`} because
279
+ * it has different rules for `null` and `undefined`.
280
+ */
281
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
282
+
283
+ /**
284
+ * The schema for {@link Actor | `Actor`}. This is the source of truth for how an Actor document
285
+ * must be structured.
286
+ *
287
+ * Foundry uses this schema to validate the structure of the {@link Actor | `Actor`}. For example
288
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
289
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
290
+ * starting as an array in the database, initialized as a set, and allows updates with any
291
+ * iterable.
292
+ */
293
+ interface Schema extends DataSchema {
294
+ /**
295
+ * The _id which uniquely identifies this Actor document
296
+ * @defaultValue `null`
297
+ */
298
+ _id: fields.DocumentIdField;
299
+
300
+ /** The name of this Actor */
301
+ name: fields.StringField<{ required: true; blank: false; textSearch: true }>;
302
+
303
+ /** An Actor subtype which configures the system data model applied */
304
+ type: fields.DocumentTypeField<typeof BaseActor>;
305
+
306
+ /**
307
+ * An image file path which provides the artwork for this Actor
308
+ * @defaultValue `null`
309
+ */
310
+ img: fields.FilePathField<{ categories: "IMAGE"[]; initial: (data: unknown) => string }>;
311
+
312
+ /**
313
+ * The system data object which is defined by the system template.json model
314
+ * @defaultValue `{}`
315
+ */
316
+ system: fields.TypeDataField<typeof BaseActor>;
317
+
318
+ /**
319
+ * Default Token settings which are used for Tokens created from this Actor
320
+ * @defaultValue see {@link PrototypeToken | `PrototypeToken`}
321
+ */
322
+ prototypeToken: fields.EmbeddedDataField<typeof PrototypeToken>;
323
+
324
+ /**
325
+ * A Collection of Item embedded Documents
326
+ * @defaultValue `[]`
327
+ */
328
+ items: fields.EmbeddedCollectionField<typeof documents.BaseItem, Actor.Implementation>;
329
+
330
+ /**
331
+ * A Collection of ActiveEffect embedded Documents
332
+ * @defaultValue `[]`
333
+ */
334
+ effects: fields.EmbeddedCollectionField<typeof documents.BaseActiveEffect, Actor.Implementation>;
335
+
336
+ /**
337
+ * The _id of a Folder which contains this Actor
338
+ * @defaultValue `null`
339
+ */
340
+ folder: fields.ForeignDocumentField<typeof documents.BaseFolder>;
341
+
342
+ /**
343
+ * The numeric sort value which orders this Actor relative to its siblings
344
+ * @defaultValue `0`
345
+ */
346
+ sort: fields.IntegerSortField;
347
+
348
+ /**
349
+ * An object which configures ownership of this Actor
350
+ * @defaultValue `{ default: DOCUMENT_OWNERSHIP_LEVELS.NONE }`
351
+ */
352
+ ownership: fields.DocumentOwnershipField;
353
+
354
+ /**
355
+ * An object of optional key/value flags
356
+ * @defaultValue `{}`
357
+ */
358
+ flags: fields.ObjectField.FlagsField<"Actor">;
359
+
360
+ /**
361
+ * An object of creation and access information
362
+ * @defaultValue see {@link fields.DocumentStatsField | `fields.DocumentStatsField`}
363
+ */
364
+ _stats: fields.DocumentStatsField;
365
+ }
366
+
367
+ namespace Database {
368
+ /** Options passed along in Get operations for Actors */
369
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<Actor.Parent> {}
370
+
371
+ /** Options passed along in Create operations for Actors */
372
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
373
+ extends foundry.abstract.types.DatabaseCreateOperation<Actor.CreateData, Actor.Parent, Temporary> {}
374
+
375
+ /** Options passed along in Delete operations for Actors */
376
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<Actor.Parent> {}
377
+
378
+ /** Options passed along in Update operations for Actors */
379
+ interface Update extends foundry.abstract.types.DatabaseUpdateOperation<Actor.UpdateData, Actor.Parent> {}
380
+
381
+ /** Operation for {@link Actor.createDocuments | `Actor.createDocuments`} */
382
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
383
+ extends Document.Database.CreateOperation<Actor.Database.Create<Temporary>> {}
384
+
385
+ /** Operation for {@link Actor.updateDocuments | `Actor.updateDocuments`} */
386
+ interface UpdateDocumentsOperation extends Document.Database.UpdateDocumentsOperation<Actor.Database.Update> {}
387
+
388
+ /** Operation for {@link Actor.deleteDocuments | `Actor.deleteDocuments`} */
389
+ interface DeleteDocumentsOperation extends Document.Database.DeleteDocumentsOperation<Actor.Database.Delete> {}
390
+
391
+ /** Operation for {@link Actor.create | `Actor.create`} */
392
+ interface CreateOperation<Temporary extends boolean | undefined>
393
+ extends Document.Database.CreateOperation<Actor.Database.Create<Temporary>> {}
394
+
395
+ /** Operation for {@link Actor.update | `Actor#update`} */
396
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
397
+
398
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
399
+
400
+ /** Options for {@link Actor.get | `Actor.get`} */
401
+ interface GetOptions extends Document.Database.GetOptions {}
402
+
403
+ /** Options for {@link Actor._preCreate | `Actor#_preCreate`} */
404
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
405
+
406
+ /** Options for {@link Actor._onCreate | `Actor#_onCreate`} */
407
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
408
+
409
+ /** Operation for {@link Actor._preCreateOperation | `Actor._preCreateOperation`} */
410
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<Actor.Database.Create> {}
411
+
412
+ /** Operation for {@link Actor._onCreateOperation | `Actor#_onCreateOperation`} */
413
+ interface OnCreateOperation extends Actor.Database.Create {}
414
+
415
+ /** Options for {@link Actor._preUpdate | `Actor#_preUpdate`} */
416
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
417
+
418
+ /** Options for {@link Actor._onUpdate | `Actor#_onUpdate`} */
419
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
420
+
421
+ /** Operation for {@link Actor._preUpdateOperation | `Actor._preUpdateOperation`} */
422
+ interface PreUpdateOperation extends Actor.Database.Update {}
423
+
424
+ /** Operation for {@link Actor._onUpdateOperation | `Actor._preUpdateOperation`} */
425
+ interface OnUpdateOperation extends Actor.Database.Update {}
426
+
427
+ /** Options for {@link Actor._preDelete | `Actor#_preDelete`} */
428
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
429
+
430
+ /** Options for {@link Actor._onDelete | `Actor#_onDelete`} */
431
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
432
+
433
+ /** Options for {@link Actor._preDeleteOperation | `Actor#_preDeleteOperation`} */
434
+ interface PreDeleteOperation extends Actor.Database.Delete {}
435
+
436
+ /** Options for {@link Actor._onDeleteOperation | `Actor#_onDeleteOperation`} */
437
+ interface OnDeleteOperation extends Actor.Database.Delete {}
438
+
439
+ /** Context for {@link Actor._onDeleteOperation | `Actor._onDeleteOperation`} */
440
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<Actor.Parent> {}
441
+
442
+ /** Context for {@link Actor._onCreateDocuments | `Actor._onCreateDocuments`} */
443
+ interface OnCreateDocumentsContext extends Document.ModificationContext<Actor.Parent> {}
444
+
445
+ /** Context for {@link Actor._onUpdateDocuments | `Actor._onUpdateDocuments`} */
446
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<Actor.Parent> {}
447
+
448
+ /**
449
+ * Options for {@link Actor._preCreateDescendantDocuments | `Actor#_preCreateDescendantDocuments`}
450
+ * and {@link Actor._onCreateDescendantDocuments | `Actor#_onCreateDescendantDocuments`}
451
+ */
452
+ interface CreateOptions extends Document.Database.CreateOptions<Actor.Database.Create> {}
453
+
454
+ /**
455
+ * Options for {@link Actor._preUpdateDescendantDocuments | `Actor#_preUpdateDescendantDocuments`}
456
+ * and {@link Actor._onUpdateDescendantDocuments | `Actor#_onUpdateDescendantDocuments`}
457
+ */
458
+ interface UpdateOptions extends Document.Database.UpdateOptions<Actor.Database.Update> {}
459
+
460
+ /**
461
+ * Options for {@link Actor._preDeleteDescendantDocuments | `Actor#_preDeleteDescendantDocuments`}
462
+ * and {@link Actor._onDeleteDescendantDocuments | `Actor#_onDeleteDescendantDocuments`}
463
+ */
464
+ interface DeleteOptions extends Document.Database.DeleteOptions<Actor.Database.Delete> {}
465
+ }
466
+
467
+ /**
468
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
469
+ */
470
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
471
+
472
+ namespace Flags {
473
+ /**
474
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
475
+ */
476
+ type Scope = Document.FlagKeyOf<Flags>;
477
+
478
+ /**
479
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
480
+ */
481
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
482
+
483
+ /**
484
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
485
+ */
486
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
487
+ }
488
+
489
+ type PreCreateDescendantDocumentsArgs =
490
+ | Document.PreCreateDescendantDocumentsArgs<Actor.Stored, Actor.DirectDescendant, Actor.Metadata.Embedded>
491
+ | Item.PreCreateDescendantDocumentsArgs;
492
+
493
+ type OnCreateDescendantDocumentsArgs =
494
+ | Document.OnCreateDescendantDocumentsArgs<Actor.Stored, Actor.DirectDescendant, Actor.Metadata.Embedded>
495
+ | Item.OnCreateDescendantDocumentsArgs;
496
+
497
+ type PreUpdateDescendantDocumentsArgs =
498
+ | Document.PreUpdateDescendantDocumentsArgs<Actor.Stored, Actor.DirectDescendant, Actor.Metadata.Embedded>
499
+ | Item.PreUpdateDescendantDocumentsArgs;
500
+
501
+ type OnUpdateDescendantDocumentsArgs =
502
+ | Document.OnUpdateDescendantDocumentsArgs<Actor.Stored, Actor.DirectDescendant, Actor.Metadata.Embedded>
503
+ | Item.OnUpdateDescendantDocumentsArgs;
504
+
505
+ type PreDeleteDescendantDocumentsArgs =
506
+ | Document.PreDeleteDescendantDocumentsArgs<Actor.Stored, Actor.DirectDescendant, Actor.Metadata.Embedded>
507
+ | Item.PreDeleteDescendantDocumentsArgs;
508
+
509
+ type OnDeleteDescendantDocumentsArgs =
510
+ | Document.OnDeleteDescendantDocumentsArgs<Actor.Stored, Actor.DirectDescendant, Actor.Metadata.Embedded>
511
+ | Item.OnDeleteDescendantDocumentsArgs;
512
+
513
+ /**
514
+ * @deprecated {@link Actor.Database | `Actor.DatabaseOperation`}
515
+ */
516
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
517
+ interface DatabaseOperations extends Document.Database.Operations<Actor.Implementation> {}
518
+
519
+ /**
520
+ * @deprecated {@link Actor.SubType | `Actor.SubType`}
521
+ */
522
+ type TypeNames = Actor.SubType;
523
+
524
+ /**
525
+ * @deprecated {@link Actor.CreateData | `Actor.CreateData`}
526
+ */
527
+ interface ConstructorData extends Actor.CreateData {}
528
+
529
+ /**
530
+ * @deprecated {@link Actor.implementation | `Actor.ImplementationClass`}
531
+ */
532
+ type ConfiguredClass = ImplementationClass;
533
+
534
+ /**
535
+ * @deprecated {@link Actor.Implementation | `Actor.Implementation`}
536
+ */
537
+ type ConfiguredInstance = Implementation;
538
+
539
+ type ItemTypes = {
540
+ [SubType in Game.Model.TypeNames<"Item">]: Array<Item.OfType<SubType>>;
541
+ };
34
542
 
35
543
  interface RollInitiativeOptions {
36
544
  /**
@@ -51,16 +559,34 @@ declare global {
51
559
  */
52
560
  initiativeOptions?: Combat.InitiativeOptions;
53
561
  }
562
+
563
+ /** @internal */
564
+ type _ToggleStatusEffectOptions = NullishProps<{
565
+ /**
566
+ * Force a certain active state for the effect
567
+ * @defaultValue `undefined`
568
+ * @remarks `null` is treated as `false`, `undefined` or omitted is treated as `true` *if no status
569
+ * with the given ID already exists*, otherwise also as `false`
570
+ */
571
+ active: boolean;
572
+
573
+ /**
574
+ * Whether to set the effect as the overlay effect?
575
+ * @defaultValue `false`
576
+ */
577
+ overlay: boolean;
578
+ }>;
579
+ interface ToggleStatusEffectOptions extends _ToggleStatusEffectOptions {}
54
580
  }
55
581
 
56
582
  /**
57
583
  * The client-side Actor document which extends the common BaseActor model.
58
584
  *
59
585
  * ### Hook Events
60
- * {@link hookEvents.applyCompendiumArt}
586
+ * {@link hookEvents.applyCompendiumArt | `hookEvents.applyCompendiumArt`}
61
587
  *
62
- * @see {@link Actors} The world-level collection of Actor documents
63
- * @see {@link ActorSheet} The Actor configuration application
588
+ * @see {@link Actors | `Actors`} The world-level collection of Actor documents
589
+ * @see {@link ActorSheet | `ActorSheet`} The Actor configuration application
64
590
  *
65
591
  * @example <caption>Create a new Actor</caption>
66
592
  * ```typescript
@@ -76,23 +602,26 @@ declare global {
76
602
  * let actor = game.actors.get(actorId);
77
603
  * ```
78
604
  */
79
- class Actor extends ClientDocumentMixin(foundry.documents.BaseActor) {
80
- static override metadata: Actor.Metadata;
605
+ class Actor<out SubType extends Actor.SubType = Actor.SubType> extends ClientDocumentMixin(
606
+ foundry.documents.BaseActor,
607
+ )<SubType> {
608
+ /**
609
+ * @param data - Initial data from which to construct the `Actor`
610
+ * @param context - Construction context options
611
+ */
612
+ constructor(...args: Actor.ConstructorArgs);
81
613
 
82
- static get implementation(): Actor.ConfiguredClass;
614
+ static override metadata: Actor.Metadata;
83
615
 
84
616
  protected override _configure(options?: { pack?: string | null }): void;
85
617
 
86
618
  /**
87
619
  * Maintain a list of Token Documents that represent this Actor, stored by Scene.
88
620
  */
89
- protected _dependentTokens: foundry.utils.IterableWeakMap<
90
- Scene.ConfiguredInstance,
91
- TokenDocument.ConfiguredInstance
92
- >;
621
+ protected _dependentTokens: foundry.utils.IterableWeakMap<Scene.Implementation, TokenDocument.Implementation>;
93
622
 
94
623
  protected override _initializeSource(
95
- data: this | Actor.ConstructorData,
624
+ data: this | Actor.CreateData,
96
625
  options?: Omit<foundry.abstract.DataModel.DataValidationOptions, "parent">,
97
626
  ): Actor.Source;
98
627
 
@@ -129,6 +658,7 @@ declare global {
129
658
  * Provide an object which organizes all embedded Item instances by their type
130
659
  */
131
660
  get itemTypes(): Actor.ItemTypes;
661
+
132
662
  /**
133
663
  * Test whether an Actor document is a synthetic representation of a Token (if true) or a full Document (if false)
134
664
  */
@@ -137,17 +667,17 @@ declare global {
137
667
  /**
138
668
  * Retrieve the list of ActiveEffects that are currently applied to this Actor.
139
669
  */
140
- get appliedEffects(): ActiveEffect.ConfiguredInstance[];
670
+ get appliedEffects(): ActiveEffect.Implementation[];
141
671
 
142
672
  /**
143
673
  * An array of ActiveEffect instances which are present on the Actor which have a limited duration.
144
674
  */
145
- get temporaryEffects(): ReturnType<this["effects"]["filter"]>;
675
+ get temporaryEffects(): EmbeddedCollection<ActiveEffect.Implementation, Actor.Implementation>;
146
676
 
147
677
  /**
148
678
  * Return a reference to the TokenDocument which owns this Actor as a synthetic override
149
679
  */
150
- get token(): TokenDocument.ConfiguredInstance | null;
680
+ get token(): TokenDocument.Implementation | null;
151
681
 
152
682
  /**
153
683
  * Whether the Actor has at least one Combatant in the active Combat that represents it.
@@ -169,10 +699,10 @@ declare global {
169
699
  * @param document - Return the Document instance rather than the PlaceableObject (default: `false`)
170
700
  * @returns An array of Token instances in the current Scene which reference this Actor.
171
701
  */
172
- getActiveTokens<ReturnDocument extends boolean = false>(
702
+ getActiveTokens<ReturnDocument extends boolean | undefined = undefined>(
173
703
  linked?: boolean,
174
704
  document?: ReturnDocument,
175
- ): ReturnDocument extends true ? TokenDocument.ConfiguredInstance[] : Token.ConfiguredInstance[];
705
+ ): ReturnDocument extends true ? TokenDocument.Implementation[] : Token.Implementation[];
176
706
 
177
707
  /**
178
708
  * Get all ActiveEffects that may apply to this Actor.
@@ -180,20 +710,20 @@ declare global {
180
710
  * If CONFIG.ActiveEffect.legacyTransferral is false, this will also return all the transferred ActiveEffects on any
181
711
  * of the Actor's owned Items.
182
712
  */
183
- allApplicableEffects(): Generator<ActiveEffect.ConfiguredInstance>;
713
+ allApplicableEffects(): Generator<ActiveEffect.Implementation>;
184
714
 
185
715
  /**
186
716
  * Prepare a data object which defines the data schema used by dice roll commands against this Actor
187
717
  * @remarks defaults to this.system, but provided as object for flexible overrides
188
718
  */
189
- getRollData(): object;
719
+ getRollData(): AnyObject;
190
720
 
191
721
  /**
192
722
  * Create a new TokenData object which can be used to create a Token representation of the Actor.
193
723
  * @param data - Additional data, such as x, y, rotation, etc. for the created token data (default: `{}`)
194
724
  * @returns The created TokenData instance
195
725
  */
196
- getTokenDocument(data?: foundry.documents.BaseToken.ConstructorData): Promise<TokenDocument.ConfiguredInstance>;
726
+ getTokenDocument(data?: TokenDocument.CreateData): Promise<TokenDocument.Implementation>;
197
727
 
198
728
  /**
199
729
  * Get an Array of Token images which could represent this Actor
@@ -235,15 +765,11 @@ declare global {
235
765
  * - false if an existing effect needed to be removed
236
766
  * - undefined if no changes need to be made
237
767
  */
768
+ // options: not null (destructured)
238
769
  toggleStatusEffect(
239
770
  statusId: string,
240
- options?: InexactPartial<{
241
- /** Force the effect to be active or inactive regardless of its current state. */
242
- active: boolean;
243
- /** Display the toggled effect as an overlay. Default `false`. */
244
- overlay: boolean;
245
- }>,
246
- ): Promise<ActiveEffect.ConfiguredInstance | boolean | undefined>;
771
+ options?: Actor.ToggleStatusEffectOptions,
772
+ ): Promise<ActiveEffect.Implementation | boolean | undefined>;
247
773
 
248
774
  /**
249
775
  * Request wildcard token images from the server and return them.
@@ -267,38 +793,91 @@ declare global {
267
793
  /**
268
794
  * A single Scene, or list of Scenes to filter by.
269
795
  */
270
- scenes: Scene | Scene[];
796
+ scenes: Scene.Implementation | Scene.Implementation[];
271
797
  /**
272
798
  * Limit the results to tokens that are linked to the actor.
273
799
  * @defaultValue `false`
274
800
  */
275
801
  linked: boolean;
276
802
  }>,
277
- ): TokenDocument.ConfiguredInstance[];
803
+ ): TokenDocument.Implementation[];
278
804
 
279
805
  /**
280
806
  * Register a token as a dependent of this actor.
281
807
  * @param token - The Token
282
808
  */
283
- protected _registerDependantToken(token: TokenDocument): void;
809
+ protected _registerDependantToken(token: TokenDocument.Implementation): void;
284
810
 
285
811
  /**
286
812
  * Remove a token from this actor's dependents.
287
813
  * @param token - The Token
288
814
  */
289
- protected _unregisterDependentToken(token: TokenDocument): void;
815
+ protected _unregisterDependentToken(token: TokenDocument.Implementation): void;
290
816
 
291
817
  /**
292
818
  * Prune a whole scene from this actor's dependent tokens.
293
819
  * @param scene - The scene
294
820
  */
295
- protected _unregisterDependentScene(scene: Scene): void;
821
+ protected _unregisterDependentScene(scene: Scene.Implementation): void;
296
822
 
297
823
  /**
298
- * @privateRemarks _preCreate, _onUpdate, onCreateDescendantDocuments, onUpdateDescendantDocuments, and _onDeleteDescendentDocuments are all overridden but with no signature changes.
299
- * For type simplicity they are left off. These methods historically have been the source of a large amount of computation from tsc.
824
+ * @privateRemarks _preCreate and _onUpdate are all overridden but with no signature changes from BaseActor.
300
825
  */
301
826
 
827
+ /**
828
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
829
+ * this method must be overriden like so:
830
+ * ```typescript
831
+ * class GurpsActor extends Actor {
832
+ * protected override _onCreateDescendantDocuments(...args: Actor.OnCreateDescendantDocumentsArgs) {
833
+ * super._onCreateDescendantDocuments(...args);
834
+ *
835
+ * const [parent, collection, documents, data, options, userId] = args;
836
+ * if (collection === "effects") {
837
+ * options; // Will be narrowed.
838
+ * }
839
+ * }
840
+ * }
841
+ * ```
842
+ */
843
+ protected override _onCreateDescendantDocuments(...args: Actor.OnCreateDescendantDocumentsArgs): void;
844
+
845
+ /**
846
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
847
+ * this method must be overriden like so:
848
+ * ```typescript
849
+ * class Ptr2eActor extends Actor {
850
+ * protected override _onUpdateDescendantDocuments(...args: Actor.OnUpdateDescendantDocumentsArgs) {
851
+ * super._onUpdateDescendantDocuments(...args);
852
+ *
853
+ * const [parent, collection, documents, changes, options, userId] = args;
854
+ * if (collection === "effects") {
855
+ * options; // Will be narrowed.
856
+ * }
857
+ * }
858
+ * }
859
+ * ```
860
+ */
861
+ protected override _onUpdateDescendantDocuments(...args: Actor.OnUpdateDescendantDocumentsArgs): void;
862
+
863
+ /**
864
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
865
+ * this method must be overriden like so:
866
+ * ```typescript
867
+ * class BladesActor extends Actor {
868
+ * protected override _onDeleteDescendantDocuments(...args: Actor.OnUpdateDescendantDocuments) {
869
+ * super._onDeleteDescendantDocuments(...args);
870
+ *
871
+ * const [parent, collection, documents, ids, options, userId] = args;
872
+ * if (collection === "effects") {
873
+ * options; // Will be narrowed.
874
+ * }
875
+ * }
876
+ * }
877
+ * ```
878
+ */
879
+ protected override _onDeleteDescendantDocuments(...args: Actor.OnDeleteDescendantDocumentsArgs): void;
880
+
302
881
  /**
303
882
  * Additional workflows to perform when any descendant document within this Actor changes.
304
883
  * @internal
@@ -311,8 +890,91 @@ declare global {
311
890
  * @param options - The update context.
312
891
  */
313
892
  protected _updateDependentTokens(
314
- update: DeepPartial<TokenDocument["_source"]>,
315
- options: Document.OnUpdateOptions<"Token">,
893
+ update: TokenDocument.UpdateData,
894
+ options: TokenDocument.Database.UpdateOperation,
316
895
  ): void;
896
+
897
+ /*
898
+ * After this point these are not really overridden methods.
899
+ * They are here because Foundry's documents are complex and have lots of edge cases.
900
+ * There are DRY ways of representing this but this ends up being harder to understand
901
+ * for end users extending these functions, especially for static methods. There are also a
902
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
903
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
904
+ * separate like this helps against circularities.
905
+ */
906
+
907
+ // ClientDocument overrides
908
+
909
+ /**
910
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
911
+ * this method must be overriden like so:
912
+ * ```typescript
913
+ * class SwadeActor extends Actor {
914
+ * protected override _preCreateDescendantDocuments(...args: Actor.PreCreateDescendantDocumentsArgs) {
915
+ * super._preCreateDescendantDocuments(...args);
916
+ *
917
+ * const [parent, collection, data, options, userId] = args;
918
+ * if (collection === "effects") {
919
+ * options; // Will be narrowed.
920
+ * }
921
+ * }
922
+ * }
923
+ * ```
924
+ */
925
+ protected override _preCreateDescendantDocuments(...args: Actor.PreCreateDescendantDocumentsArgs): void;
926
+
927
+ /**
928
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
929
+ * this method must be overriden like so:
930
+ * ```typescript
931
+ * class LancerActor extends Actor {
932
+ * protected override _preUpdateDescendantDocuments(...args: Actor.OnUpdateDescendantDocuments) {
933
+ * super._preUpdateDescendantDocuments(...args);
934
+ *
935
+ * const [parent, collection, changes, options, userId] = args;
936
+ * if (collection === "effects") {
937
+ * options; // Will be narrowed.
938
+ * }
939
+ * }
940
+ * }
941
+ * ```
942
+ */
943
+ protected override _preUpdateDescendantDocuments(...args: Actor.PreUpdateDescendantDocumentsArgs): void;
944
+
945
+ /**
946
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
947
+ * this method must be overriden like so:
948
+ * ```typescript
949
+ * class KultActor extends Actor {
950
+ * protected override _preDeleteDescendantDocuments(...args: Actor.PreDeleteDescendantDocumentsArgs) {
951
+ * super._preDeleteDescendantDocuments(...args);
952
+ *
953
+ * const [parent, collection, ids, options, userId] = args;
954
+ * if (collection === "effects") {
955
+ * options; // Will be narrowed.
956
+ * }
957
+ * }
958
+ * }
959
+ * ```
960
+ */
961
+ protected override _preDeleteDescendantDocuments(...args: Actor.PreDeleteDescendantDocumentsArgs): void;
962
+
963
+ static override defaultName(context?: Document.DefaultNameContext<Actor.SubType, Actor.Parent>): string;
964
+
965
+ static override createDialog(
966
+ data?: Document.CreateDialogData<Actor.CreateData>,
967
+ context?: Document.CreateDialogContext<Actor.SubType, Actor.Parent>,
968
+ ): Promise<Actor.Stored | null | undefined>;
969
+
970
+ static override fromDropData(
971
+ data: Document.DropData<Actor.Implementation>,
972
+ options?: Document.FromDropDataOptions,
973
+ ): Promise<Actor.Implementation | undefined>;
974
+
975
+ static override fromImport(
976
+ source: Actor.Source,
977
+ context?: Document.FromImportContext<Actor.Parent>,
978
+ ): Promise<Actor.Implementation>;
317
979
  }
318
980
  }