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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (543) hide show
  1. package/README.md +6 -3
  2. package/package.json +40 -18
  3. package/src/configuration/configuration.d.mts +24 -23
  4. package/src/configuration/documents.d.mts +295 -0
  5. package/src/configuration/globals.d.mts +8 -2
  6. package/src/configuration/index.d.mts +1 -0
  7. package/src/foundry/client/apps/app.d.mts +121 -119
  8. package/src/foundry/client/apps/av/av-config.d.mts +13 -8
  9. package/src/foundry/client/apps/av/cameras.d.mts +11 -11
  10. package/src/foundry/client/apps/dice/dice-config.d.mts +22 -8
  11. package/src/foundry/client/apps/form.d.mts +112 -94
  12. package/src/foundry/client/apps/forms/actor.d.mts +22 -12
  13. package/src/foundry/client/apps/forms/adventure-exporter.d.mts +13 -8
  14. package/src/foundry/client/apps/forms/adventure-importer.d.mts +15 -7
  15. package/src/foundry/client/apps/forms/base-sheet.d.mts +14 -7
  16. package/src/foundry/client/apps/forms/card-config.d.mts +17 -9
  17. package/src/foundry/client/apps/forms/cards-config.d.mts +13 -14
  18. package/src/foundry/client/apps/forms/combat-config.d.mts +7 -7
  19. package/src/foundry/client/apps/forms/combatant-config.d.mts +4 -4
  20. package/src/foundry/client/apps/forms/default-sheets-config.d.mts +1 -1
  21. package/src/foundry/client/apps/forms/effect-config.d.mts +6 -6
  22. package/src/foundry/client/apps/forms/folder-config.d.mts +5 -5
  23. package/src/foundry/client/apps/forms/fonts.d.mts +42 -35
  24. package/src/foundry/client/apps/forms/grid-config.d.mts +11 -11
  25. package/src/foundry/client/apps/forms/image-popout.d.mts +28 -22
  26. package/src/foundry/client/apps/forms/item.d.mts +6 -6
  27. package/src/foundry/client/apps/forms/journal-page-sheet.d.mts +17 -15
  28. package/src/foundry/client/apps/forms/journal-sheet.d.mts +46 -37
  29. package/src/foundry/client/apps/forms/macro-config.d.mts +6 -6
  30. package/src/foundry/client/apps/forms/measure-template.d.mts +8 -8
  31. package/src/foundry/client/apps/forms/ownership.d.mts +5 -5
  32. package/src/foundry/client/apps/forms/playlist-config.d.mts +7 -9
  33. package/src/foundry/client/apps/forms/playlist-sound-config.d.mts +6 -6
  34. package/src/foundry/client/apps/forms/roll-table-config.d.mts +9 -10
  35. package/src/foundry/client/apps/forms/scene-config.d.mts +39 -39
  36. package/src/foundry/client/apps/forms/sheet-config.d.mts +8 -8
  37. package/src/foundry/client/apps/forms/user-config.d.mts +11 -11
  38. package/src/foundry/client/apps/hud/chatbubble.d.mts +14 -9
  39. package/src/foundry/client/apps/hud/container.d.mts +3 -3
  40. package/src/foundry/client/apps/hud/controls.d.mts +124 -84
  41. package/src/foundry/client/apps/hud/hotbar.d.mts +12 -12
  42. package/src/foundry/client/apps/hud/hud.d.mts +4 -4
  43. package/src/foundry/client/apps/hud/menu.d.mts +6 -6
  44. package/src/foundry/client/apps/hud/navigation.d.mts +11 -11
  45. package/src/foundry/client/apps/hud/pause.d.mts +7 -7
  46. package/src/foundry/client/apps/hud/players.d.mts +11 -11
  47. package/src/foundry/client/apps/i18n.d.mts +31 -27
  48. package/src/foundry/client/apps/placeables/drawing-config.d.mts +41 -33
  49. package/src/foundry/client/apps/placeables/drawing-hud.d.mts +4 -4
  50. package/src/foundry/client/apps/placeables/index.d.mts +0 -2
  51. package/src/foundry/client/apps/placeables/note-config.d.mts +27 -17
  52. package/src/foundry/client/apps/placeables/tile-config.d.mts +23 -10
  53. package/src/foundry/client/apps/placeables/tile-hud.d.mts +8 -8
  54. package/src/foundry/client/apps/placeables/token-config.d.mts +84 -63
  55. package/src/foundry/client/apps/placeables/token-hud.d.mts +10 -10
  56. package/src/foundry/client/apps/placeables/wall-config.d.mts +19 -16
  57. package/src/foundry/client/apps/sidebar/apps/chat-popout.d.mts +5 -5
  58. package/src/foundry/client/apps/sidebar/apps/client-settings.d.mts +2 -2
  59. package/src/foundry/client/apps/sidebar/apps/compendium.d.mts +13 -10
  60. package/src/foundry/client/apps/sidebar/apps/invitation-links.d.mts +3 -3
  61. package/src/foundry/client/apps/sidebar/apps/keybindings-config.d.mts +1 -1
  62. package/src/foundry/client/apps/sidebar/apps/module-management.d.mts +6 -6
  63. package/src/foundry/client/apps/sidebar/apps/permission-config.d.mts +6 -6
  64. package/src/foundry/client/apps/sidebar/apps/support-details.d.mts +33 -28
  65. package/src/foundry/client/apps/sidebar/apps/tours-management.d.mts +1 -1
  66. package/src/foundry/client/apps/sidebar/apps/world-config.d.mts +12 -9
  67. package/src/foundry/client/apps/sidebar/directory-tab-mixin.d.mts +40 -32
  68. package/src/foundry/client/apps/sidebar/document-directory.d.mts +44 -37
  69. package/src/foundry/client/apps/sidebar/package-configuration.d.mts +3 -3
  70. package/src/foundry/client/apps/sidebar/sidebar-tab.d.mts +3 -3
  71. package/src/foundry/client/apps/sidebar/sidebar.d.mts +7 -7
  72. package/src/foundry/client/apps/sidebar/tabs/actors-directory.d.mts +4 -4
  73. package/src/foundry/client/apps/sidebar/tabs/cards-directory.d.mts +4 -4
  74. package/src/foundry/client/apps/sidebar/tabs/chat-log.d.mts +34 -29
  75. package/src/foundry/client/apps/sidebar/tabs/combat-tracker.d.mts +15 -15
  76. package/src/foundry/client/apps/sidebar/tabs/compendium-directory.d.mts +21 -12
  77. package/src/foundry/client/apps/sidebar/tabs/items-directory.d.mts +4 -4
  78. package/src/foundry/client/apps/sidebar/tabs/journal-directory.d.mts +4 -4
  79. package/src/foundry/client/apps/sidebar/tabs/macros-directory.d.mts +8 -8
  80. package/src/foundry/client/apps/sidebar/tabs/playlists-directory.d.mts +21 -21
  81. package/src/foundry/client/apps/sidebar/tabs/roll-table-directory.d.mts +4 -4
  82. package/src/foundry/client/apps/sidebar/tabs/scenes-directory.d.mts +6 -6
  83. package/src/foundry/client/apps/sidebar/tabs/settings.d.mts +12 -12
  84. package/src/foundry/client/apps/templates.d.mts +2 -2
  85. package/src/foundry/client/av/clients/simplepeer.d.mts +4 -4
  86. package/src/foundry/client/av/settings.d.mts +16 -13
  87. package/src/foundry/client/config.d.mts +1982 -1823
  88. package/src/foundry/client/core/document-index.d.mts +12 -4
  89. package/src/foundry/client/core/hooks.d.mts +0 -2
  90. package/src/foundry/client/core/image.d.mts +13 -11
  91. package/src/foundry/client/core/issues.d.mts +11 -6
  92. package/src/foundry/client/core/keybindings.d.mts +3 -3
  93. package/src/foundry/client/core/nue.d.mts +1 -1
  94. package/src/foundry/client/core/packages.d.mts +393 -63
  95. package/src/foundry/client/core/settings.d.mts +34 -12
  96. package/src/foundry/client/core/socket.d.mts +2 -2
  97. package/src/foundry/client/core/sorting.d.mts +6 -6
  98. package/src/foundry/client/core/time.d.mts +6 -3
  99. package/src/foundry/client/core/tooltip.d.mts +1 -1
  100. package/src/foundry/client/core/tour.d.mts +58 -49
  101. package/src/foundry/client/core/tours.d.mts +1 -1
  102. package/src/foundry/client/core/utils.d.mts +3 -3
  103. package/src/foundry/client/core/workers.d.mts +24 -17
  104. package/src/foundry/client/data/abstract/canvas-document.d.mts +9 -15
  105. package/src/foundry/client/data/abstract/client-document.d.mts +133 -172
  106. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +14 -36
  107. package/src/foundry/client/data/abstract/document-collection.d.mts +89 -65
  108. package/src/foundry/client/data/abstract/world-collection.d.mts +47 -53
  109. package/src/foundry/client/data/collections/actors.d.mts +24 -31
  110. package/src/foundry/client/data/collections/cards.d.mts +10 -6
  111. package/src/foundry/client/data/collections/combats.d.mts +12 -8
  112. package/src/foundry/client/data/collections/compendium-collection.d.mts +79 -66
  113. package/src/foundry/client/data/collections/compendium-folders.d.mts +6 -6
  114. package/src/foundry/client/data/collections/compendium-packs.d.mts +4 -4
  115. package/src/foundry/client/data/collections/fog.d.mts +10 -6
  116. package/src/foundry/client/data/collections/folder.d.mts +15 -10
  117. package/src/foundry/client/data/collections/items.d.mts +11 -7
  118. package/src/foundry/client/data/collections/journal.d.mts +16 -10
  119. package/src/foundry/client/data/collections/macros.d.mts +15 -22
  120. package/src/foundry/client/data/collections/messages.d.mts +14 -10
  121. package/src/foundry/client/data/collections/playlists.d.mts +12 -9
  122. package/src/foundry/client/data/collections/scenes.d.mts +19 -31
  123. package/src/foundry/client/data/collections/settings.d.mts +10 -6
  124. package/src/foundry/client/data/collections/tables.d.mts +11 -7
  125. package/src/foundry/client/data/collections/users.d.mts +14 -11
  126. package/src/foundry/client/data/documents/active-effect.d.mts +652 -88
  127. package/src/foundry/client/data/documents/actor-delta.d.mts +672 -28
  128. package/src/foundry/client/data/documents/actor.d.mts +722 -60
  129. package/src/foundry/client/data/documents/adventure.d.mts +482 -49
  130. package/src/foundry/client/data/documents/ambient-light.d.mts +426 -21
  131. package/src/foundry/client/data/documents/ambient-sound.d.mts +474 -15
  132. package/src/foundry/client/data/documents/card.d.mts +570 -39
  133. package/src/foundry/client/data/documents/cards.d.mts +742 -78
  134. package/src/foundry/client/data/documents/chat-message.d.mts +578 -45
  135. package/src/foundry/client/data/documents/combat.d.mts +701 -71
  136. package/src/foundry/client/data/documents/combatant.d.mts +510 -28
  137. package/src/foundry/client/data/documents/drawing.d.mts +543 -16
  138. package/src/foundry/client/data/documents/fog-exploration.d.mts +413 -27
  139. package/src/foundry/client/data/documents/folder.d.mts +461 -40
  140. package/src/foundry/client/data/documents/item.d.mts +679 -25
  141. package/src/foundry/client/data/documents/journal-entry-page.d.mts +587 -21
  142. package/src/foundry/client/data/documents/journal-entry.d.mts +621 -20
  143. package/src/foundry/client/data/documents/macro.d.mts +530 -25
  144. package/src/foundry/client/data/documents/measured-template.d.mts +480 -16
  145. package/src/foundry/client/data/documents/note.d.mts +495 -18
  146. package/src/foundry/client/data/documents/playlist-sound.d.mts +429 -27
  147. package/src/foundry/client/data/documents/playlist.d.mts +666 -75
  148. package/src/foundry/client/data/documents/region-behavior.d.mts +468 -38
  149. package/src/foundry/client/data/documents/region.d.mts +661 -35
  150. package/src/foundry/client/data/documents/scene.d.mts +986 -149
  151. package/src/foundry/client/data/documents/setting.d.mts +397 -15
  152. package/src/foundry/client/data/documents/table-result.d.mts +479 -17
  153. package/src/foundry/client/data/documents/table.d.mts +663 -80
  154. package/src/foundry/client/data/documents/tile.d.mts +502 -16
  155. package/src/foundry/client/data/documents/token.d.mts +1114 -90
  156. package/src/foundry/client/data/documents/user.d.mts +495 -27
  157. package/src/foundry/client/data/documents/wall.d.mts +550 -15
  158. package/src/foundry/client/game.d.mts +58 -92
  159. package/src/foundry/client/head.d.mts +5 -6
  160. package/src/foundry/client/hooks.d.mts +237 -221
  161. package/src/foundry/client/pixi/board.d.mts +95 -89
  162. package/src/foundry/client/pixi/core/containers/base-canvas-group.d.mts +6 -5
  163. package/src/foundry/client/pixi/core/containers/cached-container.d.mts +5 -5
  164. package/src/foundry/client/pixi/core/containers/full-canvas-container.d.mts +2 -2
  165. package/src/foundry/client/pixi/core/containers/point-source-mesh.d.mts +3 -3
  166. package/src/foundry/client/pixi/core/containers/quad-mesh.d.mts +3 -3
  167. package/src/foundry/client/pixi/core/containers/quadtree.d.mts +23 -21
  168. package/src/foundry/client/pixi/core/containers/sprite-mesh.d.mts +5 -5
  169. package/src/foundry/client/pixi/core/containers/unbound-container.d.mts +5 -5
  170. package/src/foundry/client/pixi/core/interaction/canvas-animation.d.mts +57 -51
  171. package/src/foundry/client/pixi/core/interaction/control-icon.d.mts +3 -3
  172. package/src/foundry/client/pixi/core/interaction/mouse-handler.d.mts +7 -7
  173. package/src/foundry/client/pixi/core/interaction/ping.d.mts +19 -11
  174. package/src/foundry/client/pixi/core/interaction/pings/chevron.d.mts +7 -2
  175. package/src/foundry/client/pixi/core/interaction/pings/pulse.d.mts +29 -23
  176. package/src/foundry/client/pixi/core/interaction/render-flags.d.mts +83 -38
  177. package/src/foundry/client/pixi/core/interaction/resize-handle.d.mts +3 -3
  178. package/src/foundry/client/pixi/core/interaction/targets.d.mts +9 -9
  179. package/src/foundry/client/pixi/core/loader.d.mts +8 -8
  180. package/src/foundry/client/pixi/core/shapes/limited-angle-polygon.d.mts +9 -4
  181. package/src/foundry/client/pixi/core/shapes/polygon-mesher.d.mts +3 -3
  182. package/src/foundry/client/pixi/core/shapes/precise-text.d.mts +3 -3
  183. package/src/foundry/client/pixi/core/shapes/ray.d.mts +23 -17
  184. package/src/foundry/client/pixi/core/shapes/source-polygon.d.mts +19 -14
  185. package/src/foundry/client/pixi/extensions/circle.d.mts +1 -1
  186. package/src/foundry/client/pixi/extensions/observable-transform.d.mts +3 -3
  187. package/src/foundry/client/pixi/groups/effects.d.mts +4 -4
  188. package/src/foundry/client/pixi/groups/environment.d.mts +5 -5
  189. package/src/foundry/client/pixi/groups/hidden.d.mts +3 -3
  190. package/src/foundry/client/pixi/groups/interface.d.mts +6 -6
  191. package/src/foundry/client/pixi/groups/overlay.d.mts +3 -3
  192. package/src/foundry/client/pixi/groups/primary.d.mts +11 -11
  193. package/src/foundry/client/pixi/groups/rendered.d.mts +3 -3
  194. package/src/foundry/client/pixi/layers/base/canvas-layer.d.mts +3 -3
  195. package/src/foundry/client/pixi/layers/base/interaction-layer.d.mts +13 -13
  196. package/src/foundry/client/pixi/layers/base/placeables-layer.d.mts +279 -233
  197. package/src/foundry/client/pixi/layers/controls/cursor.d.mts +17 -8
  198. package/src/foundry/client/pixi/layers/controls/door.d.mts +26 -14
  199. package/src/foundry/client/pixi/layers/controls/layer.d.mts +89 -79
  200. package/src/foundry/client/pixi/layers/controls/ruler.d.mts +121 -96
  201. package/src/foundry/client/pixi/layers/effects/background-effects.d.mts +4 -5
  202. package/src/foundry/client/pixi/layers/effects/coloration-effects.d.mts +6 -4
  203. package/src/foundry/client/pixi/layers/effects/darkness-effects.d.mts +7 -4
  204. package/src/foundry/client/pixi/layers/effects/illumination-effects.d.mts +19 -16
  205. package/src/foundry/client/pixi/layers/effects/visibility.d.mts +101 -84
  206. package/src/foundry/client/pixi/layers/effects/weather/particles/effect.d.mts +13 -4
  207. package/src/foundry/client/pixi/layers/effects/weather/particles/leaves.d.mts +31 -2
  208. package/src/foundry/client/pixi/layers/effects/weather-effects.d.mts +134 -59
  209. package/src/foundry/client/pixi/layers/grid/highlight.d.mts +13 -3
  210. package/src/foundry/client/pixi/layers/grid/layer.d.mts +89 -87
  211. package/src/foundry/client/pixi/layers/grid/mesh.d.mts +36 -15
  212. package/src/foundry/client/pixi/layers/masks/depth.d.mts +3 -3
  213. package/src/foundry/client/pixi/layers/masks/occlusion.d.mts +4 -4
  214. package/src/foundry/client/pixi/layers/masks/vision.d.mts +6 -6
  215. package/src/foundry/client/pixi/layers/placeables/drawings.d.mts +15 -11
  216. package/src/foundry/client/pixi/layers/placeables/lighting.d.mts +11 -10
  217. package/src/foundry/client/pixi/layers/placeables/notes.d.mts +47 -28
  218. package/src/foundry/client/pixi/layers/placeables/regions.d.mts +25 -12
  219. package/src/foundry/client/pixi/layers/placeables/sounds.d.mts +81 -63
  220. package/src/foundry/client/pixi/layers/placeables/templates.d.mts +10 -11
  221. package/src/foundry/client/pixi/layers/placeables/tiles.d.mts +28 -17
  222. package/src/foundry/client/pixi/layers/placeables/tokens.d.mts +67 -46
  223. package/src/foundry/client/pixi/layers/placeables/walls.d.mts +50 -51
  224. package/src/foundry/client/pixi/perception/clockwise-sweep.d.mts +22 -16
  225. package/src/foundry/client/pixi/perception/detection-mode.d.mts +123 -51
  226. package/src/foundry/client/pixi/perception/fog.d.mts +34 -19
  227. package/src/foundry/client/pixi/perception/perception-manager.d.mts +137 -137
  228. package/src/foundry/client/pixi/perception/vision-mode.d.mts +92 -67
  229. package/src/foundry/client/pixi/perception/weiler-atherton-clipping.d.mts +3 -3
  230. package/src/foundry/client/pixi/placeable.d.mts +241 -146
  231. package/src/foundry/client/pixi/placeables/drawing.d.mts +260 -134
  232. package/src/foundry/client/pixi/placeables/light.d.mts +204 -66
  233. package/src/foundry/client/pixi/placeables/note.d.mts +150 -55
  234. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-canvas-object.d.mts +7 -6
  235. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-graphics.d.mts +3 -3
  236. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-occludable-object.d.mts +2 -2
  237. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-sprite-mesh.d.mts +4 -4
  238. package/src/foundry/client/pixi/placeables/region.d.mts +219 -110
  239. package/src/foundry/client/pixi/placeables/sound.d.mts +211 -68
  240. package/src/foundry/client/pixi/placeables/template.d.mts +186 -100
  241. package/src/foundry/client/pixi/placeables/tile.d.mts +211 -142
  242. package/src/foundry/client/pixi/placeables/token.d.mts +911 -568
  243. package/src/foundry/client/pixi/placeables/wall.d.mts +253 -130
  244. package/src/foundry/client/pixi/webgl/extensions/batch-renderer.d.mts +27 -5
  245. package/src/foundry/client/pixi/webgl/extensions/batch-shader-generator.d.mts +3 -3
  246. package/src/foundry/client/pixi/webgl/helpers/framebuffer-snapshot.d.mts +3 -3
  247. package/src/foundry/client/pixi/webgl/helpers/smooth-noise.d.mts +13 -5
  248. package/src/foundry/client/pixi/webgl/helpers/texture-extractor.d.mts +6 -6
  249. package/src/foundry/client/pixi/webgl/shaders/base-shader-mixin.d.mts +2 -2
  250. package/src/foundry/client/pixi/webgl/shaders/base-shader.d.mts +5 -5
  251. package/src/foundry/client/pixi/webgl/shaders/filters/base-filter.d.mts +4 -4
  252. package/src/foundry/client/pixi/webgl/shaders/filters/base-mask-filter.d.mts +3 -3
  253. package/src/foundry/client/pixi/webgl/shaders/filters/blur.d.mts +5 -5
  254. package/src/foundry/client/pixi/webgl/shaders/filters/effects-masking.d.mts +6 -3
  255. package/src/foundry/client/pixi/webgl/shaders/filters/environment.d.mts +3 -3
  256. package/src/foundry/client/pixi/webgl/shaders/filters/glow-overlay.d.mts +4 -4
  257. package/src/foundry/client/pixi/webgl/shaders/filters/invisibility.d.mts +3 -3
  258. package/src/foundry/client/pixi/webgl/shaders/filters/outline-overlay.d.mts +4 -4
  259. package/src/foundry/client/pixi/webgl/shaders/filters/transition.d.mts +6 -6
  260. package/src/foundry/client/pixi/webgl/shaders/filters/visibility.d.mts +8 -5
  261. package/src/foundry/client/pixi/webgl/shaders/filters/vision-mask-filter.d.mts +3 -3
  262. package/src/foundry/client/pixi/webgl/shaders/filters/void.d.mts +3 -3
  263. package/src/foundry/client/pixi/webgl/shaders/filters/weather-occlusion-masks.d.mts +4 -4
  264. package/src/foundry/client/pixi/webgl/shaders/fragment-channel-mixin.d.mts +1 -1
  265. package/src/foundry/client/pixi/webgl/shaders/grid/grid.d.mts +4 -4
  266. package/src/foundry/client/pixi/webgl/shaders/lighting/background-lighting.d.mts +3 -3
  267. package/src/foundry/client/pixi/webgl/shaders/lighting/base-lighting.d.mts +3 -3
  268. package/src/foundry/client/pixi/webgl/shaders/lighting/coloration-lighting.d.mts +3 -3
  269. package/src/foundry/client/pixi/webgl/shaders/lighting/darkness-lighting.d.mts +3 -3
  270. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/bewitching-wave.d.mts +5 -5
  271. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/black-hole.d.mts +3 -3
  272. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/chroma.d.mts +3 -3
  273. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/emanation.d.mts +3 -3
  274. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/energy-field.d.mts +3 -3
  275. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fairy-light.d.mts +6 -6
  276. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/flame.d.mts +5 -5
  277. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fog.d.mts +3 -3
  278. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/force-grid.d.mts +3 -3
  279. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/ghost-light.d.mts +5 -5
  280. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/hexa-dome.d.mts +3 -3
  281. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/light-dome.d.mts +3 -3
  282. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/magical-gloom.d.mts +3 -3
  283. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/pulse.d.mts +5 -5
  284. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/radial-rainbow.d.mts +3 -3
  285. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/revolving-light.d.mts +3 -3
  286. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/roiling-mass.d.mts +3 -3
  287. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/siren-light.d.mts +5 -5
  288. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/smoke-patch.d.mts +6 -5
  289. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/star-light.d.mts +3 -3
  290. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/sunburst.d.mts +5 -5
  291. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/swirling-rainbow.d.mts +4 -3
  292. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/torch.d.mts +5 -5
  293. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/vortex.d.mts +5 -5
  294. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/wave.d.mts +5 -5
  295. package/src/foundry/client/pixi/webgl/shaders/lighting/illumination-lighting.d.mts +3 -3
  296. package/src/foundry/client/pixi/webgl/shaders/region/adjust-darkness-level.d.mts +7 -7
  297. package/src/foundry/client/pixi/webgl/shaders/region/base.d.mts +4 -4
  298. package/src/foundry/client/pixi/webgl/shaders/region/highlight.d.mts +3 -3
  299. package/src/foundry/client/pixi/webgl/shaders/samplers/base-sampler.d.mts +4 -4
  300. package/src/foundry/client/pixi/webgl/shaders/samplers/baseline-illumination.d.mts +3 -3
  301. package/src/foundry/client/pixi/webgl/shaders/samplers/color-adjustment.d.mts +5 -5
  302. package/src/foundry/client/pixi/webgl/shaders/samplers/depth.d.mts +3 -3
  303. package/src/foundry/client/pixi/webgl/shaders/samplers/fog-of-war.d.mts +3 -3
  304. package/src/foundry/client/pixi/webgl/shaders/samplers/occlusion.d.mts +3 -3
  305. package/src/foundry/client/pixi/webgl/shaders/samplers/primary.d.mts +4 -4
  306. package/src/foundry/client/pixi/webgl/shaders/samplers/token-ring.d.mts +4 -6
  307. package/src/foundry/client/pixi/webgl/shaders/vision/background-vision.d.mts +3 -3
  308. package/src/foundry/client/pixi/webgl/shaders/vision/base-vision.d.mts +3 -3
  309. package/src/foundry/client/pixi/webgl/shaders/vision/coloration-vision.d.mts +3 -3
  310. package/src/foundry/client/pixi/webgl/shaders/vision/effects/amplification.d.mts +3 -3
  311. package/src/foundry/client/pixi/webgl/shaders/vision/effects/wave.d.mts +5 -5
  312. package/src/foundry/client/pixi/webgl/shaders/vision/illumination-vision.d.mts +3 -3
  313. package/src/foundry/client/pixi/webgl/shaders/weather/base-weather.d.mts +14 -15
  314. package/src/foundry/client/pixi/webgl/shaders/weather/effect.d.mts +20 -27
  315. package/src/foundry/client/pixi/webgl/shaders/weather/fog.d.mts +5 -5
  316. package/src/foundry/client/pixi/webgl/shaders/weather/rain.d.mts +5 -5
  317. package/src/foundry/client/pixi/webgl/shaders/weather/snow.d.mts +5 -5
  318. package/src/foundry/client/pixi/workers/texture-worker.d.mts +5 -5
  319. package/src/foundry/client/tours/setup-tour.d.mts +15 -10
  320. package/src/foundry/client/ui/dialog.d.mts +3 -3
  321. package/src/foundry/client/ui/dragdrop.d.mts +33 -27
  322. package/src/foundry/client/ui/editor.d.mts +29 -21
  323. package/src/foundry/client/ui/filepicker.d.mts +42 -37
  324. package/src/foundry/client/ui/filter.d.mts +60 -48
  325. package/src/foundry/client/ui/forms.d.mts +22 -22
  326. package/src/foundry/client/ui/prosemirror.d.mts +15 -7
  327. package/src/foundry/client/ui/secrets.d.mts +43 -28
  328. package/src/foundry/client/ui/tabs.d.mts +40 -33
  329. package/src/foundry/client-esm/_module.d.mts +5 -5
  330. package/src/foundry/client-esm/_types.d.mts +2 -1
  331. package/src/foundry/client-esm/applications/api/application.d.mts +93 -31
  332. package/src/foundry/client-esm/applications/api/dialog.d.mts +23 -23
  333. package/src/foundry/client-esm/applications/api/document-sheet.d.mts +85 -32
  334. package/src/foundry/client-esm/applications/api/handlebars-application.d.mts +1 -1
  335. package/src/foundry/client-esm/applications/apps/av/camera-popout.d.mts +1 -1
  336. package/src/foundry/client-esm/applications/apps/av/cameras.d.mts +2 -2
  337. package/src/foundry/client-esm/applications/apps/compendium-art-config.d.mts +4 -5
  338. package/src/foundry/client-esm/applications/apps/file-picker.d.mts +2 -2
  339. package/src/foundry/client-esm/applications/apps/grid-config.d.mts +3 -3
  340. package/src/foundry/client-esm/applications/apps/image-popout.d.mts +1 -1
  341. package/src/foundry/client-esm/applications/apps/permission-config.d.mts +1 -1
  342. package/src/foundry/client-esm/applications/dice/roll-resolver.d.mts +4 -4
  343. package/src/foundry/client-esm/applications/elements/file-picker.d.mts +1 -1
  344. package/src/foundry/client-esm/applications/elements/prosemirror-editor.d.mts +1 -1
  345. package/src/foundry/client-esm/applications/hud/drawing-hud.d.mts +1 -1
  346. package/src/foundry/client-esm/applications/hud/tile-hud.d.mts +1 -1
  347. package/src/foundry/client-esm/applications/hud/token-hud.d.mts +1 -1
  348. package/src/foundry/client-esm/applications/sheets/active-effect-config.d.mts +3 -3
  349. package/src/foundry/client-esm/applications/sheets/actor-sheet.d.mts +2 -2
  350. package/src/foundry/client-esm/applications/sheets/adventure-exporter.d.mts +3 -3
  351. package/src/foundry/client-esm/applications/sheets/adventure-importer.d.mts +3 -3
  352. package/src/foundry/client-esm/applications/sheets/ambient-light-config.d.mts +5 -5
  353. package/src/foundry/client-esm/applications/sheets/ambient-sound-config.d.mts +4 -4
  354. package/src/foundry/client-esm/applications/sheets/card-config.d.mts +3 -3
  355. package/src/foundry/client-esm/applications/sheets/cards-config.d.mts +2 -2
  356. package/src/foundry/client-esm/applications/sheets/combatant-config.d.mts +3 -3
  357. package/src/foundry/client-esm/applications/sheets/drawing-config.d.mts +3 -3
  358. package/src/foundry/client-esm/applications/sheets/folder-config.d.mts +3 -3
  359. package/src/foundry/client-esm/applications/sheets/item-sheet.d.mts +2 -2
  360. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-category-config.d.mts +3 -3
  361. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-sheet.d.mts +3 -3
  362. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-sheet.d.mts +3 -3
  363. package/src/foundry/client-esm/applications/sheets/macro-config.d.mts +3 -3
  364. package/src/foundry/client-esm/applications/sheets/note-config.d.mts +3 -3
  365. package/src/foundry/client-esm/applications/sheets/playlist-config.d.mts +3 -3
  366. package/src/foundry/client-esm/applications/sheets/playlist-sound-config.d.mts +3 -3
  367. package/src/foundry/client-esm/applications/sheets/region-behavior-config.d.mts +3 -3
  368. package/src/foundry/client-esm/applications/sheets/region-config.d.mts +3 -3
  369. package/src/foundry/client-esm/applications/sheets/roll-table-config.d.mts +3 -3
  370. package/src/foundry/client-esm/applications/sheets/roll-table-sheet.d.mts +3 -3
  371. package/src/foundry/client-esm/applications/sheets/scene-config.d.mts +3 -3
  372. package/src/foundry/client-esm/applications/sheets/table-result-config.d.mts +3 -3
  373. package/src/foundry/client-esm/applications/sheets/template-config.d.mts +3 -3
  374. package/src/foundry/client-esm/applications/sheets/tile-config.d.mts +3 -3
  375. package/src/foundry/client-esm/applications/sheets/token/mixin.d.mts +1 -0
  376. package/src/foundry/client-esm/applications/sheets/token/token-config.d.mts +3 -3
  377. package/src/foundry/client-esm/applications/sheets/user-config.d.mts +4 -4
  378. package/src/foundry/client-esm/applications/sheets/wall-config.d.mts +3 -3
  379. package/src/foundry/client-esm/applications/sidebar/apps/chat-popout.d.mts +1 -1
  380. package/src/foundry/client-esm/applications/sidebar/sidebar-tab.d.mts +2 -2
  381. package/src/foundry/client-esm/applications/sidebar/tabs/actor-directory.d.mts +1 -1
  382. package/src/foundry/client-esm/applications/sidebar/tabs/cards-directory.d.mts +1 -1
  383. package/src/foundry/client-esm/applications/sidebar/tabs/combat-tracker.d.mts +242 -1
  384. package/src/foundry/client-esm/applications/sidebar/tabs/item-directory.d.mts +1 -1
  385. package/src/foundry/client-esm/applications/sidebar/tabs/journal-directory.d.mts +1 -1
  386. package/src/foundry/client-esm/applications/sidebar/tabs/macro-directory.d.mts +1 -1
  387. package/src/foundry/client-esm/applications/sidebar/tabs/playlist-directory.d.mts +1 -1
  388. package/src/foundry/client-esm/applications/sidebar/tabs/roll-table-directory.d.mts +1 -1
  389. package/src/foundry/client-esm/applications/sidebar/tabs/scene-directory.d.mts +1 -1
  390. package/src/foundry/client-esm/applications/ui/region-legend.d.mts +2 -2
  391. package/src/foundry/client-esm/applications/ux/context-menu.d.mts +56 -36
  392. package/src/foundry/client-esm/audio/_types.d.mts +2 -0
  393. package/src/foundry/client-esm/audio/biquad.d.mts +76 -26
  394. package/src/foundry/client-esm/audio/cache.d.mts +31 -20
  395. package/src/foundry/client-esm/audio/convolver.d.mts +47 -25
  396. package/src/foundry/client-esm/audio/helper.d.mts +124 -80
  397. package/src/foundry/client-esm/audio/sound.d.mts +202 -97
  398. package/src/foundry/client-esm/audio/timeout.d.mts +28 -12
  399. package/src/foundry/client-esm/canvas/edges/collision.d.mts +12 -4
  400. package/src/foundry/client-esm/canvas/edges/edge.d.mts +13 -8
  401. package/src/foundry/client-esm/canvas/edges/edges.d.mts +3 -2
  402. package/src/foundry/client-esm/canvas/edges/vertex.d.mts +12 -10
  403. package/src/foundry/client-esm/canvas/regions/geometry.d.mts +14 -7
  404. package/src/foundry/client-esm/canvas/regions/mesh.d.mts +25 -14
  405. package/src/foundry/client-esm/canvas/regions/polygon-tree.d.mts +50 -19
  406. package/src/foundry/client-esm/canvas/regions/shape.d.mts +45 -34
  407. package/src/foundry/client-esm/canvas/scene-manager.d.mts +7 -6
  408. package/src/foundry/client-esm/canvas/smaa/blend.d.mts +14 -3
  409. package/src/foundry/client-esm/canvas/smaa/edges.d.mts +25 -3
  410. package/src/foundry/client-esm/canvas/smaa/smaa.d.mts +119 -20
  411. package/src/foundry/client-esm/canvas/smaa/weights.d.mts +26 -3
  412. package/src/foundry/client-esm/canvas/sources/base-effect-source.d.mts +69 -39
  413. package/src/foundry/client-esm/canvas/sources/base-light-source.d.mts +66 -40
  414. package/src/foundry/client-esm/canvas/sources/global-light-source.d.mts +78 -19
  415. package/src/foundry/client-esm/canvas/sources/point-darkness-source.d.mts +37 -20
  416. package/src/foundry/client-esm/canvas/sources/point-effect-source.d.mts +39 -20
  417. package/src/foundry/client-esm/canvas/sources/point-light-source.d.mts +41 -12
  418. package/src/foundry/client-esm/canvas/sources/point-movement-source.d.mts +15 -4
  419. package/src/foundry/client-esm/canvas/sources/point-sound-source.d.mts +29 -14
  420. package/src/foundry/client-esm/canvas/sources/point-vision-source.d.mts +84 -39
  421. package/src/foundry/client-esm/canvas/sources/rendered-effect-source.d.mts +115 -41
  422. package/src/foundry/client-esm/canvas/tokens/ring-config.d.mts +83 -21
  423. package/src/foundry/client-esm/canvas/tokens/ring-data.d.mts +66 -93
  424. package/src/foundry/client-esm/canvas/tokens/ring.d.mts +146 -51
  425. package/src/foundry/client-esm/client.d.mts +16 -16
  426. package/src/foundry/client-esm/data/_module.d.mts +1 -1
  427. package/src/foundry/client-esm/data/calendar.d.mts +26 -39
  428. package/src/foundry/client-esm/data/client-backend.d.mts +6 -6
  429. package/src/foundry/client-esm/data/region-behaviors/adjust-darkness-level.d.mts +1 -1
  430. package/src/foundry/client-esm/data/region-behaviors/base.d.mts +5 -5
  431. package/src/foundry/client-esm/data/region-behaviors/display-scrolling-text.d.mts +2 -2
  432. package/src/foundry/client-esm/data/terrain-data.d.mts +1 -1
  433. package/src/foundry/client-esm/dice/parser.d.mts +5 -27
  434. package/src/foundry/client-esm/dice/roll.d.mts +63 -80
  435. package/src/foundry/client-esm/dice/terms/coin.d.mts +4 -8
  436. package/src/foundry/client-esm/dice/terms/dice.d.mts +85 -64
  437. package/src/foundry/client-esm/dice/terms/die.d.mts +7 -7
  438. package/src/foundry/client-esm/dice/terms/fate.d.mts +5 -5
  439. package/src/foundry/client-esm/dice/terms/function.d.mts +13 -16
  440. package/src/foundry/client-esm/dice/terms/numeric.d.mts +2 -4
  441. package/src/foundry/client-esm/dice/terms/operator.d.mts +1 -1
  442. package/src/foundry/client-esm/dice/terms/parenthetical.d.mts +8 -9
  443. package/src/foundry/client-esm/dice/terms/pool.d.mts +13 -28
  444. package/src/foundry/client-esm/dice/terms/string.d.mts +3 -3
  445. package/src/foundry/client-esm/dice/terms/term.d.mts +10 -5
  446. package/src/foundry/client-esm/dice/twister.d.mts +3 -3
  447. package/src/foundry/client-esm/documents/_module.d.mts +1 -1
  448. package/src/foundry/client-esm/helpers/_types.d.mts +12 -46
  449. package/src/foundry/client-esm/helpers/compendium-art.d.mts +57 -4
  450. package/src/foundry/client-esm/packages/_module.d.mts +1 -1
  451. package/src/foundry/client-esm/packages/_types.d.mts +2 -0
  452. package/src/foundry/client-esm/utils/_module.d.mts +1 -1
  453. package/src/foundry/client-esm/utils/_types.d.mts +2 -1
  454. package/src/foundry/common/_types.d.mts +1 -1
  455. package/src/foundry/common/abstract/_module.d.mts +1 -0
  456. package/src/foundry/common/abstract/_types.d.mts +60 -54
  457. package/src/foundry/common/abstract/backend.d.mts +28 -16
  458. package/src/foundry/common/abstract/data.d.mts +133 -116
  459. package/src/foundry/common/abstract/document.d.mts +1233 -440
  460. package/src/foundry/common/abstract/embedded-collection.d.mts +2 -2
  461. package/src/foundry/common/abstract/singleton-collection.d.mts +1 -1
  462. package/src/foundry/common/abstract/type-data.d.mts +35 -43
  463. package/src/foundry/common/config.d.mts +3 -3
  464. package/src/foundry/common/constants.d.mts +27 -26
  465. package/src/foundry/common/data/_types.d.mts +2 -0
  466. package/src/foundry/common/data/data.d.mts +189 -87
  467. package/src/foundry/common/data/fields.d.mts +579 -258
  468. package/src/foundry/common/data/validation-failure.d.mts +9 -4
  469. package/src/foundry/common/documents/_types.d.mts +16 -9
  470. package/src/foundry/common/documents/active-effect.d.mts +280 -180
  471. package/src/foundry/common/documents/actor-delta.d.mts +317 -70
  472. package/src/foundry/common/documents/actor.d.mts +304 -103
  473. package/src/foundry/common/documents/adventure.d.mts +254 -140
  474. package/src/foundry/common/documents/ambient-light.d.mts +267 -76
  475. package/src/foundry/common/documents/ambient-sound.d.mts +267 -110
  476. package/src/foundry/common/documents/card.d.mts +267 -176
  477. package/src/foundry/common/documents/cards.d.mts +299 -128
  478. package/src/foundry/common/documents/chat-message.d.mts +276 -160
  479. package/src/foundry/common/documents/combat.d.mts +300 -91
  480. package/src/foundry/common/documents/combatant.d.mts +283 -88
  481. package/src/foundry/common/documents/drawing.d.mts +286 -207
  482. package/src/foundry/common/documents/fog-exploration.d.mts +258 -72
  483. package/src/foundry/common/documents/folder.d.mts +248 -85
  484. package/src/foundry/common/documents/item.d.mts +305 -101
  485. package/src/foundry/common/documents/journal-entry-page.d.mts +279 -190
  486. package/src/foundry/common/documents/journal-entry.d.mts +294 -70
  487. package/src/foundry/common/documents/macro.d.mts +254 -134
  488. package/src/foundry/common/documents/measured-template.d.mts +293 -137
  489. package/src/foundry/common/documents/note.d.mts +274 -151
  490. package/src/foundry/common/documents/playlist-sound.d.mts +260 -96
  491. package/src/foundry/common/documents/playlist.d.mts +279 -122
  492. package/src/foundry/common/documents/region-behavior.d.mts +305 -64
  493. package/src/foundry/common/documents/region.d.mts +309 -90
  494. package/src/foundry/common/documents/roll-table.d.mts +286 -104
  495. package/src/foundry/common/documents/scene.d.mts +276 -344
  496. package/src/foundry/common/documents/setting.d.mts +229 -55
  497. package/src/foundry/common/documents/table-result.d.mts +267 -96
  498. package/src/foundry/common/documents/tile.d.mts +301 -172
  499. package/src/foundry/common/documents/token.d.mts +350 -452
  500. package/src/foundry/common/documents/user.d.mts +256 -146
  501. package/src/foundry/common/documents/wall.d.mts +272 -157
  502. package/src/foundry/common/grid/_types.d.mts +2 -0
  503. package/src/foundry/common/grid/base.d.mts +58 -37
  504. package/src/foundry/common/grid/hexagonal.d.mts +19 -19
  505. package/src/foundry/common/grid/square.d.mts +1 -1
  506. package/src/foundry/common/packages/_module.d.mts +5 -5
  507. package/src/foundry/common/packages/_types.d.mts +2 -0
  508. package/src/foundry/common/packages/base-module.d.mts +6 -24
  509. package/src/foundry/common/packages/base-package.d.mts +18 -16
  510. package/src/foundry/common/packages/base-system.d.mts +6 -78
  511. package/src/foundry/common/packages/base-world.d.mts +7 -60
  512. package/src/foundry/common/packages/sub-types.d.mts +1 -1
  513. package/src/foundry/common/primitives/array.d.mts +3 -3
  514. package/src/foundry/common/primitives/math.d.mts +7 -1
  515. package/src/foundry/common/primitives/number.d.mts +1 -1
  516. package/src/foundry/common/primitives/set.d.mts +17 -14
  517. package/src/foundry/common/prosemirror/_types.d.mts +2 -0
  518. package/src/foundry/common/prosemirror/dropdown.d.mts +1 -1
  519. package/src/foundry/common/prosemirror/highlight-matches-plugin.d.mts +1 -1
  520. package/src/foundry/common/prosemirror/menu.d.mts +3 -3
  521. package/src/foundry/common/prosemirror/plugin.d.mts +1 -1
  522. package/src/foundry/common/prosemirror/schema/index.d.mts +0 -1
  523. package/src/foundry/common/prosemirror/util.d.mts +1 -1
  524. package/src/foundry/common/utils/bitmask.d.mts +4 -1
  525. package/src/foundry/common/utils/collection.d.mts +59 -24
  526. package/src/foundry/common/utils/event-emitter.d.mts +46 -19
  527. package/src/foundry/common/utils/helpers.d.mts +13 -13
  528. package/src/foundry/common/utils/http.d.mts +2 -2
  529. package/src/foundry/common/utils/string-tree.d.mts +45 -39
  530. package/src/foundry/common/utils/word-tree.d.mts +10 -23
  531. package/src/tsconfig.json +1 -5
  532. package/src/types/augments/pixi.d.mts +28 -28
  533. package/src/types/config.d.mts +12 -12
  534. package/src/types/documentConfiguration.d.mts +282 -597
  535. package/src/types/lib.d.mts +4 -4
  536. package/src/types/workers/image-compressor.d.mts +1 -1
  537. package/src/utils/index.d.mts +255 -60
  538. package/tsconfig.json +29 -0
  539. package/tsconfig.main.json +8 -0
  540. package/tsconfig.miscellaneous.json +16 -0
  541. package/src/foundry/client/apps/placeables/light-config.d.mts +0 -100
  542. package/src/foundry/client/apps/placeables/sound-config.d.mts +0 -44
  543. package/src/foundry/common/documents/module.d.mts +0 -35
