@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,53 +1,545 @@
1
- import type { InexactPartial } from "../../../../types/utils.d.mts";
1
+ import type { ConfiguredMacro } from "../../../../configuration/index.d.mts";
2
+ import type { AnyObject, Merge, NullishProps } from "#utils";
3
+ import type { documents } from "../../../client-esm/client.d.mts";
2
4
  import type Document from "../../../common/abstract/document.d.mts";
3
- import type { DocumentDatabaseOperations } from "../../../common/abstract/document.d.mts";
5
+ import type { DataSchema } from "../../../common/data/fields.d.mts";
6
+ import type { fields } from "../../../common/data/module.d.mts";
4
7
  import type BaseMacro from "../../../common/documents/macro.d.mts";
5
8
 
6
- type RegionEvent = unknown;
7
-
8
9
  declare global {
9
10
  namespace Macro {
10
- type Metadata = Document.MetadataFor<Macro>;
11
+ /**
12
+ * The document's name.
13
+ */
14
+ type Name = "Macro";
15
+
16
+ /**
17
+ * The arguments to construct the document.
18
+ */
19
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
20
+
21
+ /**
22
+ * The documents embedded within `Macro`.
23
+ */
24
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
25
+
26
+ /**
27
+ * The implementation of the `Macro` document instance configured through `CONFIG.Macro.documentClass` in Foundry and
28
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredMacro | `fvtt-types/configuration/ConfiguredMacro`} in fvtt-types.
29
+ */
30
+ type Implementation = Document.ImplementationFor<Name>;
31
+
32
+ /**
33
+ * The implementation of the `Macro` document configured through `CONFIG.Macro.documentClass` in Foundry and
34
+ * {@link DocumentClassConfig | `DocumentClassConfig`} in fvtt-types.
35
+ */
36
+ type ImplementationClass = Document.ImplementationClassFor<Name>;
37
+
38
+ /**
39
+ * A document's metadata is special information about the document ranging anywhere from its name,
40
+ * whether it's indexed, or to the permissions a user has over it.
41
+ */
42
+ interface Metadata
43
+ extends Merge<
44
+ Document.Metadata.Default,
45
+ Readonly<{
46
+ name: "Macro";
47
+ collection: "macros";
48
+ indexed: true;
49
+ compendiumIndexFields: ["_id", "name", "img", "sort", "folder"];
50
+ label: string;
51
+ labelPlural: string;
52
+ coreTypes: CONST.MACRO_TYPES[];
53
+ permissions: Metadata.Permissions;
54
+ schemaVersion: string;
55
+ }>
56
+ > {}
57
+
58
+ namespace Metadata {
59
+ /**
60
+ * The permissions for whether a certain user can create, update, or delete this document.
61
+ */
62
+ interface Permissions {
63
+ create(user: User.Internal.Implementation, doc: Implementation): boolean;
64
+ update(user: User.Internal.Implementation, doc: Implementation): boolean;
65
+ }
66
+ }
67
+
68
+ /**
69
+ * The subtypes of `Macro` that Foundry provides. `Macro` does not have `system` and therefore
70
+ * there is no way for a user to configure custom subtypes. Nevertheless Foundry has a number of
71
+ * built in subtypes usable for `Macro`.
72
+ *
73
+ * `Macro` has two subtypes `"chat"` and `"script"`. A `Macro` with type `"chat"` will create a
74
+ * `ChatMessage` whereas a `"script"` allows executing arbitrary JavaScript code
75
+ */
76
+ type SubType = Game.Model.TypeNames<Name>;
77
+
78
+ /**
79
+ * @deprecated `Macro` does not have `system` and therefore there is no way for a user to
80
+ * configure custom subtypes.
81
+ *
82
+ * This type exists only to be informative.
83
+ */
84
+ type ConfiguredSubTypes = never;
85
+
86
+ /**
87
+ * @deprecated `Macro` does not have `system` and therefore there is no way for a user to
88
+ * configure custom subtypes. This means `Known` as a concept does not apply to it.
89
+ *
90
+ * This type exists only to be informative.
91
+ */
92
+ type Known = never;
93
+
94
+ /**
95
+ * `OfType` returns an instance of `Macro` with the corresponding type. This works with both the
96
+ * builtin `Macro` class or a custom subclass if that is set up in
97
+ * {@link ConfiguredMacro | `fvtt-types/configuration/ConfiguredMacro`}.
98
+ *
99
+ * Note that `Macro` does not have a `system` property and therefore there is no way for a user
100
+ * to configure custom subtypes. See {@link Macro.SubType | `Macro.SubType`} for more information.
101
+ */
102
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types
103
+ type OfType<Type extends SubType> = Document.Internal.OfType<ConfiguredMacro<Type>, Macro<Type>>;
104
+
105
+ /**
106
+ * A document's parent is something that can contain it.
107
+ * For example an `Item` can be contained by an `Actor` which makes `Actor` one of its possible parents.
108
+ */
109
+ type Parent = null;
110
+
111
+ /**
112
+ * A document's descendants are any child documents, grandchild documents, etc.
113
+ * This is a union of all instances, or never if the document doesn't have any descendants.
114
+ */
115
+ type Descendant = never;
116
+
117
+ /**
118
+ * A document's descendants are any child documents, grandchild documents, etc.
119
+ * This is a union of all classes, or never if the document doesn't have any descendants.
120
+ */
121
+ type DescendantClass = never;
122
+
123
+ /**
124
+ * Types of `CompendiumCollection` this document might be contained in.
125
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
126
+ */
127
+ // Note: Takes any document in the heritage chain (i.e. itself or any parent, transitive or not) that can be contained in a compendium.
128
+ type Pack = CompendiumCollection.ForDocument<"Scene">;
129
+
130
+ /**
131
+ * An embedded document is a document contained in another.
132
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
133
+ *
134
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
135
+ */
136
+ type Embedded = never;
137
+
138
+ /**
139
+ * The name of the world or embedded collection this document can find itself in.
140
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
141
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
142
+ */
143
+ type ParentCollectionName = Metadata["collection"];
144
+
145
+ /**
146
+ * The world collection that contains `Macro`s. Will be `never` if none exists.
147
+ */
148
+ type CollectionClass = Macros.ConfiguredClass;
149
+
150
+ /**
151
+ * The world collection that contains `Folder`s. Will be `never` if none exists.
152
+ */
153
+ type Collection = Macros.Configured;
154
+
155
+ /**
156
+ * An instance of `Macro` that comes from the database but failed validation meaning that
157
+ * its `system` and `_source` could theoretically be anything.
158
+ */
159
+ interface Invalid<out SubType extends Macro.SubType = Macro.SubType> extends Document.Invalid<OfType<SubType>> {}
160
+
161
+ /**
162
+ * An instance of `Macro` that comes from the database.
163
+ */
164
+ interface Stored<out SubType extends Macro.SubType = Macro.SubType> extends Document.Stored<OfType<SubType>> {}
165
+
166
+ /**
167
+ * The data put in {@link Macro._source | `Macro#_source`}. This data is what was
168
+ * persisted to the database and therefore it must be valid JSON.
169
+ *
170
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
171
+ * but initialized as a {@link Set | `Set`}.
172
+ */
173
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
174
+
175
+ /**
176
+ * @deprecated {@link Macro.Source | `Macro.Source`}
177
+ */
178
+ type PersistedData = Source;
179
+
180
+ /**
181
+ * The data necessary to create a document. Used in places like {@link Macro.create | `Macro.create`}
182
+ * and {@link Macro | `new Macro(...)`}.
183
+ *
184
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
185
+ * with the right values. This means you can pass a `Set` instance, an array of values,
186
+ * a generator, or any other iterable.
187
+ */
188
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
189
+
190
+ /**
191
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
192
+ * {@link Macro.name | `Macro#name`}.
193
+ *
194
+ * This is data transformed from {@link Macro.Source | `Macro.Source`} and turned into more
195
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
196
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
197
+ */
198
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
199
+
200
+ /**
201
+ * The data used to update a document, for example {@link Macro.update | `Macro#update`}.
202
+ * It is a distinct type from {@link Macro.CreateData | `DeepPartial<Macro.CreateData>`} because
203
+ * it has different rules for `null` and `undefined`.
204
+ */
205
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
206
+
207
+ /**
208
+ * The schema for {@link Macro | `Macro`}. This is the source of truth for how an Macro document
209
+ * must be structured.
210
+ *
211
+ * Foundry uses this schema to validate the structure of the {@link Macro | `Macro`}. For example
212
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
213
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
214
+ * starting as an array in the database, initialized as a set, and allows updates with any
215
+ * iterable.
216
+ */
217
+ interface Schema extends DataSchema {
218
+ /**
219
+ * The _id which uniquely identifies this Macro document
220
+ * @defaultValue `null`
221
+ */
222
+ _id: fields.DocumentIdField;
223
+
224
+ /**
225
+ * The name of this Macro
226
+ * @defaultValue `""`
227
+ */
228
+ // FIXME: This field is `required` with no `initial`, so actually required for construction; Currently an AssignmentType override is required to enforce this
229
+ name: fields.StringField<{ required: true; blank: false; label: "Name"; textSearch: true }, string>;
230
+
231
+ /**
232
+ * A Macro subtype from CONST.MACRO_TYPES
233
+ * @defaultValue `CONST.MACRO_TYPES.CHAT`
234
+ */
235
+ type: fields.DocumentTypeField<typeof BaseMacro, { initial: typeof CONST.MACRO_TYPES.CHAT; label: "Type" }>;
236
+
237
+ /**
238
+ * The _id of a User document which created this Macro *
239
+ * @defaultValue `game?.user?.id`
240
+ */
241
+ author: fields.ForeignDocumentField<typeof documents.BaseUser, { initial: () => string }>;
242
+
243
+ /**
244
+ * An image file path which provides the thumbnail artwork for this Macro
245
+ * @defaultValue `BaseMacro.DEFAULT_ICON`
246
+ */
247
+ img: fields.FilePathField<{
248
+ categories: ["IMAGE"];
249
+ initial: () => typeof BaseMacro.DEFAULT_ICON;
250
+ label: "Image";
251
+ }>;
252
+
253
+ /**
254
+ * The scope of this Macro application from CONST.MACRO_SCOPES
255
+ * @defaultValue `"global"`
256
+ * @privateRemarks This field (and `CONST.MACRO_SCOPES`) is entirely vestigial, it's never checked anywhere,
257
+ * and its `<select>` in MacroConfig has been unconditionally disabled since at least 11.315
258
+ */
259
+ scope: fields.StringField<{
260
+ required: true;
261
+ choices: CONST.MACRO_SCOPES[];
262
+ initial: (typeof CONST.MACRO_SCOPES)[0];
263
+ validationError: "must be a value in CONST.MACRO_SCOPES";
264
+ label: "Scope";
265
+ }>;
266
+
267
+ /**
268
+ * The string content of the macro command
269
+ * @defaultValue `""`
270
+ */
271
+ command: fields.StringField<{
272
+ required: true;
273
+ blank: true;
274
+ label: "Command";
275
+ }>;
276
+
277
+ /**
278
+ * The _id of a Folder which contains this Macro
279
+ * @defaultValue `null`
280
+ */
281
+ folder: fields.ForeignDocumentField<typeof documents.BaseFolder>;
11
282
 
12
- type ConfiguredClass = Document.ConfiguredClassForName<"Macro">;
13
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"Macro">;
283
+ /**
284
+ * The numeric sort value which orders this Macro relative to its siblings
285
+ * @defaultValue `0`
286
+ */
287
+ sort: fields.IntegerSortField;
288
+
289
+ /**
290
+ * An object which configures ownership of this Macro
291
+ * @defaultValue see {@link fields.DocumentOwnershipField | `fields.DocumentOwnershipField`}
292
+ */
293
+ ownership: fields.DocumentOwnershipField;
294
+
295
+ /**
296
+ * An object of optional key/value flags
297
+ * @defaultValue `{}`
298
+ */
299
+ flags: fields.ObjectField.FlagsField<Name>;
300
+
301
+ /**
302
+ * An object of creation and access information
303
+ * @defaultValue see {@link fields.DocumentStatsField | `fields.DocumentStatsField`}
304
+ */
305
+ _stats: fields.DocumentStatsField;
306
+ }
307
+
308
+ namespace Database {
309
+ /** Options passed along in Get operations for Macros */
310
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<Macro.Parent> {}
311
+
312
+ /** Options passed along in Create operations for Macros */
313
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
314
+ extends foundry.abstract.types.DatabaseCreateOperation<Macro.CreateData, Macro.Parent, Temporary> {}
315
+
316
+ /** Options passed along in Delete operations for Macros */
317
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<Macro.Parent> {}
318
+
319
+ /** Options passed along in Update operations for Macros */
320
+ interface Update extends foundry.abstract.types.DatabaseUpdateOperation<Macro.UpdateData, Macro.Parent> {}
321
+
322
+ /** Operation for {@link Macro.createDocuments | `Macro.createDocuments`} */
323
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
324
+ extends Document.Database.CreateOperation<Macro.Database.Create<Temporary>> {}
325
+
326
+ /** Operation for {@link Macro.updateDocuments | `Macro.updateDocuments`} */
327
+ interface UpdateDocumentsOperation extends Document.Database.UpdateDocumentsOperation<Macro.Database.Update> {}
328
+
329
+ /** Operation for {@link Macro.deleteDocuments | `Macro.deleteDocuments`} */
330
+ interface DeleteDocumentsOperation extends Document.Database.DeleteDocumentsOperation<Macro.Database.Delete> {}
331
+
332
+ /** Operation for {@link Macro.create | `Macro.create`} */
333
+ interface CreateOperation<Temporary extends boolean | undefined>
334
+ extends Document.Database.CreateOperation<Macro.Database.Create<Temporary>> {}
335
+
336
+ /** Operation for {@link Macro.update | `Macro#update`} */
337
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
338
+
339
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
340
+
341
+ /** Options for {@link Macro.get | `Macro.get`} */
342
+ interface GetOptions extends Document.Database.GetOptions {}
343
+
344
+ /** Options for {@link Macro._preCreate | `Macro#_preCreate`} */
345
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
346
+
347
+ /** Options for {@link Macro._onCreate | `Macro#_onCreate`} */
348
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
349
+
350
+ /** Operation for {@link Macro._preCreateOperation | `Macro._preCreateOperation`} */
351
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<Macro.Database.Create> {}
352
+
353
+ /** Operation for {@link Macro._onCreateOperation | `Macro#_onCreateOperation`} */
354
+ interface OnCreateOperation extends Macro.Database.Create {}
14
355
 
15
- interface DatabaseOperations extends DocumentDatabaseOperations<Macro> {}
356
+ /** Options for {@link Macro._preUpdate | `Macro#_preUpdate`} */
357
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
16
358
 
17
- // Helpful aliases
18
- type TypeNames = BaseMacro.TypeNames;
19
- type ConstructorData = BaseMacro.ConstructorData;
20
- type UpdateData = BaseMacro.UpdateData;
21
- type Schema = BaseMacro.Schema;
22
- type Source = BaseMacro.Source;
359
+ /** Options for {@link Macro._onUpdate | `Macro#_onUpdate`} */
360
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
23
361
 
24
- interface Scope {
362
+ /** Operation for {@link Macro._preUpdateOperation | `Macro._preUpdateOperation`} */
363
+ interface PreUpdateOperation extends Macro.Database.Update {}
364
+
365
+ /** Operation for {@link Macro._onUpdateOperation | `Macro._preUpdateOperation`} */
366
+ interface OnUpdateOperation extends Macro.Database.Update {}
367
+
368
+ /** Options for {@link Macro._preDelete | `Macro#_preDelete`} */
369
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
370
+
371
+ /** Options for {@link Macro._onDelete | `Macro#_onDelete`} */
372
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
373
+
374
+ /** Options for {@link Macro._preDeleteOperation | `Macro#_preDeleteOperation`} */
375
+ interface PreDeleteOperation extends Macro.Database.Delete {}
376
+
377
+ /** Options for {@link Macro._onDeleteOperation | `Macro#_onDeleteOperation`} */
378
+ interface OnDeleteOperation extends Macro.Database.Delete {}
379
+
380
+ /** Context for {@link Macro._onDeleteOperation | `Macro._onDeleteOperation`} */
381
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<Macro.Parent> {}
382
+
383
+ /** Context for {@link Macro._onCreateDocuments | `Macro._onCreateDocuments`} */
384
+ interface OnCreateDocumentsContext extends Document.ModificationContext<Macro.Parent> {}
385
+
386
+ /** Context for {@link Macro._onUpdateDocuments | `Macro._onUpdateDocuments`} */
387
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<Macro.Parent> {}
388
+
389
+ /**
390
+ * Options for {@link Macro._preCreateDescendantDocuments | `Macro#_preCreateDescendantDocuments`}
391
+ * and {@link Macro._onCreateDescendantDocuments | `Macro#_onCreateDescendantDocuments`}
392
+ */
393
+ interface CreateOptions extends Document.Database.CreateOptions<Macro.Database.Create> {}
394
+
395
+ /**
396
+ * Options for {@link Macro._preUpdateDescendantDocuments | `Macro#_preUpdateDescendantDocuments`}
397
+ * and {@link Macro._onUpdateDescendantDocuments | `Macro#_onUpdateDescendantDocuments`}
398
+ */
399
+ interface UpdateOptions extends Document.Database.UpdateOptions<Macro.Database.Update> {}
400
+
401
+ /**
402
+ * Options for {@link Macro._preDeleteDescendantDocuments | `Macro#_preDeleteDescendantDocuments`}
403
+ * and {@link Macro._onDeleteDescendantDocuments | `Macro#_onDeleteDescendantDocuments`}
404
+ */
405
+ interface DeleteOptions extends Document.Database.DeleteOptions<Macro.Database.Delete> {}
406
+ }
407
+
408
+ /**
409
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
410
+ */
411
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
412
+
413
+ namespace Flags {
414
+ /**
415
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
416
+ */
417
+ type Scope = Document.FlagKeyOf<Flags>;
418
+
419
+ /**
420
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
421
+ */
422
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
423
+
424
+ /**
425
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
426
+ */
427
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
428
+ }
429
+
430
+ /**
431
+ * @deprecated This type always required properties for both a `"script"` and a `"chat"` message
432
+ * even when necessary. It has been superseded by {@link ScriptScope | `ScriptScope`},
433
+ * {@link ChatScope | `ChatScope`}, and {@link UnknownScope | `UnknownScope`}
434
+ */
435
+ type Scope = ScriptScope;
436
+
437
+ /** @internal */
438
+ type _ScriptScope = NullishProps<{
25
439
  /** An Actor who is the protagonist of the executed action. */
26
- actor: Actor;
440
+ actor: Actor.Implementation;
27
441
 
28
442
  /** A Token which is the protagonist of the executed action. */
29
- token: Token;
443
+ token: Token.Object;
30
444
 
31
- /** An optional event passed to the executed macro. */
32
- event: Event | RegionEvent;
445
+ /** The speaker data */
446
+ speaker: ChatMessage.SpeakerData;
33
447
 
34
448
  /**
35
- * @remarks Additional arguments passed as part of the scope
449
+ * @remarks Sometimes provided by core:
450
+ * - When called in {@link foundry.data.regionBehaviors.ExecuteMacroRegionBehaviorType._handleRegionEvent | `ExecuteMacroRegionBehaviorType#_handleRegionEvent`},
451
+ * will be a {@linkcode Scene.Implementation} (possibly `null` if somehow called on a `RegionBehavior` whose `RegionDocument` doesn't have a parent `Scene`)
36
452
  */
37
- [arg: string]: unknown;
38
- }
453
+ scene?: unknown;
454
+
455
+ /**
456
+ * @remarks Sometimes provided by core:
457
+ * - When called in {@link foundry.data.regionBehaviors.ExecuteMacroRegionBehaviorType._handleRegionEvent | `ExecuteMacroRegionBehaviorType#_handleRegionEvent`},
458
+ * will be a {@linkcode RegionDocument.Implementation} (possibly `null` if somehow called on a `RegionBehavior` without a parent `RegionDocument`)
459
+ */
460
+ region?: unknown;
461
+
462
+ /**
463
+ * @remarks Sometimes provided by core:
464
+ * - When called in {@link foundry.data.regionBehaviors.ExecuteMacroRegionBehaviorType._handleRegionEvent | `ExecuteMacroRegionBehaviorType#_handleRegionEvent`},
465
+ * will be a {@linkcode RegionBehavior.Implementation} (possibly `null` if somehow called on a `RegionBehaviorType` without a parent `RegionBehavior`)
466
+ */
467
+ behavior?: unknown;
468
+
469
+ /**
470
+ * @remarks Sometimes provided by core:
471
+ * - When called in {@link Macro._onClickDocumentLink | `Macro#_onClickDocumentLink`},
472
+ * will be a {@linkcode MouseEvent}
473
+ * - When called in {@link foundry.data.regionBehaviors.ExecuteMacroRegionBehaviorType._handleRegionEvent | `ExecuteMacroRegionBehaviorType#_handleRegionEvent`},
474
+ * will be a {@linkcode RegionDocument.RegionEvent}
475
+ */
476
+ event?: unknown;
477
+
478
+ /**
479
+ * @remarks Additional arguments passed as part of the scope. Numeric keys are disallowed (`##executeScript` throws).
480
+ */
481
+ [arg: string | symbol]: unknown;
482
+ }>;
483
+
484
+ interface ScriptScope extends _ScriptScope {}
485
+
486
+ interface ChatScope extends Pick<ScriptScope, "speaker"> {}
487
+
488
+ interface UnknownScope extends ScriptScope, ChatScope {}
489
+
490
+ type ExecuteScope<SubType extends Macro.SubType> = SubType extends "chat" | "script"
491
+ ? UnknownScope
492
+ : (SubType extends "script" ? ScriptScope : never) | (SubType extends "chat" ? ScriptScope : never);
493
+
494
+ // Note: If extra types ever get added this will need to be updated to account for them, even if
495
+ // just to return `undefined`.
496
+ type ExecuteReturn<SubType extends Macro.SubType> =
497
+ | (SubType extends "chat" ? Promise<ChatMessage.Implementation | undefined | void> : never)
498
+ | (SubType extends "script" ? Promise<unknown> | void : never);
499
+
500
+ /**
501
+ * @deprecated {@link Macro.Database | `Macro.DatabaseOperation`}
502
+ */
503
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
504
+ interface DatabaseOperations extends Document.Database.Operations<Macro.Implementation> {}
505
+
506
+ /**
507
+ * @deprecated {@link Macro.SubType | `Macro.SubType`}
508
+ */
509
+ type TypeNames = Macro.SubType;
510
+
511
+ /**
512
+ * @deprecated {@link Macro.CreateData | `Macro.CreateData`}
513
+ */
514
+ interface ConstructorData extends Macro.CreateData {}
515
+
516
+ /**
517
+ * @deprecated {@link Macro.implementation | `Macro.ImplementationClass`}
518
+ */
519
+ type ConfiguredClass = ImplementationClass;
520
+
521
+ /**
522
+ * @deprecated {@link Macro.Implementation | `Macro.Implementation`}
523
+ */
524
+ type ConfiguredInstance = Implementation;
39
525
  }
40
526
 
41
527
  /**
42
528
  * The client-side Macro document which extends the common BaseMacro model.
43
529
  *
44
- * @see {@link Macros} The world-level collection of Macro documents
45
- * @see {@link MacroConfig} The Macro configuration application
530
+ * @see {@link Macros | `Macros`} The world-level collection of Macro documents
531
+ * @see {@link MacroConfig | `MacroConfig`} The Macro configuration application
46
532
  *
47
533
  * @param data - Initial data provided to construct the Macro document
48
534
  */
49
- class Macro extends ClientDocumentMixin(foundry.documents.BaseMacro) {
50
- static override metadata: Macro.Metadata;
535
+ class Macro<out SubType extends Macro.SubType = Macro.SubType> extends ClientDocumentMixin(
536
+ foundry.documents.BaseMacro,
537
+ )<SubType> {
538
+ /**
539
+ * @param data - Initial data from which to construct the `Macro`
540
+ * @param context - Construction context options
541
+ */
542
+ constructor(...args: Macro.ConstructorArgs);
51
543
 
52
544
  /**
53
545
  * Is the current User the author of this macro?
@@ -69,19 +561,56 @@ declare global {
69
561
  * @param user - The User to test.
70
562
  * @returns Can this User execute this Macro?
71
563
  */
72
- canUserExecute(user: User): boolean;
564
+ canUserExecute(user: User.Implementation): boolean;
73
565
 
74
566
  /**
75
567
  * Execute the Macro command.
76
568
  * @param scope - Macro execution scope which is passed to script macros
77
- * @returns A promising containing a created {@link ChatMessage} (or `undefined`) if a chat
569
+ * @returns A promising containing a created {@link ChatMessage | `ChatMessage`} (or `undefined`) if a chat
78
570
  * macro or the return value if a script macro. A void return is possible if the user
79
571
  * is not permitted to execute macros or a script macro execution fails.
572
+ * @remarks Forwards to either `#executeChat` or `#executeScript`
80
573
  */
81
- execute(scope?: InexactPartial<Macro.Scope>): Promise<ChatMessage | void> | Promise<unknown> | void;
574
+ // scope: not null (parameter default only, destructured where forwarded)
575
+ execute(scope?: Macro.ExecuteScope<SubType>): Macro.ExecuteReturn<SubType>;
576
+
577
+ /** @remarks Returns `this.execute({event})` */
578
+ override _onClickDocumentLink(event: MouseEvent): Macro.ExecuteReturn<SubType>;
579
+
580
+ /*
581
+ * After this point these are not really overridden methods.
582
+ * They are here because Foundry's documents are complex and have lots of edge cases.
583
+ * There are DRY ways of representing this but this ends up being harder to understand
584
+ * for end users extending these functions, especially for static methods. There are also a
585
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
586
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
587
+ * separate like this helps against circularities.
588
+ */
589
+
590
+ // ClientDocument overrides
591
+
592
+ // Descendant Document operations have been left out because Macro does not have any descendant documents.
593
+
594
+ // context: not null (destructured)
595
+ static override defaultName(context?: Document.DefaultNameContext<"Macro", Macro.Parent>): string;
596
+
597
+ // data: not null (parameter default only), context: not null (destructured)
598
+ static override createDialog(
599
+ data?: Macro.CreateData,
600
+ context?: Document.CreateDialogContext<"Macro", Macro.Parent>,
601
+ ): Promise<Macro.Stored | null | undefined>;
602
+
603
+ // options: not null (parameter default only)
604
+ static override fromDropData(
605
+ data: Document.DropData<Macro.Implementation>,
606
+ options?: AnyObject,
607
+ ): Promise<Macro.Implementation | undefined>;
82
608
 
83
- #executeScript();
609
+ static override fromImport(
610
+ source: Macro.Source,
611
+ context?: Document.FromImportContext<Macro.Parent> | null,
612
+ ): Promise<Macro.Implementation>;
84
613
 
85
- _onClickDocumentLink(event: MouseEvent): ReturnType<this["execute"]>;
614
+ #Macro: true;
86
615
  }
87
616
  }