@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,23 +1,545 @@
1
- import type { DeepPartial, InexactPartial, FixedInstanceType } from "fvtt-types/utils";
2
- import type { fields } from "../../../common/data/_module.d.mts";
3
- import type Document from "../../../common/abstract/document.d.mts";
4
- import type BaseCards from "../../../common/documents/cards.d.mts";
1
+ import type { ConfiguredCards } from "fvtt-types/configuration";
2
+ import type { DeepPartial, InexactPartial, Merge } from "fvtt-types/utils";
3
+ import type Document from "#common/abstract/document.d.mts";
4
+ import type { DataSchema } from "#common/data/fields.d.mts";
5
+ import type { fields } from "#common/data/_module.d.mts";
6
+ import type BaseCards from "#common/documents/cards.d.mts";
7
+ import type { documents } from "#client-esm/client.d.mts";
5
8
 
6
9
  declare global {
7
10
  namespace Cards {
8
- type Metadata = Document.MetadataFor<Cards>;
11
+ /**
12
+ * The document's name.
13
+ */
14
+ type Name = "Cards";
15
+
16
+ /**
17
+ * The arguments to construct the document.
18
+ */
19
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
20
+
21
+ /**
22
+ * The documents embedded within `Cards`.
23
+ */
24
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
25
+
26
+ /**
27
+ * The implementation of the `Cards` document instance configured through `CONFIG.Cards.documentClass` in Foundry and
28
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredCards | `fvtt-types/configuration/ConfiguredCards`} in fvtt-types.
29
+ */
30
+ type Implementation = Document.ImplementationFor<Name>;
31
+
32
+ /**
33
+ * The implementation of the `Cards` document configured through `CONFIG.Cards.documentClass` in Foundry and
34
+ * {@link DocumentClassConfig | `DocumentClassConfig`} in fvtt-types.
35
+ */
36
+ type ImplementationClass = Document.ImplementationClassFor<Name>;
37
+
38
+ /**
39
+ * A document's metadata is special information about the document ranging anywhere from its name,
40
+ * whether it's indexed, or to the permissions a user has over it.
41
+ */
42
+ interface Metadata
43
+ extends Merge<
44
+ Document.Metadata.Default,
45
+ Readonly<{
46
+ name: "Cards";
47
+ collection: "cards";
48
+ indexed: true;
49
+ compendiumIndexFields: ["_id", "name", "description", "img", "type", "sort", "folder"];
50
+ embedded: Metadata.Embedded;
51
+ hasTypeData: true;
52
+ label: string;
53
+ labelPlural: string;
54
+ coreTypes: ["deck", "hand", "pile"];
55
+ schemaVersion: string;
56
+ }>
57
+ > {}
58
+
59
+ namespace Metadata {
60
+ /**
61
+ * The embedded metadata
62
+ */
63
+ interface Embedded {
64
+ Card: "cards";
65
+ }
66
+ }
67
+
68
+ /**
69
+ * Allowed subtypes of `Cards`. This is configured through various methods. Modern Foundry
70
+ * recommends registering using [Data Models](https://foundryvtt.com/article/system-data-models/)
71
+ * under {@link CONFIG.Cards.dataModels | `CONFIG.Cards.dataModels`}. This corresponds to
72
+ * fvtt-type's {@link DataModelConfig | `DataModelConfig`}.
73
+ *
74
+ * Subtypes can also be registered through a `template.json` though this is discouraged.
75
+ * The corresponding fvtt-type configs are {@link SourceConfig | `SourceConfig`} and
76
+ * {@link DataConfig | `DataConfig`}.
77
+ */
78
+ type SubType = Game.Model.TypeNames<"Cards">;
79
+
80
+ /**
81
+ * `ConfiguredSubTypes` represents the subtypes a user explicitly registered. This excludes
82
+ * subtypes like the Foundry builtin subtype `"base"` and the catch-all subtype for arbitrary
83
+ * module subtypes `${string}.${string}`.
84
+ *
85
+ * @see {@link SubType} for more information.
86
+ */
87
+ type ConfiguredSubTypes = Document.ConfiguredSubTypesOf<"Cards">;
88
+
89
+ /**
90
+ * `Known` represents the types of `Cards` that a user explicitly registered.
91
+ *
92
+ * @see {@link ConfiguredSubTypes} for more information.
93
+ */
94
+ type Known = Cards.OfType<Cards.ConfiguredSubTypes>;
95
+
96
+ /**
97
+ * `OfType` returns an instance of `Cards` with the corresponding type. This works with both the
98
+ * builtin `Cards` class or a custom subclass if that is set up in
99
+ * {@link ConfiguredCards | `fvtt-types/configuration/ConfiguredCards`}.
100
+ */
101
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types
102
+ type OfType<Type extends SubType> = Document.Internal.OfType<ConfiguredCards<Type>, Cards<Type>>;
103
+
104
+ /**
105
+ * `SystemOfType` returns the system property for a specific `Cards` subtype.
106
+ */
107
+ type SystemOfType<Type extends SubType> = Document.Internal.SystemOfType<_SystemMap, Type>;
108
+
109
+ /**
110
+ * @internal
111
+ */
112
+ interface _SystemMap extends Document.Internal.SystemMap<"Cards"> {}
113
+
114
+ /**
115
+ * A document's parent is something that can contain it.
116
+ * For example an `Item` can be contained by an `Actor` which makes `Actor` one of its possible parents.
117
+ */
118
+ type Parent = null;
119
+
120
+ /**
121
+ * A document's direct descendants are documents that are contained directly within its schema.
122
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
123
+ */
124
+ type DirectDescendant = Card.Stored;
125
+
126
+ /**
127
+ * A document's direct descendants are documents that are contained directly within its schema.
128
+ * This is a union of all such classes, or never if the document doesn't have any descendants.
129
+ */
130
+ type DirectDescendantClass = Card.ImplementationClass;
131
+
132
+ /**
133
+ * A document's descendants are any documents that are contained within, either within its schema
134
+ * or its descendant's schemas.
135
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
136
+ */
137
+ type Descendant = DirectDescendant;
138
+
139
+ /**
140
+ * A document's descendants are any child documents, grandchild documents, etc.
141
+ * This is a union of all classes, or never if the document doesn't have any descendants.
142
+ */
143
+ type DescendantClass = DirectDescendantClass;
144
+
145
+ /**
146
+ * Types of `CompendiumCollection` this document might be contained in.
147
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
148
+ */
149
+ // Note: Takes any document in the heritage chain (i.e. itself or any parent, transitive or not) that can be contained in a compendium.
150
+ type Pack = CompendiumCollection.ForDocument<"Cards">;
151
+
152
+ /**
153
+ * An embedded document is a document contained in another.
154
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
155
+ *
156
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
157
+ */
158
+ type Embedded = Document.ImplementationFor<Embedded.Name>;
159
+
160
+ namespace Embedded {
161
+ /**
162
+ * An embedded document is a document contained in another.
163
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
164
+ *
165
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
166
+ */
167
+ type Name = keyof Metadata.Embedded;
168
+
169
+ /**
170
+ * Gets the collection name for an embedded document.
171
+ */
172
+ type CollectionNameOf<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionNameFor<
173
+ Metadata.Embedded,
174
+ CollectionName
175
+ >;
176
+
177
+ /**
178
+ * Gets the collection document for an embedded document.
179
+ */
180
+ // TODO(LukeAbby): There's a circularity. Should be `Document.Embedded.CollectionDocumentFor<Metadata.Embedded, CollectionName>`
181
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
182
+ type DocumentFor<CollectionName extends Embedded.CollectionName> = Document.Any;
183
+
184
+ /**
185
+ * Gets the collection for an embedded document.
186
+ */
187
+ type CollectionFor<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionFor<
188
+ // TODO(LukeAbby): This should be `TokenDocument.Implementation` but this causes a circularity.
189
+ Document.Any,
190
+ Metadata.Embedded,
191
+ CollectionName
192
+ >;
193
+
194
+ /**
195
+ * A valid name to refer to a collection embedded in this document. For example an `Actor`
196
+ * has the key `"items"` which contains `Item` instance which would make both `"Item" | "Items"`
197
+ * valid keys (amongst others).
198
+ */
199
+ type CollectionName = Document.Embedded.CollectionName<Metadata.Embedded>;
200
+ }
201
+
202
+ /**
203
+ * The name of the world or embedded collection this document can find itself in.
204
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
205
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
206
+ */
207
+ type ParentCollectionName = Metadata["collection"];
208
+
209
+ /**
210
+ * The world collection that contains `Cards`s. Will be `never` if none exists.
211
+ */
212
+ type CollectionClass = CardStacks.ConfiguredClass;
213
+
214
+ /**
215
+ * The world collection that contains `Cards`s. Will be `never` if none exists.
216
+ */
217
+ type Collection = CardStacks.Configured;
218
+
219
+ /**
220
+ * An instance of `Cards` that comes from the database but failed validation meaining that
221
+ * its `system` and `_source` could theoretically be anything.
222
+ */
223
+ interface Invalid<out SubType extends Cards.SubType = Cards.SubType> extends Document.Invalid<OfType<SubType>> {}
224
+
225
+ /**
226
+ * An instance of `Cards` that comes from the database.
227
+ */
228
+ interface Stored<out SubType extends Cards.SubType = Cards.SubType> extends Document.Stored<OfType<SubType>> {}
229
+
230
+ /**
231
+ * The data put in {@link Cards._source | `Cards#_source`}. This data is what was
232
+ * persisted to the database and therefore it must be valid JSON.
233
+ *
234
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
235
+ * but initialized as a {@link Set | `Set`}.
236
+ */
237
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
238
+
239
+ /**
240
+ * @deprecated {@link Cards.Source | `Cards.Source`}
241
+ */
242
+ type PersistedData = Source;
243
+
244
+ /**
245
+ * The data necessary to create a document. Used in places like {@link Cards.create | `Cards.create`}
246
+ * and {@link Cards | `new Cards(...)`}.
247
+ *
248
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
249
+ * with the right values. This means you can pass a `Set` instance, an array of values,
250
+ * a generator, or any other iterable.
251
+ */
252
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
253
+
254
+ /**
255
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
256
+ * {@link Cards.name | `Cards#name`}.
257
+ *
258
+ * This is data transformed from {@link Cards.Source | `Cards.Source`} and turned into more
259
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
260
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
261
+ */
262
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
9
263
 
10
- type ConfiguredClass = Document.ConfiguredClassForName<"Cards">;
11
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"Cards">;
264
+ /**
265
+ * The data used to update a document, for example {@link Cards.update | `Cards#update`}.
266
+ * It is a distinct type from {@link Cards.CreateData | `DeepPartial<Cards.CreateData>`} because
267
+ * it has different rules for `null` and `undefined`.
268
+ */
269
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
12
270
 
13
- interface DatabaseOperations extends Document.Database.Operations<Cards> {}
271
+ /**
272
+ * The schema for {@link Cards | `Cards`}. This is the source of truth for how an Cards document
273
+ * must be structured.
274
+ *
275
+ * Foundry uses this schema to validate the structure of the {@link Cards | `Cards`}. For example
276
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
277
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
278
+ * starting as an array in the database, initialized as a set, and allows updates with any
279
+ * iterable.
280
+ */
281
+ interface Schema extends DataSchema {
282
+ /**
283
+ * The _id which uniquely identifies this stack of Cards document
284
+ * @defaultValue `null`
285
+ */
286
+ _id: fields.DocumentIdField;
14
287
 
15
- // Helpful aliases
16
- type TypeNames = BaseCards.TypeNames;
17
- type ConstructorData = BaseCards.ConstructorData;
18
- type UpdateData = BaseCards.UpdateData;
19
- type Schema = BaseCards.Schema;
20
- type Source = BaseCards.Source;
288
+ /** The text name of this stack */
289
+ name: fields.StringField<{ required: true; blank: false; label: "CARDS.Name"; textSearch: true }>;
290
+
291
+ /**
292
+ * The type of this stack, in BaseCards.metadata.types
293
+ * @defaultValue `BaseCards.TYPES[0]`
294
+ */
295
+ type: fields.DocumentTypeField<typeof BaseCards>;
296
+
297
+ /**
298
+ * A text description of this stack
299
+ * @defaultValue `""`
300
+ */
301
+ description: fields.HTMLField<{ label: "CARDS.Description"; textSearch: true }>;
302
+
303
+ /**
304
+ * An image or video which is used to represent the stack of cards
305
+ * @defaultValue `BaseCards.DEFAULT_ICON`
306
+ */
307
+ img: fields.FilePathField<{
308
+ categories: ["IMAGE", "VIDEO"];
309
+ initial: () => typeof BaseCards.DEFAULT_ICON;
310
+ label: "CARDS.Image";
311
+ }>;
312
+
313
+ /**
314
+ * Game system data which is defined by the system template.json model
315
+ * @defaultValue `{}`
316
+ */
317
+ system: fields.TypeDataField<typeof BaseCards>;
318
+
319
+ /**
320
+ * A collection of Card documents which currently belong to this stack
321
+ * @defaultValue `[]`
322
+ */
323
+ cards: fields.EmbeddedCollectionField<typeof documents.BaseCard, Cards.Implementation>;
324
+
325
+ /**
326
+ * The visible width of this stack
327
+ * @defaultValue `null`
328
+ */
329
+ width: fields.NumberField<{ integer: true; positive: true; label: "Width" }>;
330
+
331
+ /**
332
+ * The visible height of this stack
333
+ * @defaultValue `null`
334
+ */
335
+ height: fields.NumberField<{ integer: true; positive: true; label: "Height" }>;
336
+
337
+ /**
338
+ * The angle of rotation of this stack
339
+ * @defaultValue `0`
340
+ */
341
+ rotation: fields.AngleField<{ label: "Rotation" }>;
342
+
343
+ /**
344
+ * Whether or not to publicly display the number of cards in this stack
345
+ * @defaultValue `false`
346
+ */
347
+ displayCount: fields.BooleanField;
348
+
349
+ /**
350
+ * The _id of a Folder which contains this document
351
+ * @defaultValue `null`
352
+ */
353
+ folder: fields.ForeignDocumentField<typeof documents.BaseFolder>;
354
+
355
+ /**
356
+ * The sort order of this stack relative to others in its parent collection
357
+ * @defaultValue `0`
358
+ */
359
+ sort: fields.IntegerSortField;
360
+
361
+ /**
362
+ * An object which configures ownership of this Cards
363
+ * @defaultValue see {@link fields.DocumentOwnershipField | `fields.DocumentOwnershipField`}
364
+ */
365
+ ownership: fields.DocumentOwnershipField;
366
+
367
+ /**
368
+ * An object of optional key/value flags
369
+ * @defaultValue `{}`
370
+ */
371
+ flags: fields.ObjectField.FlagsField<Name>;
372
+
373
+ /**
374
+ * An object of creation and access information
375
+ * @defaultValue see {@link fields.DocumentStatsField | `fields.DocumentStatsField`}
376
+ */
377
+ _stats: fields.DocumentStatsField;
378
+ }
379
+
380
+ namespace Database {
381
+ /** Options passed along in Get operations for Cards Documents */
382
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<Cards.Parent> {}
383
+
384
+ /** Options passed along in Create operations for Cards Documents */
385
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
386
+ extends foundry.abstract.types.DatabaseCreateOperation<Cards.CreateData, Cards.Parent, Temporary> {
387
+ animate?: boolean;
388
+ }
389
+
390
+ /** Options passed along in Delete operations for Cards Documents */
391
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<Cards.Parent> {
392
+ animate?: boolean;
393
+ }
394
+
395
+ /** Options passed along in Update operations for Cards Documents */
396
+ interface Update extends foundry.abstract.types.DatabaseUpdateOperation<Cards.UpdateData, Cards.Parent> {
397
+ animate?: boolean;
398
+ }
399
+
400
+ /** Operation for {@link Cards.createDocuments | `Cards.createDocuments`} */
401
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
402
+ extends Document.Database.CreateOperation<Cards.Database.Create<Temporary>> {}
403
+
404
+ /** Operation for {@link Cards.updateDocuments | `Cards.updateDocuments`} */
405
+ interface UpdateDocumentsOperation extends Document.Database.UpdateDocumentsOperation<Cards.Database.Update> {}
406
+
407
+ /** Operation for {@link Cards.deleteDocuments | `Cards.deleteDocuments`} */
408
+ interface DeleteDocumentsOperation extends Document.Database.DeleteDocumentsOperation<Cards.Database.Delete> {}
409
+
410
+ /** Operation for {@link Cards.create | `Cards.create`} */
411
+ interface CreateOperation<Temporary extends boolean | undefined>
412
+ extends Document.Database.CreateOperation<Cards.Database.Create<Temporary>> {}
413
+
414
+ /** Operation for {@link Cards.update | `Cards#update`} */
415
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
416
+
417
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
418
+
419
+ /** Options for {@link Cards.get | `Cards.get`} */
420
+ interface GetOptions extends Document.Database.GetOptions {}
421
+
422
+ /** Options for {@link Cards._preCreate | `Cards#_preCreate`} */
423
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
424
+
425
+ /** Options for {@link Cards._onCreate | `Cards#_onCreate`} */
426
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
427
+
428
+ /** Operation for {@link Cards._preCreateOperation | `Cards._preCreateOperation`} */
429
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<Cards.Database.Create> {}
430
+
431
+ /** Operation for {@link Cards._onCreateOperation | `Cards#_onCreateOperation`} */
432
+ interface OnCreateOperation extends Cards.Database.Create {}
433
+
434
+ /** Options for {@link Cards._preUpdate | `Cards#_preUpdate`} */
435
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
436
+
437
+ /** Options for {@link Cards._onUpdate | `Cards#_onUpdate`} */
438
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
439
+
440
+ /** Operation for {@link Cards._preUpdateOperation | `Cards._preUpdateOperation`} */
441
+ interface PreUpdateOperation extends Cards.Database.Update {}
442
+
443
+ /** Operation for {@link Cards._onUpdateOperation | `Cards._preUpdateOperation`} */
444
+ interface OnUpdateOperation extends Cards.Database.Update {}
445
+
446
+ /** Options for {@link Cards._preDelete | `Cards#_preDelete`} */
447
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
448
+
449
+ /** Options for {@link Cards._onDelete | `Cards#_onDelete`} */
450
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
451
+
452
+ /** Options for {@link Cards._preDeleteOperation | `Cards#_preDeleteOperation`} */
453
+ interface PreDeleteOperation extends Cards.Database.Delete {}
454
+
455
+ /** Options for {@link Cards._onDeleteOperation | `Cards#_onDeleteOperation`} */
456
+ interface OnDeleteOperation extends Cards.Database.Delete {}
457
+
458
+ /** Context for {@link Cards._onDeleteOperation | `Cards._onDeleteOperation`} */
459
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<Cards.Parent> {}
460
+
461
+ /** Context for {@link Cards._onCreateDocuments | `Cards._onCreateDocuments`} */
462
+ interface OnCreateDocumentsContext extends Document.ModificationContext<Cards.Parent> {}
463
+
464
+ /** Context for {@link Cards._onUpdateDocuments | `Cards._onUpdateDocuments`} */
465
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<Cards.Parent> {}
466
+
467
+ /**
468
+ * Options for {@link Cards._preCreateDescendantDocuments | `Cards#_preCreateDescendantDocuments`}
469
+ * and {@link Cards._onCreateDescendantDocuments | `Cards#_onCreateDescendantDocuments`}
470
+ */
471
+ interface CreateOptions extends Document.Database.CreateOptions<Cards.Database.Create> {}
472
+
473
+ /**
474
+ * Options for {@link Cards._preUpdateDescendantDocuments | `Cards#_preUpdateDescendantDocuments`}
475
+ * and {@link Cards._onUpdateDescendantDocuments | `Cards#_onUpdateDescendantDocuments`}
476
+ */
477
+ interface UpdateOptions extends Document.Database.UpdateOptions<Cards.Database.Update> {}
478
+
479
+ /**
480
+ * Options for {@link Cards._preDeleteDescendantDocuments | `Cards#_preDeleteDescendantDocuments`}
481
+ * and {@link Cards._onDeleteDescendantDocuments | `Cards#_onDeleteDescendantDocuments`}
482
+ */
483
+ interface DeleteOptions extends Document.Database.DeleteOptions<Cards.Database.Delete> {}
484
+ }
485
+
486
+ /**
487
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
488
+ */
489
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
490
+
491
+ namespace Flags {
492
+ /**
493
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
494
+ */
495
+ type Scope = Document.FlagKeyOf<Flags>;
496
+
497
+ /**
498
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
499
+ */
500
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
501
+
502
+ /**
503
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
504
+ */
505
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
506
+ }
507
+
508
+ type PreCreateDescendantDocumentsArgs = Document.PreCreateDescendantDocumentsArgs<
509
+ Cards.Stored,
510
+ Cards.DirectDescendant,
511
+ Cards.Metadata.Embedded
512
+ >;
513
+
514
+ type OnCreateDescendantDocumentsArgs = Document.OnCreateDescendantDocumentsArgs<
515
+ Cards.Stored,
516
+ Cards.DirectDescendant,
517
+ Cards.Metadata.Embedded
518
+ >;
519
+
520
+ type PreUpdateDescendantDocumentsArgs = Document.PreUpdateDescendantDocumentsArgs<
521
+ Cards.Stored,
522
+ Cards.DirectDescendant,
523
+ Cards.Metadata.Embedded
524
+ >;
525
+
526
+ type OnUpdateDescendantDocumentsArgs = Document.OnUpdateDescendantDocumentsArgs<
527
+ Cards.Stored,
528
+ Cards.DirectDescendant,
529
+ Cards.Metadata.Embedded
530
+ >;
531
+
532
+ type PreDeleteDescendantDocumentsArgs = Document.PreDeleteDescendantDocumentsArgs<
533
+ Cards.Stored,
534
+ Cards.DirectDescendant,
535
+ Cards.Metadata.Embedded
536
+ >;
537
+
538
+ type OnDeleteDescendantDocumentsArgs = Document.OnDeleteDescendantDocumentsArgs<
539
+ Cards.Stored,
540
+ Cards.DirectDescendant,
541
+ Cards.Metadata.Embedded
542
+ >;
21
543
 
22
544
  type CardsAction = "deal" | "pass";
23
545
 
@@ -41,7 +563,7 @@ declare global {
41
563
  * for example the displayed face
42
564
  * @defaultValue `{}`
43
565
  */
44
- updateData: DeepPartial<Cards["_source"]>;
566
+ updateData: DeepPartial<Cards.Implementation["_source"]>;
45
567
 
46
568
  /**
47
569
  * The name of the action being performed, used as part of the dispatched Hook event
@@ -56,7 +578,7 @@ declare global {
56
578
  action: CardsAction;
57
579
 
58
580
  /** An array of Card creation operations to be performed in each destination Cards document */
59
- toCreate: Card["_source"][][];
581
+ toCreate: Card.Implementation["_source"][][];
60
582
 
61
583
  /** Card update operations to be performed in the origin Cards document */
62
584
  fromUpdate: { _id: string; drawn: true }[];
@@ -71,7 +593,7 @@ declare global {
71
593
  * for example the displayed face
72
594
  * @defaultValue `{}`
73
595
  */
74
- updateData: DeepPartial<Card["_source"]> | undefined;
596
+ updateData: DeepPartial<Card.Implementation["_source"]> | undefined;
75
597
 
76
598
  /**
77
599
  * The name of the action being performed, used as part of the dispatched Hook event
@@ -98,7 +620,7 @@ declare global {
98
620
  * for example the displayed face
99
621
  * @defaultValue `{}`
100
622
  */
101
- updateData: DeepPartial<Card["_source"]>;
623
+ updateData: DeepPartial<Card.Implementation["_source"]>;
102
624
  }
103
625
 
104
626
  interface ShuffleOptions extends BaseOperationOptions {
@@ -107,7 +629,7 @@ declare global {
107
629
  * for example the displayed face
108
630
  * @defaultValue `{}`
109
631
  */
110
- updateData: DeepPartial<Card["_source"]>;
632
+ updateData: DeepPartial<Card.Implementation["_source"]>;
111
633
 
112
634
  /** Create a ChatMessage which notifies that this action has occurred
113
635
  * @defaultValue `true`
@@ -122,7 +644,7 @@ declare global {
122
644
  * for example the displayed face
123
645
  * @defaultValue `{}`
124
646
  */
125
- updateData: DeepPartial<Card["_source"]>;
647
+ updateData: DeepPartial<Card.Implementation["_source"]>;
126
648
  }
127
649
 
128
650
  /** Additional context which describes the operation. */
@@ -131,7 +653,7 @@ declare global {
131
653
  * A mapping of Card deck IDs to the update operations that
132
654
  * will be performed on them.
133
655
  */
134
- toUpdate: Record<string, DeepPartial<Card["_source"]>[]>;
656
+ toUpdate: Record<string, DeepPartial<Card.Implementation["_source"]>[]>;
135
657
 
136
658
  /**
137
659
  * Card deletion operations to be performed on the origin Cards
@@ -139,19 +661,49 @@ declare global {
139
661
  */
140
662
  fromDelete: string[];
141
663
  }
664
+
665
+ /**
666
+ * @deprecated {@link Cards.Database | `Cards.DatabaseOperation`}
667
+ */
668
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
669
+ interface DatabaseOperations extends Document.Database.Operations<Cards.Implementation> {}
670
+
671
+ /**
672
+ * @deprecated {@link Cards.SubType | `Cards.SubType`}
673
+ */
674
+ type TypeNames = Cards.SubType;
675
+
676
+ /**
677
+ * @deprecated {@link Cards.CreateData | `Cards.CreateData`}
678
+ */
679
+ interface ConstructorData extends Cards.CreateData {}
680
+
681
+ /**
682
+ * @deprecated {@link Cards.implementation | `Cards.ImplementationClass`}
683
+ */
684
+ type ConfiguredClass = ImplementationClass;
685
+
686
+ /**
687
+ * @deprecated {@link Cards.Implementation | `Cards.Implementation`}
688
+ */
689
+ type ConfiguredInstance = Implementation;
142
690
  }
143
691
 
144
692
  /**
145
693
  * The client-side Cards document which extends the common BaseCards model.
146
694
  * Each Cards document contains CardsData which defines its data schema.
147
695
  *
148
- * @see {@link CardStacks} The world-level collection of Cards documents
149
- * @see {@link CardsConfig} The Cards configuration application
696
+ * @see {@link CardStacks | `CardStacks`} The world-level collection of Cards documents
697
+ * @see {@link CardsConfig | `CardsConfig`} The Cards configuration application
150
698
  */
151
- class Cards extends ClientDocumentMixin(foundry.documents.BaseCards) {
152
- static override metadata: Cards.Metadata;
153
-
154
- static get implementation(): Cards.ConfiguredClass;
699
+ class Cards<out SubType extends Cards.SubType = Cards.SubType> extends ClientDocumentMixin(
700
+ foundry.documents.BaseCards,
701
+ )<SubType> {
702
+ /**
703
+ * @param data - Initial data from which to construct the `Cards`
704
+ * @param context - Construction context options
705
+ */
706
+ constructor(...args: Cards.ConstructorArgs);
155
707
 
156
708
  /**
157
709
  * Provide a thumbnail image path used to represent this document.
@@ -161,12 +713,12 @@ declare global {
161
713
  /**
162
714
  * The Card documents within this stack which are able to be drawn.
163
715
  */
164
- get availableCards(): Card.ConfiguredInstance[];
716
+ get availableCards(): Card.Implementation[];
165
717
 
166
718
  /**
167
719
  * The Card documents which belong to this stack but have already been drawn.
168
720
  */
169
- get drawnCards(): Card.ConfiguredInstance[];
721
+ get drawnCards(): Card.Implementation[];
170
722
 
171
723
  /**
172
724
  * Returns the localized Label for the type of Card Stack this is
@@ -178,18 +730,6 @@ declare global {
178
730
  */
179
731
  get canClone(): boolean;
180
732
 
181
- static createDocuments<T extends Document.AnyConstructor, Temporary extends boolean | undefined>(
182
- this: T,
183
- data: Array<
184
- fields.SchemaField.AssignmentType<FixedInstanceType<NoInfer<T>>["schema"]["fields"]> & Record<string, unknown>
185
- >,
186
- operation?: InexactPartial<
187
- Omit<Document.Database.OperationOf<NoInfer<T>["metadata"]["name"], "create">, "data">
188
- > & {
189
- temporary?: Temporary;
190
- },
191
- ): Promise<Document.ToStoredIf<T, Temporary>[] | undefined>;
192
-
193
733
  /**
194
734
  * Deal one or more cards from this Cards document to each of a provided array of Cards destinations.
195
735
  * Cards are allocated from the top of the deck in cyclical order until the required number of Cards have been dealt.
@@ -200,10 +740,10 @@ declare global {
200
740
  * @returns This Cards document after the deal operation has completed
201
741
  */
202
742
  deal(
203
- to: Cards.ConfiguredInstance[],
743
+ to: Cards.Implementation[],
204
744
  number?: number,
205
745
  options?: InexactPartial<Cards.DealOptions>,
206
- ): Promise<Cards.ConfiguredInstance>;
746
+ ): Promise<Cards.Implementation>;
207
747
 
208
748
  /**
209
749
  * Pass an array of specific Card documents from this document to some other Cards stack.
@@ -214,10 +754,10 @@ declare global {
214
754
  * @returns An array of the Card embedded documents created within the destination stack
215
755
  */
216
756
  pass(
217
- to: Cards.ConfiguredInstance,
757
+ to: Cards.Implementation,
218
758
  ids: string[],
219
759
  options?: InexactPartial<Cards.PassOptions>,
220
- ): Promise<Card.ConfiguredInstance[]>;
760
+ ): Promise<Card.Implementation[]>;
221
761
 
222
762
  /**
223
763
  * Draw one or more cards from some other Cards document.
@@ -228,17 +768,17 @@ declare global {
228
768
  * @returns An array of the Card documents which were drawn
229
769
  */
230
770
  draw(
231
- from: Cards.ConfiguredInstance,
771
+ from: Cards.Implementation,
232
772
  number?: number,
233
773
  options?: InexactPartial<Cards.DrawOptions>,
234
- ): Promise<Card.ConfiguredInstance[]>;
774
+ ): Promise<Card.Implementation[]>;
235
775
 
236
776
  /**
237
777
  * Shuffle this Cards stack, randomizing the sort order of all the cards it contains.
238
778
  * @param options - (default: `{}`)
239
779
  * @returns The Cards document after the shuffle operation has completed
240
780
  */
241
- shuffle(options?: InexactPartial<Cards.ShuffleOptions>): Promise<Cards.ConfiguredInstance>;
781
+ shuffle(options?: InexactPartial<Cards.ShuffleOptions>): Promise<Cards.Implementation>;
242
782
 
243
783
  /**
244
784
  * Perform a reset operation for a deck, retrieving all original cards from other stacks where they may have been
@@ -248,7 +788,7 @@ declare global {
248
788
  * @returns The Cards document after the reset operation has completed.
249
789
  * @internal
250
790
  */
251
- protected _resetDeck(options?: InexactPartial<Cards.ResetOptions>): Promise<Cards.ConfiguredInstance>;
791
+ protected _resetDeck(options?: InexactPartial<Cards.ResetOptions>): Promise<Cards.Implementation>;
252
792
 
253
793
  /**
254
794
  * Return all cards in this stack to their original decks.
@@ -257,21 +797,21 @@ declare global {
257
797
  * @returns The Cards document after the return operation has completed.
258
798
  * @internal
259
799
  */
260
- protected _resetStack(options?: InexactPartial<Cards.ResetOptions>): Promise<Cards.ConfiguredInstance>;
800
+ protected _resetStack(options?: InexactPartial<Cards.ResetOptions>): Promise<Cards.Implementation>;
261
801
 
262
802
  /**
263
803
  * A sorting function that is used to determine the standard order of Card documents within an un-shuffled stack.
264
804
  * @param a - The card being sorted
265
805
  * @param b - Another card being sorted against
266
806
  */
267
- protected sortStandard(a: Card, b: Card): number;
807
+ protected sortStandard(a: Card.Implementation, b: Card.Implementation): number;
268
808
 
269
809
  /**
270
810
  * A sorting function that is used to determine the order of Card documents within a shuffled stack.
271
811
  * @param a - The card being sorted
272
812
  * @param b - Another card being sorted against
273
813
  */
274
- protected sortShuffled(a: Card, b: Card): number;
814
+ protected sortShuffled(a: Card.Implementation, b: Card.Implementation): number;
275
815
 
276
816
  /**
277
817
  * An internal helper method for drawing a certain number of Card documents from this Cards stack.
@@ -279,7 +819,7 @@ declare global {
279
819
  * @param how - A draw mode from CONST.CARD_DRAW_MODES
280
820
  * @returns An array of drawn Card documents
281
821
  */
282
- protected _drawCards(number: number, how: foundry.CONST.CARD_DRAW_MODES): Card.ConfiguredInstance[];
822
+ protected _drawCards(number: number, how: foundry.CONST.CARD_DRAW_MODES): Card.Implementation[];
283
823
 
284
824
  /**
285
825
  * Create a ChatMessage which provides a notification of the cards operation which was just performed.
@@ -291,59 +831,183 @@ declare global {
291
831
  * @internal
292
832
  */
293
833
  protected _postChatNotification(
294
- source: Cards.ConfiguredInstance,
834
+ source: Cards.Implementation,
295
835
  action: string,
296
836
  context: Record<string, unknown>,
297
- ): Promise<ChatMessage.ConfiguredInstance | undefined>;
837
+ ): Promise<ChatMessage.Implementation | undefined>;
298
838
 
299
839
  /**
300
- * @privateRemarks _preCreate, _onUpdate, and _preDelete are all overridden but with no signature changes.
301
- * For type simplicity they are left off. These methods historically have been the source of a large amount of computation from tsc.
840
+ * @privateRemarks _preCreate, _onUpdate, and _preDelete are all overridden but with no signature changes from BaseCards.
302
841
  */
303
842
 
304
843
  /**
305
844
  * Display a dialog which prompts the user to deal cards to some number of hand-type Cards documents.
306
- * @see {@link Cards#deal}
845
+ * @see {@link Cards.deal | `Cards#deal`}
307
846
  */
308
- dealDialog(): Promise<Cards.ConfiguredInstance | null>;
847
+ dealDialog(): Promise<Cards.Implementation | null>;
309
848
 
310
849
  /**
311
850
  * Display a dialog which prompts the user to draw cards from some other deck-type Cards documents.
312
- * @see {@link Cards#draw}
851
+ * @see {@link Cards.draw | `Cards#draw`}
313
852
  */
314
- drawDialog(): Promise<Card.ConfiguredInstance[] | null>;
853
+ drawDialog(): Promise<Card.Implementation[] | null>;
315
854
 
316
855
  /**
317
856
  * Display a dialog which prompts the user to pass cards from this document to some other other Cards document.
318
- * @see {@link Cards#deal}
857
+ * @see {@link Cards.deal | `Cards#deal`}
319
858
  */
320
- passDialog(): Promise<Cards.ConfiguredInstance | null>;
859
+ passDialog(): Promise<Cards.Implementation | null>;
321
860
 
322
861
  /**
323
862
  * Display a dialog which prompts the user to play a specific Card to some other Cards document
324
- * @see {@link Cards#pass}
863
+ * @see {@link Cards.pass | `Cards#pass`}
325
864
  * @param card - The specific card being played as part of this dialog
326
865
  */
327
- playDialog(card: Card.ConfiguredInstance): Promise<Card.ConfiguredInstance[] | void | null>;
866
+ playDialog(card: Card.Implementation): Promise<Card.Implementation[] | void | null>;
328
867
 
329
868
  /**
330
869
  * Display a confirmation dialog for whether or not the user wishes to reset a Cards stack
331
- * @see {@link Cards#reset}
870
+ * @see {@link Cards.reset | `Cards#reset`}
332
871
  */
333
- resetDialog(): Promise<Cards.ConfiguredInstance | false | null>;
872
+ resetDialog(): Promise<Cards.Implementation | false | null>;
334
873
 
335
874
  override deleteDialog(options?: Partial<Dialog.Options>): Promise<this | false | null | undefined>;
336
875
 
337
- static override createDialog<T extends Document.AnyConstructor>(
338
- this: T,
339
- data?: DeepPartial<Document.ConstructorDataFor<NoInfer<T>> & Record<string, unknown>>,
340
- context?: Pick<Document.Database.OperationOf<Cards["documentName"], "create">, "parent" | "pack"> &
341
- InexactPartial<
342
- Dialog.Options & {
343
- /** A restriction the selectable sub-types of the Dialog. */
344
- types: string[];
345
- }
346
- >,
347
- ): Promise<Document.ToConfiguredInstance<T> | null | undefined>;
876
+ /*
877
+ * After this point these are not really overridden methods.
878
+ * They are here because Foundry's documents are complex and have lots of edge cases.
879
+ * There are DRY ways of representing this but this ends up being harder to understand
880
+ * for end users extending these functions, especially for static methods. There are also a
881
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
882
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
883
+ * separate like this helps against circularities.
884
+ */
885
+
886
+ // ClientDocument overrides
887
+
888
+ /**
889
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
890
+ * this method must be overriden like so:
891
+ * ```typescript
892
+ * class SwadeCards extends Cards {
893
+ * protected override _preCreateDescendantDocuments(...args: Cards.PreCreateDescendantDocumentsArgs) {
894
+ * super._preCreateDescendantDocuments(...args);
895
+ *
896
+ * const [parent, collection, data, options, userId] = args;
897
+ * if (collection === "cards") {
898
+ * options; // Will be narrowed.
899
+ * }
900
+ * }
901
+ * }
902
+ * ```
903
+ */
904
+ protected override _preCreateDescendantDocuments(...args: Cards.PreCreateDescendantDocumentsArgs): void;
905
+
906
+ /**
907
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
908
+ * this method must be overriden like so:
909
+ * ```typescript
910
+ * class GurpsCards extends Cards {
911
+ * protected override _onCreateDescendantDocuments(...args: Cards.OnCreateDescendantDocumentsArgs) {
912
+ * super._onCreateDescendantDocuments(...args);
913
+ *
914
+ * const [parent, collection, documents, data, options, userId] = args;
915
+ * if (collection === "cards") {
916
+ * options; // Will be narrowed.
917
+ * }
918
+ * }
919
+ * }
920
+ * ```
921
+ */
922
+ protected override _onCreateDescendantDocuments(...args: Cards.OnCreateDescendantDocumentsArgs): void;
923
+
924
+ /**
925
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
926
+ * this method must be overriden like so:
927
+ * ```typescript
928
+ * class LancerCards extends Cards {
929
+ * protected override _preUpdateDescendantDocuments(...args: Cards.OnUpdateDescendantDocuments) {
930
+ * super._preUpdateDescendantDocuments(...args);
931
+ *
932
+ * const [parent, collection, changes, options, userId] = args;
933
+ * if (collection === "cards") {
934
+ * options; // Will be narrowed.
935
+ * }
936
+ * }
937
+ * }
938
+ * ```
939
+ */
940
+ protected override _preUpdateDescendantDocuments(...args: Cards.PreUpdateDescendantDocumentsArgs): void;
941
+
942
+ /**
943
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
944
+ * this method must be overriden like so:
945
+ * ```typescript
946
+ * class Ptr2eCards extends Cards {
947
+ * protected override _onUpdateDescendantDocuments(...args: Cards.OnUpdateDescendantDocumentsArgs) {
948
+ * super._onUpdateDescendantDocuments(...args);
949
+ *
950
+ * const [parent, collection, documents, changes, options, userId] = args;
951
+ * if (collection === "cards") {
952
+ * options; // Will be narrowed.
953
+ * }
954
+ * }
955
+ * }
956
+ * ```
957
+ */
958
+ protected override _onUpdateDescendantDocuments(...args: Cards.OnUpdateDescendantDocumentsArgs): void;
959
+
960
+ /**
961
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
962
+ * this method must be overriden like so:
963
+ * ```typescript
964
+ * class KultCards extends Cards {
965
+ * protected override _preDeleteDescendantDocuments(...args: Cards.PreDeleteDescendantDocumentsArgs) {
966
+ * super._preDeleteDescendantDocuments(...args);
967
+ *
968
+ * const [parent, collection, ids, options, userId] = args;
969
+ * if (collection === "cards") {
970
+ * options; // Will be narrowed.
971
+ * }
972
+ * }
973
+ * }
974
+ * ```
975
+ */
976
+ protected override _preDeleteDescendantDocuments(...args: Cards.PreDeleteDescendantDocumentsArgs): void;
977
+
978
+ /**
979
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
980
+ * this method must be overriden like so:
981
+ * ```typescript
982
+ * class BladesCards extends Cards {
983
+ * protected override _onDeleteDescendantDocuments(...args: Cards.OnUpdateDescendantDocuments) {
984
+ * super._onDeleteDescendantDocuments(...args);
985
+ *
986
+ * const [parent, collection, documents, ids, options, userId] = args;
987
+ * if (collection === "cards") {
988
+ * options; // Will be narrowed.
989
+ * }
990
+ * }
991
+ * }
992
+ * ```
993
+ */
994
+ protected override _onDeleteDescendantDocuments(...args: Cards.OnDeleteDescendantDocumentsArgs): void;
995
+
996
+ static override defaultName(context?: Document.DefaultNameContext<Cards.SubType, Cards.Parent>): string;
997
+
998
+ static override createDialog(
999
+ data?: Document.CreateDialogData<Cards.CreateData>,
1000
+ context?: Document.CreateDialogContext<Cards.SubType, Cards.Parent>,
1001
+ ): Promise<Cards.Stored | null | undefined>;
1002
+
1003
+ static override fromDropData(
1004
+ data: Document.DropData<Cards.Implementation>,
1005
+ options?: Document.FromDropDataOptions,
1006
+ ): Promise<Cards.Implementation | undefined>;
1007
+
1008
+ static override fromImport(
1009
+ source: Cards.Source,
1010
+ context?: Document.FromImportContext<Cards.Parent>,
1011
+ ): Promise<Cards.Implementation>;
348
1012
  }
349
1013
  }