@@ -1,21 +1,490 @@
1
- import type { InexactPartial } from "fvtt-types/utils";
2
- import type Document from "../../../common/abstract/document.d.mts";
3
- import type BaseRollTable from "../../../common/documents/roll-table.d.mts";
1
+ import type { InexactPartial, Merge } from "fvtt-types/utils";
2
+ import type { documents } from "#client-esm/client.d.mts";
3
+ import type Document from "#common/abstract/document.d.mts";
4
+ import type { DataSchema } from "#common/data/fields.d.mts";
5
+
6
+ import fields = foundry.data.fields;
4
7
 
5
8
  declare global {
6
9
  namespace RollTable {
7
- type Metadata = Document.MetadataFor<RollTable>;
10
+ /**
11
+ * The document's name.
12
+ */
13
+ type Name = "RollTable";
14
+
15
+ /**
16
+ * The arguments to construct the document.
17
+ */
18
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
19
+
20
+ /**
21
+ * The documents embedded within `RollTable`.
22
+ */
23
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
24
+
25
+ /**
26
+ * The implementation of the `RollTable` document instance configured through `CONFIG.RollTable.documentClass` in Foundry and
27
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredRollTable | `fvtt-types/configuration/ConfiguredRollTable`} in fvtt-types.
28
+ */
29
+ type Implementation = Document.ImplementationFor<Name>;
30
+
31
+ /**
32
+ * The implementation of the `RollTable` document configured through `CONFIG.RollTable.documentClass` in Foundry and
33
+ * {@link DocumentClassConfig | `DocumentClassConfig`} in fvtt-types.
34
+ */
35
+ type ImplementationClass = Document.ImplementationClassFor<Name>;
36
+
37
+ /**
38
+ * A document's metadata is special information about the document ranging anywhere from its name,
39
+ * whether it's indexed, or to the permissions a user has over it.
40
+ */
41
+ interface Metadata
42
+ extends Merge<
43
+ Document.Metadata.Default,
44
+ Readonly<{
45
+ name: "RollTable";
46
+ collection: "tables";
47
+ indexed: true;
48
+ compendiumIndexFields: ["_id", "name", "img", "sort", "folder"];
49
+ embedded: Metadata.Embedded;
50
+ label: string;
51
+ labelPlural: string;
52
+ schemaVersion: string;
53
+ }>
54
+ > {}
55
+
56
+ namespace Metadata {
57
+ /**
58
+ * The embedded metadata
59
+ */
60
+ interface Embedded {
61
+ TableResult: "results";
62
+ }
63
+ }
8
64
 
9
- type ConfiguredClass = Document.ConfiguredClassForName<"RollTable">;
10
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"RollTable">;
65
+ /**
66
+ * A document's parent is something that can contain it.
67
+ * For example an `Item` can be contained by an `Actor` which makes `Actor` one of its possible parents.
68
+ */
69
+ type Parent = null;
11
70
 
12
- interface DatabaseOperations extends Document.Database.Operations<RollTable> {}
71
+ /**
72
+ * A document's direct descendants are documents that are contained directly within its schema.
73
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
74
+ */
75
+ type DirectDescendant = TableResult.Stored;
13
76
 
14
- // Helpful aliases
15
- type ConstructorData = BaseRollTable.ConstructorData;
16
- type UpdateData = BaseRollTable.UpdateData;
17
- type Schema = BaseRollTable.Schema;
18
- type Source = BaseRollTable.Source;
77
+ /**
78
+ * A document's direct descendants are documents that are contained directly within its schema.
79
+ * This is a union of all such classes, or never if the document doesn't have any descendants.
80
+ */
81
+ type DirectDescendantClass = TableResult.ImplementationClass;
82
+
83
+ /**
84
+ * A document's descendants are any documents that are contained within, either within its schema
85
+ * or its descendant's schemas.
86
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
87
+ */
88
+ type Descendant = DirectDescendant;
89
+
90
+ /**
91
+ * A document's descendants are any child documents, grandchild documents, etc.
92
+ * This is a union of all classes, or never if the document doesn't have any descendants.
93
+ */
94
+ type DescendantClass = DirectDescendantClass;
95
+ /**
96
+ * Types of `CompendiumCollection` this document might be contained in.
97
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
98
+ */
99
+ // Note: Takes any document in the heritage chain (i.e. itself or any parent, transitive or not) that can be contained in a compendium.
100
+ type Pack = CompendiumCollection.ForDocument<Name>;
101
+
102
+ /**
103
+ * An embedded document is a document contained in another.
104
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
105
+ *
106
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
107
+ */
108
+ type Embedded = Document.ImplementationFor<Embedded.Name>;
109
+
110
+ namespace Embedded {
111
+ /**
112
+ * An embedded document is a document contained in another.
113
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
114
+ *
115
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
116
+ */
117
+ type Name = keyof Metadata.Embedded;
118
+
119
+ /**
120
+ * Gets the collection name for an embedded document.
121
+ */
122
+ type CollectionNameOf<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionNameFor<
123
+ Metadata.Embedded,
124
+ CollectionName
125
+ >;
126
+
127
+ /**
128
+ * Gets the collection document for an embedded document.
129
+ */
130
+ // TODO(LukeAbby): There's a circularity. Should be `Document.Embedded.CollectionDocumentFor<Metadata.Embedded, CollectionName>`
131
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
132
+ type DocumentFor<CollectionName extends Embedded.CollectionName> = Document.Any;
133
+
134
+ /**
135
+ * Gets the collection for an embedded document.
136
+ */
137
+ type CollectionFor<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionFor<
138
+ // TODO(LukeAbby): This should be `TokenDocument.Implementation` but this causes a circularity.
139
+ Document.Any,
140
+ Metadata.Embedded,
141
+ CollectionName
142
+ >;
143
+
144
+ /**
145
+ * A valid name to refer to a collection embedded in this document. For example an `Actor`
146
+ * has the key `"items"` which contains `Item` instance which would make both `"Item" | "Items"`
147
+ * valid keys (amongst others).
148
+ */
149
+ type CollectionName = Document.Embedded.CollectionName<Metadata.Embedded>;
150
+ }
151
+
152
+ /**
153
+ * The name of the world or embedded collection this document can find itself in.
154
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
155
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
156
+ */
157
+ type ParentCollectionName = Metadata["collection"];
158
+
159
+ /**
160
+ * The world collection that contains `RollTable`s. Will be `never` if none exists.
161
+ */
162
+ type CollectionClass = RollTables.ConfiguredClass;
163
+
164
+ /**
165
+ * The world collection that contains `RollTable`s. Will be `never` if none exists.
166
+ */
167
+ type Collection = RollTables.Configured;
168
+
169
+ /**
170
+ * An instance of `RollTable` that comes from the database but failed validation meaining that
171
+ * its `system` and `_source` could theoretically be anything.
172
+ */
173
+ interface Invalid extends Document.Invalid<RollTable.Implementation> {}
174
+
175
+ /**
176
+ * An instance of `RollTable` that comes from the database.
177
+ */
178
+ interface Stored extends Document.Stored<RollTable.Implementation> {}
179
+
180
+ /**
181
+ * The data put in {@link RollTable._source | `RollTable#_source`}. This data is what was
182
+ * persisted to the database and therefore it must be valid JSON.
183
+ *
184
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
185
+ * but initialized as a {@link Set | `Set`}.
186
+ */
187
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
188
+
189
+ /**
190
+ * @deprecated {@link RollTable.Source | `RollTable.Source`}
191
+ */
192
+ type PersistedData = Source;
193
+
194
+ /**
195
+ * The data necessary to create a document. Used in places like {@link RollTable.create | `RollTable.create`}
196
+ * and {@link RollTable | `new RollTable(...)`}.
197
+ *
198
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
199
+ * with the right values. This means you can pass a `Set` instance, an array of values,
200
+ * a generator, or any other iterable.
201
+ */
202
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
203
+
204
+ /**
205
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
206
+ * {@link RollTable.name | `RollTable#name`}.
207
+ *
208
+ * This is data transformed from {@link RollTable.Source | `RollTable.Source`} and turned into more
209
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
210
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
211
+ */
212
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
213
+
214
+ /**
215
+ * The data used to update a document, for example {@link RollTable.update | `RollTable#update`}.
216
+ * It is a distinct type from {@link RollTable.CreateData | `DeepPartial<RollTable.CreateData>`} because
217
+ * it has different rules for `null` and `undefined`.
218
+ */
219
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
220
+
221
+ /**
222
+ * The schema for {@link RollTable | `RollTable`}. This is the source of truth for how an RollTable document
223
+ * must be structured.
224
+ *
225
+ * Foundry uses this schema to validate the structure of the {@link RollTable | `RollTable`}. For example
226
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
227
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
228
+ * starting as an array in the database, initialized as a set, and allows updates with any
229
+ * iterable.
230
+ */
231
+ interface Schema extends DataSchema {
232
+ /**
233
+ * The _id which uniquely identifies this RollTable document
234
+ * @defaultValue `null`
235
+ */
236
+ _id: fields.DocumentIdField;
237
+
238
+ /**
239
+ * The name of this RollTable
240
+ * @defaultValue `""`
241
+ */
242
+ name: fields.StringField<{ required: true; blank: false; textSearch: true }>;
243
+
244
+ /**
245
+ * An image file path which provides the thumbnail artwork for this RollTable
246
+ * @defaultValue `BaseRollTable.DEFAULT_ICON`
247
+ */
248
+ img: fields.FilePathField<{
249
+ categories: ["IMAGE"];
250
+ initial: () => typeof documents.BaseRollTable.DEFAULT_ICON;
251
+ }>;
252
+
253
+ /**
254
+ * The HTML text description for this RollTable document
255
+ * @defaultValue `""`
256
+ */
257
+ description: fields.StringField<{ textSearch: true }>;
258
+
259
+ /**
260
+ * A Collection of TableResult embedded documents which belong to this RollTable
261
+ * @defaultValue `[]`
262
+ */
263
+ results: fields.EmbeddedCollectionField<typeof documents.BaseTableResult, RollTable.Implementation>;
264
+
265
+ /**
266
+ * The Roll formula which determines the results chosen from the table
267
+ * @defaultValue `""`
268
+ */
269
+ formula: fields.StringField;
270
+
271
+ /**
272
+ * Are results from this table drawn with replacement?
273
+ * @defaultValue `true`
274
+ */
275
+ replacement: fields.BooleanField<{ initial: true }>;
276
+
277
+ /**
278
+ * Is the Roll result used to draw from this RollTable displayed in chat?
279
+ * @defaultValue `true`
280
+ */
281
+ displayRoll: fields.BooleanField<{ initial: true }>;
282
+
283
+ /**
284
+ * The _id of a Folder which contains this RollTable
285
+ * @defaultValue `null`
286
+ */
287
+ folder: fields.ForeignDocumentField<typeof documents.BaseFolder>;
288
+
289
+ /**
290
+ * The numeric sort value which orders this RollTable relative to its siblings
291
+ * @defaultValue `0`
292
+ */
293
+ sort: fields.IntegerSortField;
294
+
295
+ /**
296
+ * An object which configures ownership of this RollTable
297
+ * @defaultValue see {@link fields.DocumentOwnershipField | `fields.DocumentOwnershipField`}
298
+ */
299
+ ownership: fields.DocumentOwnershipField;
300
+
301
+ /**
302
+ * An object of optional key/value flags
303
+ * @defaultValue `{}`
304
+ */
305
+ flags: fields.ObjectField.FlagsField<Name>;
306
+
307
+ /**
308
+ * An object of creation and access information
309
+ * @defaultValue see {@link fields.DocumentStatsField | `fields.DocumentStatsField`}
310
+ */
311
+ _stats: fields.DocumentStatsField;
312
+ }
313
+
314
+ namespace Database {
315
+ /** Options passed along in Get operations for RollTables */
316
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<RollTable.Parent> {}
317
+
318
+ /** Options passed along in Create operations for RollTables */
319
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
320
+ extends foundry.abstract.types.DatabaseCreateOperation<RollTable.CreateData, RollTable.Parent, Temporary> {}
321
+
322
+ /** Options passed along in Delete operations for RollTables */
323
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<RollTable.Parent> {}
324
+
325
+ /** Options passed along in Update operations for RollTables */
326
+ interface Update extends foundry.abstract.types.DatabaseUpdateOperation<RollTable.UpdateData, RollTable.Parent> {}
327
+
328
+ /** Operation for {@link RollTable.createDocuments | `RollTable.createDocuments`} */
329
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
330
+ extends Document.Database.CreateOperation<RollTable.Database.Create<Temporary>> {}
331
+
332
+ /** Operation for {@link RollTable.updateDocuments | `RollTable.updateDocuments`} */
333
+ interface UpdateDocumentsOperation
334
+ extends Document.Database.UpdateDocumentsOperation<RollTable.Database.Update> {}
335
+
336
+ /** Operation for {@link RollTable.deleteDocuments | `RollTable.deleteDocuments`} */
337
+ interface DeleteDocumentsOperation
338
+ extends Document.Database.DeleteDocumentsOperation<RollTable.Database.Delete> {}
339
+
340
+ /** Operation for {@link RollTable.create | `RollTable.create`} */
341
+ interface CreateOperation<Temporary extends boolean | undefined>
342
+ extends Document.Database.CreateOperation<RollTable.Database.Create<Temporary>> {}
343
+
344
+ /** Operation for {@link RollTable.update | `RollTable#update`} */
345
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
346
+
347
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
348
+
349
+ /** Options for {@link RollTable.get | `RollTable.get`} */
350
+ interface GetOptions extends Document.Database.GetOptions {}
351
+
352
+ /** Options for {@link RollTable._preCreate | `RollTable#_preCreate`} */
353
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
354
+
355
+ /** Options for {@link RollTable._onCreate | `RollTable#_onCreate`} */
356
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
357
+
358
+ /** Operation for {@link RollTable._preCreateOperation | `RollTable._preCreateOperation`} */
359
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<RollTable.Database.Create> {}
360
+
361
+ /** Operation for {@link RollTable._onCreateOperation | `RollTable#_onCreateOperation`} */
362
+ interface OnCreateOperation extends RollTable.Database.Create {}
363
+
364
+ /** Options for {@link RollTable._preUpdate | `RollTable#_preUpdate`} */
365
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
366
+
367
+ /** Options for {@link RollTable._onUpdate | `RollTable#_onUpdate`} */
368
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
369
+
370
+ /** Operation for {@link RollTable._preUpdateOperation | `RollTable._preUpdateOperation`} */
371
+ interface PreUpdateOperation extends RollTable.Database.Update {}
372
+
373
+ /** Operation for {@link RollTable._onUpdateOperation | `RollTable._preUpdateOperation`} */
374
+ interface OnUpdateOperation extends RollTable.Database.Update {}
375
+
376
+ /** Options for {@link RollTable._preDelete | `RollTable#_preDelete`} */
377
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
378
+
379
+ /** Options for {@link RollTable._onDelete | `RollTable#_onDelete`} */
380
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
381
+
382
+ /** Options for {@link RollTable._preDeleteOperation | `RollTable#_preDeleteOperation`} */
383
+ interface PreDeleteOperation extends RollTable.Database.Delete {}
384
+
385
+ /** Options for {@link RollTable._onDeleteOperation | `RollTable#_onDeleteOperation`} */
386
+ interface OnDeleteOperation extends RollTable.Database.Delete {}
387
+
388
+ /** Context for {@link RollTable._onDeleteOperation | `RollTable._onDeleteOperation`} */
389
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<RollTable.Parent> {}
390
+
391
+ /** Context for {@link RollTable._onCreateDocuments | `RollTable._onCreateDocuments`} */
392
+ interface OnCreateDocumentsContext extends Document.ModificationContext<RollTable.Parent> {}
393
+
394
+ /** Context for {@link RollTable._onUpdateDocuments | `RollTable._onUpdateDocuments`} */
395
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<RollTable.Parent> {}
396
+
397
+ /**
398
+ * Options for {@link RollTable._preCreateDescendantDocuments | `RollTable#_preCreateDescendantDocuments`}
399
+ * and {@link RollTable._onCreateDescendantDocuments | `RollTable#_onCreateDescendantDocuments`}
400
+ */
401
+ interface CreateOptions extends Document.Database.CreateOptions<RollTable.Database.Create> {}
402
+
403
+ /**
404
+ * Options for {@link RollTable._preUpdateDescendantDocuments | `RollTable#_preUpdateDescendantDocuments`}
405
+ * and {@link RollTable._onUpdateDescendantDocuments | `RollTable#_onUpdateDescendantDocuments`}
406
+ */
407
+ interface UpdateOptions extends Document.Database.UpdateOptions<RollTable.Database.Update> {}
408
+
409
+ /**
410
+ * Options for {@link RollTable._preDeleteDescendantDocuments | `RollTable#_preDeleteDescendantDocuments`}
411
+ * and {@link RollTable._onDeleteDescendantDocuments | `RollTable#_onDeleteDescendantDocuments`}
412
+ */
413
+ interface DeleteOptions extends Document.Database.DeleteOptions<RollTable.Database.Delete> {}
414
+ }
415
+
416
+ /**
417
+ * An object containing the executed Roll and the produced results
418
+ */
419
+ interface Draw {
420
+ /**
421
+ * The Dice roll which generated the draw
422
+ */
423
+ roll: Roll;
424
+
425
+ /**
426
+ * An array of drawn TableResult documents
427
+ */
428
+ results: Document.ToConfiguredInstance<typeof foundry.documents.BaseTableResult>[];
429
+ }
430
+
431
+ /**
432
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
433
+ */
434
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
435
+
436
+ namespace Flags {
437
+ /**
438
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
439
+ */
440
+ type Scope = Document.FlagKeyOf<Flags>;
441
+
442
+ /**
443
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
444
+ */
445
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
446
+
447
+ /**
448
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
449
+ */
450
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
451
+ }
452
+
453
+ type PreCreateDescendantDocumentsArgs = Document.PreCreateDescendantDocumentsArgs<
454
+ RollTable.Stored,
455
+ RollTable.DirectDescendant,
456
+ RollTable.Metadata.Embedded
457
+ >;
458
+
459
+ type OnCreateDescendantDocumentsArgs = Document.OnCreateDescendantDocumentsArgs<
460
+ RollTable.Stored,
461
+ RollTable.DirectDescendant,
462
+ RollTable.Metadata.Embedded
463
+ >;
464
+
465
+ type PreUpdateDescendantDocumentsArgs = Document.PreUpdateDescendantDocumentsArgs<
466
+ RollTable.Stored,
467
+ RollTable.DirectDescendant,
468
+ RollTable.Metadata.Embedded
469
+ >;
470
+
471
+ type OnUpdateDescendantDocumentsArgs = Document.OnUpdateDescendantDocumentsArgs<
472
+ RollTable.Stored,
473
+ RollTable.DirectDescendant,
474
+ RollTable.Metadata.Embedded
475
+ >;
476
+
477
+ type PreDeleteDescendantDocumentsArgs = Document.PreDeleteDescendantDocumentsArgs<
478
+ RollTable.Stored,
479
+ RollTable.DirectDescendant,
480
+ RollTable.Metadata.Embedded
481
+ >;
482
+
483
+ type OnDeleteDescendantDocumentsArgs = Document.OnDeleteDescendantDocumentsArgs<
484
+ RollTable.Stored,
485
+ RollTable.DirectDescendant,
486
+ RollTable.Metadata.Embedded
487
+ >;
19
488
 
20
489
  /**
21
490
  * Optional arguments which customize the draw
@@ -36,7 +505,7 @@ declare global {
36
505
  * One or more table results which have been drawn
37
506
  * @defaultValue `[]`
38
507
  */
39
- results: TableResult[];
508
+ results: TableResult.Implementation[];
40
509
 
41
510
  /**
42
511
  * Whether to automatically display the results in chat
@@ -53,7 +522,7 @@ declare global {
53
522
  /**
54
523
  * Additional options which modify message creation
55
524
  */
56
- interface ToMessageOptions {
525
+ interface ToMessageOptions<Temporary extends boolean | undefined = false> {
57
526
  /**
58
527
  * An optional Roll instance which produced the drawn results
59
528
  */
@@ -69,7 +538,7 @@ declare global {
69
538
  * Additional options which customize the created messages
70
539
  * @defaultValue `{}`
71
540
  */
72
- messageOptions: Document.OnCreateOptions<"ChatMessage">;
541
+ messageOptions: ChatMessage.Database.CreateOperation<Temporary>;
73
542
  }
74
543
 
75
544
  interface RollOptions {
@@ -98,19 +567,42 @@ declare global {
98
567
  */
99
568
  rollable?: boolean | undefined;
100
569
  }
570
+
571
+ /**
572
+ * @deprecated {@link RollTable.Database | `RollTable.DatabaseOperation`}
573
+ */
574
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
575
+ interface DatabaseOperations extends Document.Database.Operations<RollTable.Implementation> {}
576
+
577
+ /**
578
+ * @deprecated {@link RollTable.CreateData | `RollTable.CreateData`}
579
+ */
580
+ interface ConstructorData extends RollTable.CreateData {}
581
+
582
+ /**
583
+ * @deprecated {@link RollTable.implementation | `RollTable.ImplementationClass`}
584
+ */
585
+ type ConfiguredClass = ImplementationClass;
586
+
587
+ /**
588
+ * @deprecated {@link RollTable.Implementation | `RollTable.Implementation`}
589
+ */
590
+ type ConfiguredInstance = Implementation;
101
591
  }
102
592
 
103
593
  /**
104
594
  * The client-side RollTable document which extends the common BaseRollTable model.
105
595
  *
106
- * @see {@link RollTables} The world-level collection of RollTable documents
107
- * @see {@link TableResult} The embedded TableResult document
108
- * @see {@link RollTableConfig} The RollTable configuration application
596
+ * @see {@link RollTables | `RollTables`} The world-level collection of RollTable documents
597
+ * @see {@link TableResult | `TableResult`} The embedded TableResult document
598
+ * @see {@link RollTableConfig | `RollTableConfig`} The RollTable configuration application
109
599
  */
110
600
  class RollTable extends ClientDocumentMixin(foundry.documents.BaseRollTable) {
111
- static override metadata: RollTable.Metadata;
112
-
113
- static get implementation(): RollTable.ConfiguredClass;
601
+ /**
602
+ * @param data - Initial data from which to construct the `RollTable`
603
+ * @param context - Construction context options
604
+ */
605
+ constructor(...args: RollTable.ConstructorArgs);
114
606
 
115
607
  /**
116
608
  * Provide a thumbnail image path used to represent this document.
@@ -125,16 +617,16 @@ declare global {
125
617
  * @param options - Additional options which modify message creation
126
618
  */
127
619
  toMessage(
128
- results: TableResult.ConfiguredInstance[],
620
+ results: TableResult.Implementation[],
129
621
  options?: InexactPartial<RollTable.ToMessageOptions>,
130
- ): Promise<ChatMessage.ConfiguredInstance | undefined>;
622
+ ): Promise<ChatMessage.Implementation | undefined>;
131
623
 
132
624
  /**
133
625
  * Draw a result from the RollTable based on the table formula or a provided Roll instance
134
626
  * @param options - Optional arguments which customize the draw behavior
135
627
  * @returns A Promise which resolves to an object containing the executed roll and the produced results
136
628
  */
137
- draw(options?: RollTable.DrawOptions): Promise<RollTableDraw>;
629
+ draw(options?: RollTable.DrawOptions): Promise<RollTable.Draw>;
138
630
 
139
631
  /**
140
632
  * Draw multiple results from a RollTable, constructing a final synthetic Roll as a dice pool of inner rolls.
@@ -142,7 +634,7 @@ declare global {
142
634
  * @param options - Optional arguments which customize the draw
143
635
  * @returns The drawn results
144
636
  */
145
- drawMany(number: number, options?: InexactPartial<RollTable.DrawOptions>): Promise<RollTableDraw>;
637
+ drawMany(number: number, options?: InexactPartial<RollTable.DrawOptions>): Promise<RollTable.Draw>;
146
638
 
147
639
  /**
148
640
  * Normalize the probabilities of rolling each item in the RollTable based on their assigned weights
@@ -154,7 +646,7 @@ declare global {
154
646
  * @remarks Actually, returns list of TableEntries updated, not the RollTable.
155
647
  * As written, it force updates all records, not just the ones already drawn.
156
648
  */
157
- resetResults(): Promise<TableResult.ConfiguredInstance[]>;
649
+ resetResults(): Promise<TableResult.Stored[]>;
158
650
 
159
651
  /**
160
652
  * Evaluate a RollTable by rolling its formula and retrieving a drawn result.
@@ -176,7 +668,7 @@ declare global {
176
668
  * const customResults = await table.roll({roll});
177
669
  * ```
178
670
  */
179
- roll(options?: RollTable.RollOptions): Promise<RollTableDraw>;
671
+ roll(options?: RollTable.RollOptions): Promise<RollTable.Draw>;
180
672
 
181
673
  /**
182
674
  * Handle a roll from within embedded content.
@@ -189,7 +681,7 @@ declare global {
189
681
  * @param value - The rolled value
190
682
  * @returns An Array of results
191
683
  */
192
- getResultsForRoll(value: number): TableResult.ConfiguredInstance[];
684
+ getResultsForRoll(value: number): TableResult.Stored[];
193
685
 
194
686
  /**
195
687
  * Create embedded roll table markup.
@@ -253,70 +745,161 @@ declare global {
253
745
  options?: TextEditor.EnrichmentOptions,
254
746
  ): Promise<HTMLElement | null>;
255
747
 
256
- protected override _onCreateDescendantDocuments(
257
- parent: ClientDocument,
258
- collection: string,
259
- documents: ClientDocument[],
260
- data: unknown[],
261
- options: Document.OnCreateOptions<"TableResult">,
262
- userId: string,
263
- ): void;
264
-
265
- protected override _onDeleteDescendantDocuments(
266
- parent: ClientDocument,
267
- collection: string,
268
- documents: ClientDocument[],
269
- ids: string[],
270
- options: Document.OnDeleteOptions<"TableResult">,
271
- userId: string,
272
- ): void;
273
-
274
- override toCompendium<
275
- FlagsOpt extends boolean = false,
276
- SourceOpt extends boolean = true,
277
- SortOpt extends boolean = true,
278
- FolderOpt extends boolean = false,
279
- OwnershipOpt extends boolean = false,
280
- StateOpt extends boolean = true,
281
- IdOpt extends boolean = false,
282
- >(
748
+ /**
749
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
750
+ * this method must be overriden like so:
751
+ * ```typescript
752
+ * class GurpsRollTable extends RollTable {
753
+ * protected override _onCreateDescendantDocuments(...args: RollTable.OnCreateDescendantDocumentsArgs) {
754
+ * super._onCreateDescendantDocuments(...args);
755
+ *
756
+ * const [parent, collection, documents, data, options, userId] = args;
757
+ * if (collection === "cards") {
758
+ * options; // Will be narrowed.
759
+ * }
760
+ * }
761
+ * }
762
+ * ```
763
+ */
764
+ protected override _onCreateDescendantDocuments(...args: RollTable.OnCreateDescendantDocumentsArgs): void;
765
+
766
+ /**
767
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
768
+ * this method must be overriden like so:
769
+ * ```typescript
770
+ * class BladesRollTable extends RollTable {
771
+ * protected override _onDeleteDescendantDocuments(...args: RollTable.OnUpdateDescendantDocuments) {
772
+ * super._onDeleteDescendantDocuments(...args);
773
+ *
774
+ * const [parent, collection, documents, ids, options, userId] = args;
775
+ * if (collection === "cards") {
776
+ * options; // Will be narrowed.
777
+ * }
778
+ * }
779
+ * }
780
+ * ```
781
+ */
782
+ protected override _onDeleteDescendantDocuments(...args: RollTable.OnDeleteDescendantDocumentsArgs): void;
783
+
784
+ toCompendium<Options extends ClientDocument.ToCompendiumOptions>(
283
785
  pack?: CompendiumCollection<CompendiumCollection.Metadata> | null,
284
- options?: InexactPartial<
285
- ClientDocument.CompendiumExportOptions<FlagsOpt, SourceOpt, SortOpt, FolderOpt, OwnershipOpt, StateOpt, IdOpt>
286
- >,
287
- ): Omit<
288
- this["_source"],
289
- | (IdOpt extends false ? "_id" : never)
290
- | ClientDocument.OmitProperty<SortOpt, "sort" | "navigation" | "navOrder">
291
- | ClientDocument.OmitProperty<FolderOpt, "folder">
292
- | ClientDocument.OmitProperty<FlagsOpt, "flags">
293
- | ClientDocument.OmitProperty<OwnershipOpt, "ownership">
294
- | ClientDocument.OmitProperty<StateOpt, "active" | "fogReset" | "playing"> // does not model the results.drawn = false
295
- >;
786
+ options?: Options,
787
+ ): ClientDocument.ToCompendiumReturnType<foundry.documents.BaseRollTable, Options>;
296
788
 
297
789
  /**
298
790
  * Create a new RollTable document using all of the Documents from a specific Folder as new results.
299
791
  * @param folder - The Folder document from which to create a roll table
300
792
  * @param options - Additional options passed to the RollTable.create method
301
793
  */
302
- static fromFolder(
303
- folder: Folder,
304
- options?: Document.OnCreateOptions<"Folder">,
305
- ): Promise<RollTable.ConfiguredInstance | undefined>;
306
- }
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
307
810
 
308
- /**
309
- * An object containing the executed Roll and the produced results
310
- */
311
- interface RollTableDraw {
312
811
  /**
313
- * 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 overriden 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
+ * ```
314
826
  */
315
- roll: Roll;
827
+ protected override _preCreateDescendantDocuments(...args: RollTable.PreCreateDescendantDocumentsArgs): void;
316
828
 
317
829
  /**
318
- * 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 overriden 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
+ * ```
319
844
  */
320
- 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 overriden 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 overriden 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
+ static override defaultName(context?: Document.DefaultNameContext<string, RollTable.Parent>): string;
884
+
885
+ static override createDialog(
886
+ data?: Document.CreateDialogData<RollTable.CreateData>,
887
+ context?: Document.CreateDialogContext<string, RollTable.Parent>,
888
+ ): Promise<RollTable.Stored | null | undefined>;
889
+
890
+ static override fromDropData(
891
+ data: Document.DropData<RollTable.Implementation>,
892
+ options?: Document.FromDropDataOptions,
893
+ ): Promise<RollTable.Implementation | undefined>;
894
+
895
+ static override fromImport(
896
+ source: RollTable.Source,
897
+ context?: Document.FromImportContext<RollTable.Parent>,
898
+ ): Promise<RollTable.Implementation>;
321
899
  }
900
+
901
+ /**
902
+ * @deprecated {@link RollTable.Draw | `RollTable.Draw`}
903
+ */
904
+ type RollTableDraw = RollTable.Draw;
322
905
  }