@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,22 +1,489 @@
1
- import type { InexactPartial } from "../../../../types/utils.d.mts";
1
+ import type { AnyObject, InexactPartial, Merge } from "#utils";
2
+ import type { documents } from "../../../client-esm/client.d.mts";
2
3
  import type Document from "../../../common/abstract/document.d.mts";
3
- import type { DocumentDatabaseOperations } from "../../../common/abstract/document.d.mts";
4
- import type BaseRollTable from "../../../common/documents/roll-table.d.mts";
4
+ import type { DataSchema } from "../../../common/data/fields.d.mts";
5
+ import type { fields } from "../../../common/data/module.d.mts";
5
6
 
6
7
  declare global {
7
8
  namespace RollTable {
8
- type Metadata = Document.MetadataFor<RollTable>;
9
+ /**
10
+ * The document's name.
11
+ */
12
+ type Name = "RollTable";
13
+
14
+ /**
15
+ * The arguments to construct the document.
16
+ */
17
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
18
+
19
+ /**
20
+ * The documents embedded within `RollTable`.
21
+ */
22
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
23
+
24
+ /**
25
+ * The implementation of the `RollTable` document instance configured through `CONFIG.RollTable.documentClass` in Foundry and
26
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredRollTable | `fvtt-types/configuration/ConfiguredRollTable`} in fvtt-types.
27
+ */
28
+ type Implementation = Document.ImplementationFor<Name>;
29
+
30
+ /**
31
+ * The implementation of the `RollTable` document configured through `CONFIG.RollTable.documentClass` in Foundry and
32
+ * {@link DocumentClassConfig | `DocumentClassConfig`} in fvtt-types.
33
+ */
34
+ type ImplementationClass = Document.ImplementationClassFor<Name>;
35
+
36
+ /**
37
+ * A document's metadata is special information about the document ranging anywhere from its name,
38
+ * whether it's indexed, or to the permissions a user has over it.
39
+ */
40
+ interface Metadata
41
+ extends Merge<
42
+ Document.Metadata.Default,
43
+ Readonly<{
44
+ name: "RollTable";
45
+ collection: "tables";
46
+ indexed: true;
47
+ compendiumIndexFields: ["_id", "name", "img", "sort", "folder"];
48
+ embedded: Metadata.Embedded;
49
+ label: string;
50
+ labelPlural: string;
51
+ schemaVersion: string;
52
+ }>
53
+ > {}
54
+
55
+ namespace Metadata {
56
+ /**
57
+ * The embedded metadata
58
+ */
59
+ interface Embedded {
60
+ TableResult: "results";
61
+ }
62
+ }
63
+
64
+ /**
65
+ * A document's parent is something that can contain it.
66
+ * For example an `Item` can be contained by an `Actor` which makes `Actor` one of its possible parents.
67
+ */
68
+ type Parent = null;
69
+
70
+ /**
71
+ * A document's direct descendants are documents that are contained directly within its schema.
72
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
73
+ */
74
+ type DirectDescendant = TableResult.Stored;
75
+
76
+ /**
77
+ * A document's direct descendants are documents that are contained directly within its schema.
78
+ * This is a union of all such classes, or never if the document doesn't have any descendants.
79
+ */
80
+ type DirectDescendantClass = TableResult.ImplementationClass;
81
+
82
+ /**
83
+ * A document's descendants are any documents that are contained within, either within its schema
84
+ * or its descendant's schemas.
85
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
86
+ */
87
+ type Descendant = DirectDescendant;
88
+
89
+ /**
90
+ * A document's descendants are any child documents, grandchild documents, etc.
91
+ * This is a union of all classes, or never if the document doesn't have any descendants.
92
+ */
93
+ type DescendantClass = DirectDescendantClass;
94
+ /**
95
+ * Types of `CompendiumCollection` this document might be contained in.
96
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
97
+ */
98
+ // Note: Takes any document in the heritage chain (i.e. itself or any parent, transitive or not) that can be contained in a compendium.
99
+ type Pack = CompendiumCollection.ForDocument<Name>;
100
+
101
+ /**
102
+ * An embedded document is a document contained in another.
103
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
104
+ *
105
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
106
+ */
107
+ type Embedded = Document.ImplementationFor<Embedded.Name>;
108
+
109
+ namespace Embedded {
110
+ /**
111
+ * An embedded document is a document contained in another.
112
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
113
+ *
114
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
115
+ */
116
+ type Name = keyof Metadata.Embedded;
117
+
118
+ /**
119
+ * Gets the collection name for an embedded document.
120
+ */
121
+ type CollectionNameOf<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionNameFor<
122
+ Metadata.Embedded,
123
+ CollectionName
124
+ >;
125
+
126
+ /**
127
+ * Gets the collection document for an embedded document.
128
+ */
129
+ // TODO(LukeAbby): There's a circularity. Should be `Document.Embedded.CollectionDocumentFor<Metadata.Embedded, CollectionName>`
130
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
131
+ type DocumentFor<CollectionName extends Embedded.CollectionName> = Document.Any;
132
+
133
+ /**
134
+ * Gets the collection for an embedded document.
135
+ */
136
+ type CollectionFor<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionFor<
137
+ // TODO(LukeAbby): This should be `TokenDocument.Implementation` but this causes a circularity.
138
+ Document.Any,
139
+ Metadata.Embedded,
140
+ CollectionName
141
+ >;
142
+
143
+ /**
144
+ * A valid name to refer to a collection embedded in this document. For example an `Actor`
145
+ * has the key `"items"` which contains `Item` instance which would make both `"Item" | "Items"`
146
+ * valid keys (amongst others).
147
+ */
148
+ type CollectionName = Document.Embedded.CollectionName<Metadata.Embedded>;
149
+ }
150
+
151
+ /**
152
+ * The name of the world or embedded collection this document can find itself in.
153
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
154
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
155
+ */
156
+ type ParentCollectionName = Metadata["collection"];
157
+
158
+ /**
159
+ * The world collection that contains `RollTable`s. Will be `never` if none exists.
160
+ */
161
+ type CollectionClass = RollTables.ConfiguredClass;
162
+
163
+ /**
164
+ * The world collection that contains `RollTable`s. Will be `never` if none exists.
165
+ */
166
+ type Collection = RollTables.Configured;
167
+
168
+ /**
169
+ * An instance of `RollTable` that comes from the database but failed validation meaning that
170
+ * its `system` and `_source` could theoretically be anything.
171
+ */
172
+ interface Invalid extends Document.Invalid<RollTable.Implementation> {}
173
+
174
+ /**
175
+ * An instance of `RollTable` that comes from the database.
176
+ */
177
+ interface Stored extends Document.Stored<RollTable.Implementation> {}
178
+
179
+ /**
180
+ * The data put in {@link RollTable._source | `RollTable#_source`}. This data is what was
181
+ * persisted to the database and therefore it must be valid JSON.
182
+ *
183
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
184
+ * but initialized as a {@link Set | `Set`}.
185
+ */
186
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
187
+
188
+ /**
189
+ * @deprecated {@link RollTable.Source | `RollTable.Source`}
190
+ */
191
+ type PersistedData = Source;
192
+
193
+ /**
194
+ * The data necessary to create a document. Used in places like {@link RollTable.create | `RollTable.create`}
195
+ * and {@link RollTable | `new RollTable(...)`}.
196
+ *
197
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
198
+ * with the right values. This means you can pass a `Set` instance, an array of values,
199
+ * a generator, or any other iterable.
200
+ */
201
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
202
+
203
+ /**
204
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
205
+ * {@link RollTable.name | `RollTable#name`}.
206
+ *
207
+ * This is data transformed from {@link RollTable.Source | `RollTable.Source`} and turned into more
208
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
209
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
210
+ */
211
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
212
+
213
+ /**
214
+ * The data used to update a document, for example {@link RollTable.update | `RollTable#update`}.
215
+ * It is a distinct type from {@link RollTable.CreateData | `DeepPartial<RollTable.CreateData>`} because
216
+ * it has different rules for `null` and `undefined`.
217
+ */
218
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
219
+
220
+ /**
221
+ * The schema for {@link RollTable | `RollTable`}. This is the source of truth for how an RollTable document
222
+ * must be structured.
223
+ *
224
+ * Foundry uses this schema to validate the structure of the {@link RollTable | `RollTable`}. For example
225
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
226
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
227
+ * starting as an array in the database, initialized as a set, and allows updates with any
228
+ * iterable.
229
+ */
230
+ interface Schema extends DataSchema {
231
+ /**
232
+ * The _id which uniquely identifies this RollTable document
233
+ * @defaultValue `null`
234
+ */
235
+ _id: fields.DocumentIdField;
236
+
237
+ /**
238
+ * The name of this RollTable
239
+ * @defaultValue `""`
240
+ */
241
+ name: fields.StringField<{ required: true; blank: false; textSearch: true }>;
242
+
243
+ /**
244
+ * An image file path which provides the thumbnail artwork for this RollTable
245
+ * @defaultValue `BaseRollTable.DEFAULT_ICON`
246
+ */
247
+ img: fields.FilePathField<{
248
+ categories: ["IMAGE"];
249
+ initial: () => typeof documents.BaseRollTable.DEFAULT_ICON;
250
+ }>;
251
+
252
+ /**
253
+ * The HTML text description for this RollTable document
254
+ * @defaultValue `""`
255
+ */
256
+ description: fields.StringField<{ textSearch: true }>;
257
+
258
+ /**
259
+ * A Collection of TableResult embedded documents which belong to this RollTable
260
+ * @defaultValue `[]`
261
+ */
262
+ results: fields.EmbeddedCollectionField<typeof documents.BaseTableResult, RollTable.Implementation>;
263
+
264
+ /**
265
+ * The Roll formula which determines the results chosen from the table
266
+ * @defaultValue `""`
267
+ */
268
+ formula: fields.StringField;
269
+
270
+ /**
271
+ * Are results from this table drawn with replacement?
272
+ * @defaultValue `true`
273
+ */
274
+ replacement: fields.BooleanField<{ initial: true }>;
275
+
276
+ /**
277
+ * Is the Roll result used to draw from this RollTable displayed in chat?
278
+ * @defaultValue `true`
279
+ */
280
+ displayRoll: fields.BooleanField<{ initial: true }>;
281
+
282
+ /**
283
+ * The _id of a Folder which contains this RollTable
284
+ * @defaultValue `null`
285
+ */
286
+ folder: fields.ForeignDocumentField<typeof documents.BaseFolder>;
287
+
288
+ /**
289
+ * The numeric sort value which orders this RollTable relative to its siblings
290
+ * @defaultValue `0`
291
+ */
292
+ sort: fields.IntegerSortField;
293
+
294
+ /**
295
+ * An object which configures ownership of this RollTable
296
+ * @defaultValue see {@link fields.DocumentOwnershipField | `fields.DocumentOwnershipField`}
297
+ */
298
+ ownership: fields.DocumentOwnershipField;
299
+
300
+ /**
301
+ * An object of optional key/value flags
302
+ * @defaultValue `{}`
303
+ */
304
+ flags: fields.ObjectField.FlagsField<Name>;
305
+
306
+ /**
307
+ * An object of creation and access information
308
+ * @defaultValue see {@link fields.DocumentStatsField | `fields.DocumentStatsField`}
309
+ */
310
+ _stats: fields.DocumentStatsField;
311
+ }
312
+
313
+ namespace Database {
314
+ /** Options passed along in Get operations for RollTables */
315
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<RollTable.Parent> {}
316
+
317
+ /** Options passed along in Create operations for RollTables */
318
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
319
+ extends foundry.abstract.types.DatabaseCreateOperation<RollTable.CreateData, RollTable.Parent, Temporary> {}
320
+
321
+ /** Options passed along in Delete operations for RollTables */
322
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<RollTable.Parent> {}
323
+
324
+ /** Options passed along in Update operations for RollTables */
325
+ interface Update extends foundry.abstract.types.DatabaseUpdateOperation<RollTable.UpdateData, RollTable.Parent> {}
326
+
327
+ /** Operation for {@link RollTable.createDocuments | `RollTable.createDocuments`} */
328
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
329
+ extends Document.Database.CreateOperation<RollTable.Database.Create<Temporary>> {}
330
+
331
+ /** Operation for {@link RollTable.updateDocuments | `RollTable.updateDocuments`} */
332
+ interface UpdateDocumentsOperation
333
+ extends Document.Database.UpdateDocumentsOperation<RollTable.Database.Update> {}
334
+
335
+ /** Operation for {@link RollTable.deleteDocuments | `RollTable.deleteDocuments`} */
336
+ interface DeleteDocumentsOperation
337
+ extends Document.Database.DeleteDocumentsOperation<RollTable.Database.Delete> {}
338
+
339
+ /** Operation for {@link RollTable.create | `RollTable.create`} */
340
+ interface CreateOperation<Temporary extends boolean | undefined>
341
+ extends Document.Database.CreateOperation<RollTable.Database.Create<Temporary>> {}
342
+
343
+ /** Operation for {@link RollTable.update | `RollTable#update`} */
344
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
345
+
346
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
347
+
348
+ /** Options for {@link RollTable.get | `RollTable.get`} */
349
+ interface GetOptions extends Document.Database.GetOptions {}
350
+
351
+ /** Options for {@link RollTable._preCreate | `RollTable#_preCreate`} */
352
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
353
+
354
+ /** Options for {@link RollTable._onCreate | `RollTable#_onCreate`} */
355
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
356
+
357
+ /** Operation for {@link RollTable._preCreateOperation | `RollTable._preCreateOperation`} */
358
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<RollTable.Database.Create> {}
359
+
360
+ /** Operation for {@link RollTable._onCreateOperation | `RollTable#_onCreateOperation`} */
361
+ interface OnCreateOperation extends RollTable.Database.Create {}
362
+
363
+ /** Options for {@link RollTable._preUpdate | `RollTable#_preUpdate`} */
364
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
365
+
366
+ /** Options for {@link RollTable._onUpdate | `RollTable#_onUpdate`} */
367
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
368
+
369
+ /** Operation for {@link RollTable._preUpdateOperation | `RollTable._preUpdateOperation`} */
370
+ interface PreUpdateOperation extends RollTable.Database.Update {}
371
+
372
+ /** Operation for {@link RollTable._onUpdateOperation | `RollTable._preUpdateOperation`} */
373
+ interface OnUpdateOperation extends RollTable.Database.Update {}
374
+
375
+ /** Options for {@link RollTable._preDelete | `RollTable#_preDelete`} */
376
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
377
+
378
+ /** Options for {@link RollTable._onDelete | `RollTable#_onDelete`} */
379
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
380
+
381
+ /** Options for {@link RollTable._preDeleteOperation | `RollTable#_preDeleteOperation`} */
382
+ interface PreDeleteOperation extends RollTable.Database.Delete {}
383
+
384
+ /** Options for {@link RollTable._onDeleteOperation | `RollTable#_onDeleteOperation`} */
385
+ interface OnDeleteOperation extends RollTable.Database.Delete {}
386
+
387
+ /** Context for {@link RollTable._onDeleteOperation | `RollTable._onDeleteOperation`} */
388
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<RollTable.Parent> {}
389
+
390
+ /** Context for {@link RollTable._onCreateDocuments | `RollTable._onCreateDocuments`} */
391
+ interface OnCreateDocumentsContext extends Document.ModificationContext<RollTable.Parent> {}
392
+
393
+ /** Context for {@link RollTable._onUpdateDocuments | `RollTable._onUpdateDocuments`} */
394
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<RollTable.Parent> {}
395
+
396
+ /**
397
+ * Options for {@link RollTable._preCreateDescendantDocuments | `RollTable#_preCreateDescendantDocuments`}
398
+ * and {@link RollTable._onCreateDescendantDocuments | `RollTable#_onCreateDescendantDocuments`}
399
+ */
400
+ interface CreateOptions extends Document.Database.CreateOptions<RollTable.Database.Create> {}
401
+
402
+ /**
403
+ * Options for {@link RollTable._preUpdateDescendantDocuments | `RollTable#_preUpdateDescendantDocuments`}
404
+ * and {@link RollTable._onUpdateDescendantDocuments | `RollTable#_onUpdateDescendantDocuments`}
405
+ */
406
+ interface UpdateOptions extends Document.Database.UpdateOptions<RollTable.Database.Update> {}
407
+
408
+ /**
409
+ * Options for {@link RollTable._preDeleteDescendantDocuments | `RollTable#_preDeleteDescendantDocuments`}
410
+ * and {@link RollTable._onDeleteDescendantDocuments | `RollTable#_onDeleteDescendantDocuments`}
411
+ */
412
+ interface DeleteOptions extends Document.Database.DeleteOptions<RollTable.Database.Delete> {}
413
+ }
414
+
415
+ /**
416
+ * An object containing the executed Roll and the produced results
417
+ */
418
+ interface Draw {
419
+ /**
420
+ * The Dice roll which generated the draw
421
+ */
422
+ roll: Roll;
423
+
424
+ /**
425
+ * An array of drawn TableResult documents
426
+ */
427
+ results: Document.ToConfiguredInstance<typeof foundry.documents.BaseTableResult>[];
428
+ }
429
+
430
+ /**
431
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
432
+ */
433
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
434
+
435
+ namespace Flags {
436
+ /**
437
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
438
+ */
439
+ type Scope = Document.FlagKeyOf<Flags>;
440
+
441
+ /**
442
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
443
+ */
444
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
445
+
446
+ /**
447
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
448
+ */
449
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
450
+ }
451
+
452
+ type PreCreateDescendantDocumentsArgs = Document.PreCreateDescendantDocumentsArgs<
453
+ RollTable.Stored,
454
+ RollTable.DirectDescendant,
455
+ RollTable.Metadata.Embedded
456
+ >;
9
457
 
10
- type ConfiguredClass = Document.ConfiguredClassForName<"RollTable">;
11
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"RollTable">;
458
+ type OnCreateDescendantDocumentsArgs = Document.OnCreateDescendantDocumentsArgs<
459
+ RollTable.Stored,
460
+ RollTable.DirectDescendant,
461
+ RollTable.Metadata.Embedded
462
+ >;
12
463
 
13
- interface DatabaseOperations extends DocumentDatabaseOperations<RollTable> {}
464
+ type PreUpdateDescendantDocumentsArgs = Document.PreUpdateDescendantDocumentsArgs<
465
+ RollTable.Stored,
466
+ RollTable.DirectDescendant,
467
+ RollTable.Metadata.Embedded
468
+ >;
14
469
 
15
- // Helpful aliases
16
- type ConstructorData = BaseRollTable.ConstructorData;
17
- type UpdateData = BaseRollTable.UpdateData;
18
- type Schema = BaseRollTable.Schema;
19
- type Source = BaseRollTable.Source;
470
+ type OnUpdateDescendantDocumentsArgs = Document.OnUpdateDescendantDocumentsArgs<
471
+ RollTable.Stored,
472
+ RollTable.DirectDescendant,
473
+ RollTable.Metadata.Embedded
474
+ >;
475
+
476
+ type PreDeleteDescendantDocumentsArgs = Document.PreDeleteDescendantDocumentsArgs<
477
+ RollTable.Stored,
478
+ RollTable.DirectDescendant,
479
+ RollTable.Metadata.Embedded
480
+ >;
481
+
482
+ type OnDeleteDescendantDocumentsArgs = Document.OnDeleteDescendantDocumentsArgs<
483
+ RollTable.Stored,
484
+ RollTable.DirectDescendant,
485
+ RollTable.Metadata.Embedded
486
+ >;
20
487
 
21
488
  /**
22
489
  * Optional arguments which customize the draw
@@ -37,7 +504,7 @@ declare global {
37
504
  * One or more table results which have been drawn
38
505
  * @defaultValue `[]`
39
506
  */
40
- results: TableResult[];
507
+ results: TableResult.Implementation[];
41
508
 
42
509
  /**
43
510
  * Whether to automatically display the results in chat
@@ -54,7 +521,7 @@ declare global {
54
521
  /**
55
522
  * Additional options which modify message creation
56
523
  */
57
- interface ToMessageOptions {
524
+ interface ToMessageOptions<Temporary extends boolean | undefined = false> {
58
525
  /**
59
526
  * An optional Roll instance which produced the drawn results
60
527
  */
@@ -70,7 +537,7 @@ declare global {
70
537
  * Additional options which customize the created messages
71
538
  * @defaultValue `{}`
72
539
  */
73
- messageOptions: Document.OnCreateOptions<"ChatMessage">;
540
+ messageOptions: ChatMessage.Database.CreateOperation<Temporary>;
74
541
  }
75
542
 
76
543
  interface RollOptions {
@@ -99,17 +566,42 @@ declare global {
99
566
  */
100
567
  rollable?: boolean | undefined;
101
568
  }
569
+
570
+ /**
571
+ * @deprecated {@link RollTable.Database | `RollTable.DatabaseOperation`}
572
+ */
573
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
574
+ interface DatabaseOperations extends Document.Database.Operations<RollTable.Implementation> {}
575
+
576
+ /**
577
+ * @deprecated {@link RollTable.CreateData | `RollTable.CreateData`}
578
+ */
579
+ interface ConstructorData extends RollTable.CreateData {}
580
+
581
+ /**
582
+ * @deprecated {@link RollTable.implementation | `RollTable.ImplementationClass`}
583
+ */
584
+ type ConfiguredClass = ImplementationClass;
585
+
586
+ /**
587
+ * @deprecated {@link RollTable.Implementation | `RollTable.Implementation`}
588
+ */
589
+ type ConfiguredInstance = Implementation;
102
590
  }
103
591
 
104
592
  /**
105
593
  * The client-side RollTable document which extends the common BaseRollTable model.
106
594
  *
107
- * @see {@link RollTables} The world-level collection of RollTable documents
108
- * @see {@link TableResult} The embedded TableResult document
109
- * @see {@link RollTableConfig} The RollTable configuration application
595
+ * @see {@link RollTables | `RollTables`} The world-level collection of RollTable documents
596
+ * @see {@link TableResult | `TableResult`} The embedded TableResult document
597
+ * @see {@link RollTableConfig | `RollTableConfig`} The RollTable configuration application
110
598
  */
111
599
  class RollTable extends ClientDocumentMixin(foundry.documents.BaseRollTable) {
112
- static override metadata: RollTable.Metadata;
600
+ /**
601
+ * @param data - Initial data from which to construct the `RollTable`
602
+ * @param context - Construction context options
603
+ */
604
+ constructor(...args: RollTable.ConstructorArgs);
113
605
 
114
606
  /**
115
607
  * Provide a thumbnail image path used to represent this document.
@@ -124,16 +616,16 @@ declare global {
124
616
  * @param options - Additional options which modify message creation
125
617
  */
126
618
  toMessage(
127
- results: TableResult.ConfiguredInstance[],
619
+ results: TableResult.Implementation[],
128
620
  options?: InexactPartial<RollTable.ToMessageOptions>,
129
- ): Promise<ChatMessage.ConfiguredInstance | undefined>;
621
+ ): Promise<ChatMessage.Implementation | undefined>;
130
622
 
131
623
  /**
132
624
  * Draw a result from the RollTable based on the table formula or a provided Roll instance
133
625
  * @param options - Optional arguments which customize the draw behavior
134
626
  * @returns A Promise which resolves to an object containing the executed roll and the produced results
135
627
  */
136
- draw(options?: RollTable.DrawOptions): Promise<RollTableDraw>;
628
+ draw(options?: RollTable.DrawOptions): Promise<RollTable.Draw>;
137
629
 
138
630
  /**
139
631
  * Draw multiple results from a RollTable, constructing a final synthetic Roll as a dice pool of inner rolls.
@@ -141,7 +633,7 @@ declare global {
141
633
  * @param options - Optional arguments which customize the draw
142
634
  * @returns The drawn results
143
635
  */
144
- drawMany(number: number, options?: InexactPartial<RollTable.DrawOptions>): Promise<RollTableDraw>;
636
+ drawMany(number: number, options?: InexactPartial<RollTable.DrawOptions>): Promise<RollTable.Draw>;
145
637
 
146
638
  /**
147
639
  * Normalize the probabilities of rolling each item in the RollTable based on their assigned weights
@@ -153,7 +645,7 @@ declare global {
153
645
  * @remarks Actually, returns list of TableEntries updated, not the RollTable.
154
646
  * As written, it force updates all records, not just the ones already drawn.
155
647
  */
156
- resetResults(): Promise<TableResult.ConfiguredInstance[]>;
648
+ resetResults(): Promise<TableResult.Stored[]>;
157
649
 
158
650
  /**
159
651
  * Evaluate a RollTable by rolling its formula and retrieving a drawn result.
@@ -175,7 +667,7 @@ declare global {
175
667
  * const customResults = await table.roll({roll});
176
668
  * ```
177
669
  */
178
- roll(options?: RollTable.RollOptions): Promise<RollTableDraw>;
670
+ roll(options?: RollTable.RollOptions): Promise<RollTable.Draw>;
179
671
 
180
672
  /**
181
673
  * Handle a roll from within embedded content.
@@ -188,7 +680,7 @@ declare global {
188
680
  * @param value - The rolled value
189
681
  * @returns An Array of results
190
682
  */
191
- getResultsForRoll(value: number): TableResult.ConfiguredInstance[];
683
+ getResultsForRoll(value: number): TableResult.Stored[];
192
684
 
193
685
  /**
194
686
  * Create embedded roll table markup.
@@ -252,70 +744,167 @@ declare global {
252
744
  options?: TextEditor.EnrichmentOptions,
253
745
  ): Promise<HTMLElement | null>;
254
746
 
255
- protected override _onCreateDescendantDocuments(
256
- parent: ClientDocument,
257
- collection: string,
258
- documents: ClientDocument[],
259
- data: unknown[],
260
- options: Document.OnCreateOptions<"TableResult">,
261
- userId: string,
262
- ): void;
263
-
264
- protected override _onDeleteDescendantDocuments(
265
- parent: ClientDocument,
266
- collection: string,
267
- documents: ClientDocument[],
268
- ids: string,
269
- options: Document.OnDeleteOptions<"TableResult">,
270
- userId: string,
271
- ): void;
272
-
273
- override toCompendium<
274
- FlagsOpt extends boolean = false,
275
- SourceOpt extends boolean = true,
276
- SortOpt extends boolean = true,
277
- FolderOpt extends boolean = false,
278
- OwnershipOpt extends boolean = false,
279
- StateOpt extends boolean = true,
280
- IdOpt extends boolean = false,
281
- >(
747
+ /**
748
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
749
+ * this method must be overridden like so:
750
+ * ```typescript
751
+ * class GurpsRollTable extends RollTable {
752
+ * protected override _onCreateDescendantDocuments(...args: RollTable.OnCreateDescendantDocumentsArgs) {
753
+ * super._onCreateDescendantDocuments(...args);
754
+ *
755
+ * const [parent, collection, documents, data, options, userId] = args;
756
+ * if (collection === "cards") {
757
+ * options; // Will be narrowed.
758
+ * }
759
+ * }
760
+ * }
761
+ * ```
762
+ */
763
+ protected override _onCreateDescendantDocuments(...args: RollTable.OnCreateDescendantDocumentsArgs): void;
764
+
765
+ /**
766
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
767
+ * this method must be overridden like so:
768
+ * ```typescript
769
+ * class BladesRollTable extends RollTable {
770
+ * protected override _onDeleteDescendantDocuments(...args: RollTable.OnUpdateDescendantDocuments) {
771
+ * super._onDeleteDescendantDocuments(...args);
772
+ *
773
+ * const [parent, collection, documents, ids, options, userId] = args;
774
+ * if (collection === "cards") {
775
+ * options; // Will be narrowed.
776
+ * }
777
+ * }
778
+ * }
779
+ * ```
780
+ */
781
+ protected override _onDeleteDescendantDocuments(...args: RollTable.OnDeleteDescendantDocumentsArgs): void;
782
+
783
+ // options: not null (parameter default only, destructured in super)
784
+ override toCompendium<Options extends ClientDocument.ToCompendiumOptions | undefined = undefined>(
282
785
  pack?: CompendiumCollection<CompendiumCollection.Metadata> | null,
283
- options?: InexactPartial<
284
- ClientDocument.CompendiumExportOptions<FlagsOpt, SourceOpt, SortOpt, FolderOpt, OwnershipOpt, StateOpt, IdOpt>
285
- >,
286
- ): Omit<
287
- this["_source"],
288
- | (IdOpt extends false ? "_id" : never)
289
- | ClientDocument.OmitProperty<SortOpt, "sort" | "navigation" | "navOrder">
290
- | ClientDocument.OmitProperty<FolderOpt, "folder">
291
- | ClientDocument.OmitProperty<FlagsOpt, "flags">
292
- | ClientDocument.OmitProperty<OwnershipOpt, "ownership">
293
- | ClientDocument.OmitProperty<StateOpt, "active" | "fogReset" | "playing"> // does not model the results.drawn = false
294
- >;
786
+ options?: Options,
787
+ ): ClientDocument.ToCompendiumReturnType<foundry.documents.BaseRollTable, Options>;
295
788
 
296
789
  /**
297
790
  * Create a new RollTable document using all of the Documents from a specific Folder as new results.
298
791
  * @param folder - The Folder document from which to create a roll table
299
792
  * @param options - Additional options passed to the RollTable.create method
300
793
  */
301
- static fromFolder(
302
- folder: Folder,
303
- options?: Document.OnCreateOptions<"Folder">,
304
- ): Promise<RollTable.ConfiguredInstance | undefined>;
305
- }
794
+ static fromFolder<Temporary extends boolean | undefined = false>(
795
+ folder: Folder.Implementation,
796
+ options?: RollTable.Database.CreateOperation<Temporary>,
797
+ ): Promise<Document.TemporaryIf<WallDocument.Implementation, Temporary> | undefined>;
798
+
799
+ /*
800
+ * After this point these are not really overridden methods.
801
+ * They are here because Foundry's documents are complex and have lots of edge cases.
802
+ * There are DRY ways of representing this but this ends up being harder to understand
803
+ * for end users extending these functions, especially for static methods. There are also a
804
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
805
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
806
+ * separate like this helps against circularities.
807
+ */
808
+
809
+ // ClientDocument overrides
306
810
 
307
- /**
308
- * An object containing the executed Roll and the produced results
309
- */
310
- interface RollTableDraw {
311
811
  /**
312
- * The Dice roll which generated the draw
812
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
813
+ * this method must be overridden like so:
814
+ * ```typescript
815
+ * class SwadeRollTable extends RollTable {
816
+ * protected override _preCreateDescendantDocuments(...args: RollTable.PreCreateDescendantDocumentsArgs) {
817
+ * super._preCreateDescendantDocuments(...args);
818
+ *
819
+ * const [parent, collection, data, options, userId] = args;
820
+ * if (collection === "cards") {
821
+ * options; // Will be narrowed.
822
+ * }
823
+ * }
824
+ * }
825
+ * ```
313
826
  */
314
- roll: Roll;
827
+ protected override _preCreateDescendantDocuments(...args: RollTable.PreCreateDescendantDocumentsArgs): void;
315
828
 
316
829
  /**
317
- * An array of drawn TableResult documents
830
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
831
+ * this method must be overridden like so:
832
+ * ```typescript
833
+ * class LancerRollTable extends RollTable {
834
+ * protected override _preUpdateDescendantDocuments(...args: RollTable.OnUpdateDescendantDocuments) {
835
+ * super._preUpdateDescendantDocuments(...args);
836
+ *
837
+ * const [parent, collection, changes, options, userId] = args;
838
+ * if (collection === "cards") {
839
+ * options; // Will be narrowed.
840
+ * }
841
+ * }
842
+ * }
843
+ * ```
318
844
  */
319
- results: Document.ToConfiguredInstance<typeof foundry.documents.BaseTableResult>[];
845
+ protected override _preUpdateDescendantDocuments(...args: RollTable.PreUpdateDescendantDocumentsArgs): void;
846
+
847
+ /**
848
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
849
+ * this method must be overridden like so:
850
+ * ```typescript
851
+ * class Ptr2eRollTable extends RollTable {
852
+ * protected override _onUpdateDescendantDocuments(...args: RollTable.OnUpdateDescendantDocumentsArgs) {
853
+ * super._onUpdateDescendantDocuments(...args);
854
+ *
855
+ * const [parent, collection, documents, changes, options, userId] = args;
856
+ * if (collection === "cards") {
857
+ * options; // Will be narrowed.
858
+ * }
859
+ * }
860
+ * }
861
+ * ```
862
+ */
863
+ protected override _onUpdateDescendantDocuments(...args: RollTable.OnUpdateDescendantDocumentsArgs): void;
864
+
865
+ /**
866
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
867
+ * this method must be overridden like so:
868
+ * ```typescript
869
+ * class KultRollTable extends RollTable {
870
+ * protected override _preDeleteDescendantDocuments(...args: RollTable.PreDeleteDescendantDocumentsArgs) {
871
+ * super._preDeleteDescendantDocuments(...args);
872
+ *
873
+ * const [parent, collection, ids, options, userId] = args;
874
+ * if (collection === "cards") {
875
+ * options; // Will be narrowed.
876
+ * }
877
+ * }
878
+ * }
879
+ * ```
880
+ */
881
+ protected override _preDeleteDescendantDocuments(...args: RollTable.PreDeleteDescendantDocumentsArgs): void;
882
+
883
+ // context: not null (destructured)
884
+ static override defaultName(context?: Document.DefaultNameContext<"RollTable", RollTable.Parent>): string;
885
+
886
+ // data: not null (parameter default only), context: not null (destructured)
887
+ static override createDialog(
888
+ data?: Document.CreateDialogData<RollTable.CreateData>,
889
+ context?: Document.CreateDialogContext<"RollTable", RollTable.Parent>,
890
+ ): Promise<RollTable.Stored | null | undefined>;
891
+
892
+ // options: not null (parameter default only)
893
+ static override fromDropData(
894
+ data: Document.DropData<RollTable.Implementation>,
895
+ options?: AnyObject,
896
+ ): Promise<RollTable.Implementation | undefined>;
897
+
898
+ static override fromImport(
899
+ source: RollTable.Source,
900
+ context?: Document.FromImportContext<RollTable.Parent> | null,
901
+ ): Promise<RollTable.Implementation>;
902
+
903
+ override _onClickDocumentLink(event: MouseEvent): ClientDocument.OnClickDocumentLinkReturn;
320
904
  }
905
+
906
+ /**
907
+ * @deprecated {@link RollTable.Draw | `RollTable.Draw`}
908
+ */
909
+ type RollTableDraw = RollTable.Draw;
321
910
  }