@league-of-foundry-developers/foundry-vtt-types 12.331.3-beta → 12.331.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (559) hide show
  1. package/README.md +17 -18
  2. package/package.json +91 -32
  3. package/src/configuration/configuration.d.mts +316 -0
  4. package/src/configuration/documents.d.mts +295 -0
  5. package/src/configuration/globals.d.mts +357 -0
  6. package/src/configuration/index.d.mts +5 -0
  7. package/src/foundry/client/apps/app.d.mts +129 -122
  8. package/src/foundry/client/apps/av/av-config.d.mts +12 -7
  9. package/src/foundry/client/apps/av/cameras.d.mts +12 -7
  10. package/src/foundry/client/apps/dice/dice-config.d.mts +59 -0
  11. package/src/foundry/client/apps/dice/index.d.mts +1 -0
  12. package/src/foundry/client/apps/form.d.mts +114 -86
  13. package/src/foundry/client/apps/forms/actor.d.mts +21 -11
  14. package/src/foundry/client/apps/forms/adventure-exporter.d.mts +12 -7
  15. package/src/foundry/client/apps/forms/adventure-importer.d.mts +14 -6
  16. package/src/foundry/client/apps/forms/base-sheet.d.mts +16 -8
  17. package/src/foundry/client/apps/forms/card-config.d.mts +16 -8
  18. package/src/foundry/client/apps/forms/cards-config.d.mts +15 -14
  19. package/src/foundry/client/apps/forms/combat-config.d.mts +7 -7
  20. package/src/foundry/client/apps/forms/combatant-config.d.mts +3 -3
  21. package/src/foundry/client/apps/forms/default-sheets-config.d.mts +1 -1
  22. package/src/foundry/client/apps/forms/effect-config.d.mts +7 -7
  23. package/src/foundry/client/apps/forms/folder-config.d.mts +10 -5
  24. package/src/foundry/client/apps/forms/fonts.d.mts +42 -35
  25. package/src/foundry/client/apps/forms/grid-config.d.mts +12 -13
  26. package/src/foundry/client/apps/forms/image-popout.d.mts +29 -23
  27. package/src/foundry/client/apps/forms/item.d.mts +9 -9
  28. package/src/foundry/client/apps/forms/journal-page-sheet.d.mts +16 -14
  29. package/src/foundry/client/apps/forms/journal-sheet.d.mts +48 -38
  30. package/src/foundry/client/apps/forms/macro-config.d.mts +7 -7
  31. package/src/foundry/client/apps/forms/measure-template.d.mts +10 -12
  32. package/src/foundry/client/apps/forms/ownership.d.mts +5 -5
  33. package/src/foundry/client/apps/forms/playlist-config.d.mts +8 -10
  34. package/src/foundry/client/apps/forms/playlist-sound-config.d.mts +7 -7
  35. package/src/foundry/client/apps/forms/roll-table-config.d.mts +11 -10
  36. package/src/foundry/client/apps/forms/scene-config.d.mts +40 -41
  37. package/src/foundry/client/apps/forms/sheet-config.d.mts +9 -21
  38. package/src/foundry/client/apps/forms/user-config.d.mts +13 -12
  39. package/src/foundry/client/apps/hud/chatbubble.d.mts +18 -6
  40. package/src/foundry/client/apps/hud/container.d.mts +4 -4
  41. package/src/foundry/client/apps/hud/controls.d.mts +126 -81
  42. package/src/foundry/client/apps/hud/hotbar.d.mts +17 -12
  43. package/src/foundry/client/apps/hud/hud.d.mts +5 -5
  44. package/src/foundry/client/apps/hud/menu.d.mts +10 -3
  45. package/src/foundry/client/apps/hud/navigation.d.mts +14 -9
  46. package/src/foundry/client/apps/hud/pause.d.mts +9 -4
  47. package/src/foundry/client/apps/hud/players.d.mts +14 -9
  48. package/src/foundry/client/apps/i18n.d.mts +31 -27
  49. package/src/foundry/client/apps/index.d.mts +1 -0
  50. package/src/foundry/client/apps/placeables/drawing-config.d.mts +41 -33
  51. package/src/foundry/client/apps/placeables/drawing-hud.d.mts +5 -5
  52. package/src/foundry/client/apps/placeables/index.d.mts +0 -2
  53. package/src/foundry/client/apps/placeables/note-config.d.mts +28 -18
  54. package/src/foundry/client/apps/placeables/tile-config.d.mts +23 -10
  55. package/src/foundry/client/apps/placeables/tile-hud.d.mts +10 -5
  56. package/src/foundry/client/apps/placeables/token-config.d.mts +91 -58
  57. package/src/foundry/client/apps/placeables/token-hud.d.mts +12 -7
  58. package/src/foundry/client/apps/placeables/wall-config.d.mts +21 -17
  59. package/src/foundry/client/apps/sidebar/apps/chat-popout.d.mts +5 -5
  60. package/src/foundry/client/apps/sidebar/apps/client-settings.d.mts +3 -3
  61. package/src/foundry/client/apps/sidebar/apps/compendium.d.mts +15 -13
  62. package/src/foundry/client/apps/sidebar/apps/invitation-links.d.mts +3 -3
  63. package/src/foundry/client/apps/sidebar/apps/keybindings-config.d.mts +3 -2
  64. package/src/foundry/client/apps/sidebar/apps/module-management.d.mts +6 -6
  65. package/src/foundry/client/apps/sidebar/apps/permission-config.d.mts +6 -6
  66. package/src/foundry/client/apps/sidebar/apps/support-details.d.mts +34 -29
  67. package/src/foundry/client/apps/sidebar/apps/tours-management.d.mts +2 -2
  68. package/src/foundry/client/apps/sidebar/apps/world-config.d.mts +13 -10
  69. package/src/foundry/client/apps/sidebar/directory-tab-mixin.d.mts +50 -35
  70. package/src/foundry/client/apps/sidebar/document-directory.d.mts +52 -38
  71. package/src/foundry/client/apps/sidebar/package-configuration.d.mts +4 -4
  72. package/src/foundry/client/apps/sidebar/sidebar-tab.d.mts +3 -3
  73. package/src/foundry/client/apps/sidebar/sidebar.d.mts +9 -4
  74. package/src/foundry/client/apps/sidebar/tabs/actors-directory.d.mts +11 -2
  75. package/src/foundry/client/apps/sidebar/tabs/cards-directory.d.mts +11 -2
  76. package/src/foundry/client/apps/sidebar/tabs/chat-log.d.mts +39 -27
  77. package/src/foundry/client/apps/sidebar/tabs/combat-tracker.d.mts +21 -12
  78. package/src/foundry/client/apps/sidebar/tabs/compendium-directory.d.mts +30 -15
  79. package/src/foundry/client/apps/sidebar/tabs/items-directory.d.mts +11 -2
  80. package/src/foundry/client/apps/sidebar/tabs/journal-directory.d.mts +11 -2
  81. package/src/foundry/client/apps/sidebar/tabs/macros-directory.d.mts +14 -5
  82. package/src/foundry/client/apps/sidebar/tabs/playlists-directory.d.mts +30 -22
  83. package/src/foundry/client/apps/sidebar/tabs/roll-table-directory.d.mts +11 -2
  84. package/src/foundry/client/apps/sidebar/tabs/scenes-directory.d.mts +14 -5
  85. package/src/foundry/client/apps/sidebar/tabs/settings.d.mts +23 -5
  86. package/src/foundry/client/apps/templates.d.mts +1 -1
  87. package/src/foundry/client/av/client.d.mts +1 -1
  88. package/src/foundry/client/av/clients/simplepeer.d.mts +11 -1
  89. package/src/foundry/client/av/master.d.mts +2 -2
  90. package/src/foundry/client/av/settings.d.mts +17 -15
  91. package/src/foundry/client/config.d.mts +444 -312
  92. package/src/foundry/client/core/document-index.d.mts +11 -3
  93. package/src/foundry/client/core/hooks.d.mts +2 -4
  94. package/src/foundry/client/core/image.d.mts +14 -13
  95. package/src/foundry/client/core/issues.d.mts +9 -4
  96. package/src/foundry/client/core/keybindings.d.mts +5 -5
  97. package/src/foundry/client/core/nue.d.mts +1 -1
  98. package/src/foundry/client/core/packages.d.mts +400 -62
  99. package/src/foundry/client/core/settings.d.mts +62 -38
  100. package/src/foundry/client/core/socket.d.mts +2 -2
  101. package/src/foundry/client/core/sorting.d.mts +6 -6
  102. package/src/foundry/client/core/time.d.mts +6 -3
  103. package/src/foundry/client/core/tooltip.d.mts +2 -2
  104. package/src/foundry/client/core/tour.d.mts +59 -50
  105. package/src/foundry/client/core/tours.d.mts +1 -1
  106. package/src/foundry/client/core/utils.d.mts +33 -10
  107. package/src/foundry/client/core/video.d.mts +1 -1
  108. package/src/foundry/client/core/workers.d.mts +24 -17
  109. package/src/foundry/client/data/abstract/canvas-document.d.mts +22 -28
  110. package/src/foundry/client/data/abstract/client-document.d.mts +238 -206
  111. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +24 -40
  112. package/src/foundry/client/data/abstract/document-collection.d.mts +96 -68
  113. package/src/foundry/client/data/abstract/world-collection.d.mts +53 -54
  114. package/src/foundry/client/data/collections/actors.d.mts +30 -28
  115. package/src/foundry/client/data/collections/cards.d.mts +16 -3
  116. package/src/foundry/client/data/collections/combats.d.mts +18 -5
  117. package/src/foundry/client/data/collections/compendium-collection.d.mts +84 -101
  118. package/src/foundry/client/data/collections/compendium-folders.d.mts +6 -6
  119. package/src/foundry/client/data/collections/compendium-packs.d.mts +5 -5
  120. package/src/foundry/client/data/collections/fog.d.mts +16 -3
  121. package/src/foundry/client/data/collections/folder.d.mts +20 -6
  122. package/src/foundry/client/data/collections/items.d.mts +17 -4
  123. package/src/foundry/client/data/collections/journal.d.mts +22 -7
  124. package/src/foundry/client/data/collections/macros.d.mts +21 -19
  125. package/src/foundry/client/data/collections/messages.d.mts +19 -6
  126. package/src/foundry/client/data/collections/playlists.d.mts +17 -5
  127. package/src/foundry/client/data/collections/scenes.d.mts +24 -27
  128. package/src/foundry/client/data/collections/settings.d.mts +16 -3
  129. package/src/foundry/client/data/collections/tables.d.mts +18 -5
  130. package/src/foundry/client/data/collections/users.d.mts +22 -10
  131. package/src/foundry/client/data/documents/active-effect.d.mts +780 -112
  132. package/src/foundry/client/data/documents/actor-delta.d.mts +705 -31
  133. package/src/foundry/client/data/documents/actor.d.mts +806 -98
  134. package/src/foundry/client/data/documents/adventure.d.mts +522 -59
  135. package/src/foundry/client/data/documents/ambient-light.d.mts +427 -20
  136. package/src/foundry/client/data/documents/ambient-sound.d.mts +478 -14
  137. package/src/foundry/client/data/documents/card.d.mts +598 -44
  138. package/src/foundry/client/data/documents/cards.d.mts +862 -169
  139. package/src/foundry/client/data/documents/chat-message.d.mts +668 -77
  140. package/src/foundry/client/data/documents/combat.d.mts +757 -107
  141. package/src/foundry/client/data/documents/combatant.d.mts +545 -32
  142. package/src/foundry/client/data/documents/drawing.d.mts +545 -14
  143. package/src/foundry/client/data/documents/fog-exploration.d.mts +465 -30
  144. package/src/foundry/client/data/documents/folder.d.mts +567 -51
  145. package/src/foundry/client/data/documents/index.d.mts +2 -0
  146. package/src/foundry/client/data/documents/item.d.mts +691 -24
  147. package/src/foundry/client/data/documents/journal-entry-page.d.mts +654 -55
  148. package/src/foundry/client/data/documents/journal-entry.d.mts +631 -35
  149. package/src/foundry/client/data/documents/macro.d.mts +560 -31
  150. package/src/foundry/client/data/documents/measured-template.d.mts +484 -15
  151. package/src/foundry/client/data/documents/note.d.mts +498 -15
  152. package/src/foundry/client/data/documents/playlist-sound.d.mts +443 -45
  153. package/src/foundry/client/data/documents/playlist.d.mts +710 -99
  154. package/src/foundry/client/data/documents/region-behavior.d.mts +516 -0
  155. package/src/foundry/client/data/documents/region.d.mts +789 -0
  156. package/src/foundry/client/data/documents/scene.d.mts +1216 -159
  157. package/src/foundry/client/data/documents/setting.d.mts +406 -23
  158. package/src/foundry/client/data/documents/table-result.d.mts +488 -14
  159. package/src/foundry/client/data/documents/table.d.mts +667 -78
  160. package/src/foundry/client/data/documents/tile.d.mts +505 -14
  161. package/src/foundry/client/data/documents/token.d.mts +1191 -143
  162. package/src/foundry/client/data/documents/user.d.mts +613 -57
  163. package/src/foundry/client/data/documents/wall.d.mts +555 -14
  164. package/src/foundry/client/game.d.mts +60 -92
  165. package/src/foundry/client/head.d.mts +9 -9
  166. package/src/foundry/client/hooks.d.mts +259 -248
  167. package/src/foundry/client/pixi/board.d.mts +107 -94
  168. package/src/foundry/client/pixi/core/containers/base-canvas-group.d.mts +97 -25
  169. package/src/foundry/client/pixi/core/containers/cached-container.d.mts +37 -19
  170. package/src/foundry/client/pixi/core/containers/full-canvas-container.d.mts +7 -10
  171. package/src/foundry/client/pixi/core/containers/point-source-mesh.d.mts +25 -15
  172. package/src/foundry/client/pixi/core/containers/quad-mesh.d.mts +16 -6
  173. package/src/foundry/client/pixi/core/containers/quadtree.d.mts +113 -54
  174. package/src/foundry/client/pixi/core/containers/sprite-mesh.d.mts +69 -26
  175. package/src/foundry/client/pixi/core/containers/unbound-container.d.mts +20 -2
  176. package/src/foundry/client/pixi/core/interaction/canvas-animation.d.mts +164 -99
  177. package/src/foundry/client/pixi/core/interaction/control-icon.d.mts +61 -22
  178. package/src/foundry/client/pixi/core/interaction/mouse-handler.d.mts +120 -53
  179. package/src/foundry/client/pixi/core/interaction/ping.d.mts +62 -31
  180. package/src/foundry/client/pixi/core/interaction/pings/chevron.d.mts +23 -10
  181. package/src/foundry/client/pixi/core/interaction/pings/pulse.d.mts +91 -34
  182. package/src/foundry/client/pixi/core/interaction/render-flags.d.mts +69 -30
  183. package/src/foundry/client/pixi/core/interaction/resize-handle.d.mts +35 -5
  184. package/src/foundry/client/pixi/core/interaction/targets.d.mts +21 -18
  185. package/src/foundry/client/pixi/core/loader.d.mts +86 -76
  186. package/src/foundry/client/pixi/core/shapes/limited-angle-polygon.d.mts +42 -17
  187. package/src/foundry/client/pixi/core/shapes/polygon-mesher.d.mts +92 -64
  188. package/src/foundry/client/pixi/core/shapes/precise-text.d.mts +28 -10
  189. package/src/foundry/client/pixi/core/shapes/ray.d.mts +47 -23
  190. package/src/foundry/client/pixi/core/shapes/source-polygon.d.mts +170 -75
  191. package/src/foundry/client/pixi/extensions/circle.d.mts +128 -125
  192. package/src/foundry/client/pixi/extensions/graphics.d.mts +3 -1
  193. package/src/foundry/client/pixi/extensions/observable-transform.d.mts +5 -4
  194. package/src/foundry/client/pixi/extensions/polygon.d.mts +154 -134
  195. package/src/foundry/client/pixi/extensions/rectangle.d.mts +242 -259
  196. package/src/foundry/client/pixi/groups/effects.d.mts +75 -24
  197. package/src/foundry/client/pixi/groups/environment.d.mts +68 -19
  198. package/src/foundry/client/pixi/groups/hidden.d.mts +27 -11
  199. package/src/foundry/client/pixi/groups/interface.d.mts +62 -38
  200. package/src/foundry/client/pixi/groups/overlay.d.mts +19 -7
  201. package/src/foundry/client/pixi/groups/primary.d.mts +66 -44
  202. package/src/foundry/client/pixi/groups/rendered.d.mts +19 -7
  203. package/src/foundry/client/pixi/layers/base/canvas-layer.d.mts +11 -15
  204. package/src/foundry/client/pixi/layers/base/interaction-layer.d.mts +29 -28
  205. package/src/foundry/client/pixi/layers/base/placeables-layer.d.mts +306 -272
  206. package/src/foundry/client/pixi/layers/controls/cursor.d.mts +18 -9
  207. package/src/foundry/client/pixi/layers/controls/door.d.mts +32 -11
  208. package/src/foundry/client/pixi/layers/controls/layer.d.mts +89 -77
  209. package/src/foundry/client/pixi/layers/controls/ruler.d.mts +121 -96
  210. package/src/foundry/client/pixi/layers/effects/background-effects.d.mts +9 -12
  211. package/src/foundry/client/pixi/layers/effects/coloration-effects.d.mts +9 -10
  212. package/src/foundry/client/pixi/layers/effects/darkness-effects.d.mts +8 -8
  213. package/src/foundry/client/pixi/layers/effects/illumination-effects.d.mts +22 -22
  214. package/src/foundry/client/pixi/layers/effects/visibility.d.mts +106 -86
  215. package/src/foundry/client/pixi/layers/effects/weather/particles/effect.d.mts +14 -5
  216. package/src/foundry/client/pixi/layers/effects/weather/particles/leaves.d.mts +31 -2
  217. package/src/foundry/client/pixi/layers/effects/weather-effects.d.mts +137 -65
  218. package/src/foundry/client/pixi/layers/grid/highlight.d.mts +14 -4
  219. package/src/foundry/client/pixi/layers/grid/layer.d.mts +92 -92
  220. package/src/foundry/client/pixi/layers/grid/mesh.d.mts +37 -16
  221. package/src/foundry/client/pixi/layers/masks/depth.d.mts +12 -7
  222. package/src/foundry/client/pixi/layers/masks/occlusion.d.mts +19 -12
  223. package/src/foundry/client/pixi/layers/masks/vision.d.mts +104 -18
  224. package/src/foundry/client/pixi/layers/placeables/drawings.d.mts +16 -15
  225. package/src/foundry/client/pixi/layers/placeables/index.d.mts +1 -0
  226. package/src/foundry/client/pixi/layers/placeables/lighting.d.mts +12 -14
  227. package/src/foundry/client/pixi/layers/placeables/notes.d.mts +49 -32
  228. package/src/foundry/client/pixi/layers/placeables/regions.d.mts +113 -0
  229. package/src/foundry/client/pixi/layers/placeables/sounds.d.mts +81 -67
  230. package/src/foundry/client/pixi/layers/placeables/templates.d.mts +11 -15
  231. package/src/foundry/client/pixi/layers/placeables/tiles.d.mts +30 -21
  232. package/src/foundry/client/pixi/layers/placeables/tokens.d.mts +66 -52
  233. package/src/foundry/client/pixi/layers/placeables/walls.d.mts +54 -57
  234. package/src/foundry/client/pixi/perception/clockwise-sweep.d.mts +62 -27
  235. package/src/foundry/client/pixi/perception/detection-mode.d.mts +121 -47
  236. package/src/foundry/client/pixi/perception/fog.d.mts +38 -15
  237. package/src/foundry/client/pixi/perception/perception-manager.d.mts +136 -136
  238. package/src/foundry/client/pixi/perception/vision-mode.d.mts +91 -64
  239. package/src/foundry/client/pixi/perception/weiler-atherton-clipping.d.mts +44 -16
  240. package/src/foundry/client/pixi/placeable.d.mts +239 -137
  241. package/src/foundry/client/pixi/placeables/drawing.d.mts +255 -133
  242. package/src/foundry/client/pixi/placeables/index.d.mts +1 -0
  243. package/src/foundry/client/pixi/placeables/light.d.mts +193 -64
  244. package/src/foundry/client/pixi/placeables/note.d.mts +145 -54
  245. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-canvas-object.d.mts +30 -8
  246. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-graphics.d.mts +41 -11
  247. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-occludable-object.d.mts +59 -18
  248. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-sprite-mesh.d.mts +120 -37
  249. package/src/foundry/client/pixi/placeables/region.d.mts +280 -0
  250. package/src/foundry/client/pixi/placeables/sound.d.mts +205 -66
  251. package/src/foundry/client/pixi/placeables/template.d.mts +181 -100
  252. package/src/foundry/client/pixi/placeables/tile.d.mts +206 -140
  253. package/src/foundry/client/pixi/placeables/token.d.mts +916 -449
  254. package/src/foundry/client/pixi/placeables/wall.d.mts +249 -129
  255. package/src/foundry/client/pixi/webgl/extensions/batch-renderer.d.mts +72 -33
  256. package/src/foundry/client/pixi/webgl/extensions/batch-shader-generator.d.mts +10 -9
  257. package/src/foundry/client/pixi/webgl/helpers/{framebugger-snapshot.d.mts → framebuffer-snapshot.d.mts} +10 -9
  258. package/src/foundry/client/pixi/webgl/helpers/index.d.mts +1 -1
  259. package/src/foundry/client/pixi/webgl/helpers/smooth-noise.d.mts +38 -23
  260. package/src/foundry/client/pixi/webgl/helpers/texture-extractor.d.mts +82 -53
  261. package/src/foundry/client/pixi/webgl/shaders/base-shader-mixin.d.mts +12 -12
  262. package/src/foundry/client/pixi/webgl/shaders/base-shader.d.mts +45 -28
  263. package/src/foundry/client/pixi/webgl/shaders/filters/base-filter.d.mts +12 -11
  264. package/src/foundry/client/pixi/webgl/shaders/filters/base-mask-filter.d.mts +12 -10
  265. package/src/foundry/client/pixi/webgl/shaders/filters/blur.d.mts +22 -20
  266. package/src/foundry/client/pixi/webgl/shaders/filters/effects-masking.d.mts +36 -32
  267. package/src/foundry/client/pixi/webgl/shaders/filters/environment.d.mts +10 -9
  268. package/src/foundry/client/pixi/webgl/shaders/filters/glow-overlay.d.mts +12 -11
  269. package/src/foundry/client/pixi/webgl/shaders/filters/invisibility.d.mts +10 -9
  270. package/src/foundry/client/pixi/webgl/shaders/filters/outline-overlay.d.mts +12 -11
  271. package/src/foundry/client/pixi/webgl/shaders/filters/transition.d.mts +67 -60
  272. package/src/foundry/client/pixi/webgl/shaders/filters/visibility.d.mts +24 -17
  273. package/src/foundry/client/pixi/webgl/shaders/filters/vision-mask-filter.d.mts +13 -10
  274. package/src/foundry/client/pixi/webgl/shaders/filters/void.d.mts +10 -9
  275. package/src/foundry/client/pixi/webgl/shaders/filters/weather-occlusion-masks.d.mts +11 -10
  276. package/src/foundry/client/pixi/webgl/shaders/fragment-channel-mixin.d.mts +20 -14
  277. package/src/foundry/client/pixi/webgl/shaders/grid/grid.d.mts +12 -11
  278. package/src/foundry/client/pixi/webgl/shaders/lighting/background-lighting.d.mts +10 -9
  279. package/src/foundry/client/pixi/webgl/shaders/lighting/base-lighting.d.mts +33 -33
  280. package/src/foundry/client/pixi/webgl/shaders/lighting/coloration-lighting.d.mts +10 -9
  281. package/src/foundry/client/pixi/webgl/shaders/lighting/darkness-lighting.d.mts +10 -9
  282. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/bewitching-wave.d.mts +19 -17
  283. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/black-hole.d.mts +10 -9
  284. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/chroma.d.mts +10 -9
  285. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/emanation.d.mts +10 -9
  286. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/energy-field.d.mts +10 -9
  287. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fairy-light.d.mts +19 -17
  288. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/flame.d.mts +19 -17
  289. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fog.d.mts +10 -9
  290. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/force-grid.d.mts +10 -8
  291. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/ghost-light.d.mts +19 -17
  292. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/hexa-dome.d.mts +10 -9
  293. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/light-dome.d.mts +10 -9
  294. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/magical-gloom.d.mts +10 -9
  295. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/pulse.d.mts +19 -17
  296. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/radial-rainbow.d.mts +10 -9
  297. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/revolving-light.d.mts +10 -9
  298. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/roiling-mass.d.mts +10 -9
  299. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/siren-light.d.mts +19 -17
  300. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/smoke-patch.d.mts +20 -17
  301. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/star-light.d.mts +10 -9
  302. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/sunburst.d.mts +19 -17
  303. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/swirling-rainbow.d.mts +10 -9
  304. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/torch.d.mts +19 -17
  305. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/vortex.d.mts +19 -17
  306. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/wave.d.mts +19 -17
  307. package/src/foundry/client/pixi/webgl/shaders/lighting/illumination-lighting.d.mts +10 -9
  308. package/src/foundry/client/pixi/webgl/shaders/region/adjust-darkness-level.d.mts +71 -29
  309. package/src/foundry/client/pixi/webgl/shaders/region/base.d.mts +54 -10
  310. package/src/foundry/client/pixi/webgl/shaders/region/highlight.d.mts +69 -9
  311. package/src/foundry/client/pixi/webgl/shaders/samplers/base-sampler.d.mts +24 -25
  312. package/src/foundry/client/pixi/webgl/shaders/samplers/baseline-illumination.d.mts +10 -9
  313. package/src/foundry/client/pixi/webgl/shaders/samplers/color-adjustment.d.mts +38 -29
  314. package/src/foundry/client/pixi/webgl/shaders/samplers/depth.d.mts +21 -17
  315. package/src/foundry/client/pixi/webgl/shaders/samplers/fog-of-war.d.mts +10 -9
  316. package/src/foundry/client/pixi/webgl/shaders/samplers/occlusion.d.mts +20 -18
  317. package/src/foundry/client/pixi/webgl/shaders/samplers/primary.d.mts +11 -2
  318. package/src/foundry/client/pixi/webgl/shaders/samplers/token-ring.d.mts +28 -2
  319. package/src/foundry/client/pixi/webgl/shaders/vision/background-vision.d.mts +10 -9
  320. package/src/foundry/client/pixi/webgl/shaders/vision/base-vision.d.mts +11 -9
  321. package/src/foundry/client/pixi/webgl/shaders/vision/coloration-vision.d.mts +10 -9
  322. package/src/foundry/client/pixi/webgl/shaders/vision/effects/amplification.d.mts +10 -9
  323. package/src/foundry/client/pixi/webgl/shaders/vision/effects/wave.d.mts +19 -17
  324. package/src/foundry/client/pixi/webgl/shaders/vision/illumination-vision.d.mts +10 -9
  325. package/src/foundry/client/pixi/webgl/shaders/weather/base-weather.d.mts +40 -36
  326. package/src/foundry/client/pixi/webgl/shaders/weather/effect.d.mts +27 -33
  327. package/src/foundry/client/pixi/webgl/shaders/weather/fog.d.mts +17 -16
  328. package/src/foundry/client/pixi/webgl/shaders/weather/rain.d.mts +19 -18
  329. package/src/foundry/client/pixi/webgl/shaders/weather/snow.d.mts +15 -14
  330. package/src/foundry/client/pixi/workers/texture-worker.d.mts +33 -53
  331. package/src/foundry/client/tours/setup-tour.d.mts +15 -10
  332. package/src/foundry/client/ui/context.d.mts +48 -40
  333. package/src/foundry/client/ui/dialog.d.mts +137 -126
  334. package/src/foundry/client/ui/drag.d.mts +1 -1
  335. package/src/foundry/client/ui/dragdrop.d.mts +34 -28
  336. package/src/foundry/client/ui/editor.d.mts +29 -21
  337. package/src/foundry/client/ui/filepicker.d.mts +43 -38
  338. package/src/foundry/client/ui/filter.d.mts +62 -50
  339. package/src/foundry/client/ui/forms.d.mts +22 -22
  340. package/src/foundry/client/ui/notifications.d.mts +10 -3
  341. package/src/foundry/client/ui/prosemirror.d.mts +15 -7
  342. package/src/foundry/client/ui/secrets.d.mts +42 -27
  343. package/src/foundry/client/ui/tabs.d.mts +40 -33
  344. package/src/foundry/client-esm/applications/_module.d.mts +3 -3
  345. package/src/foundry/client-esm/applications/_types.d.mts +0 -2
  346. package/src/foundry/client-esm/applications/api/_module.d.mts +2 -2
  347. package/src/foundry/client-esm/applications/api/application.d.mts +28 -19
  348. package/src/foundry/client-esm/applications/api/dialog.d.mts +20 -22
  349. package/src/foundry/client-esm/applications/api/document-sheet.d.mts +26 -12
  350. package/src/foundry/client-esm/applications/api/handlebars-application.d.mts +142 -126
  351. package/src/foundry/client-esm/applications/apps/_module.d.mts +2 -2
  352. package/src/foundry/client-esm/applications/apps/compendium-art-config.d.mts +10 -10
  353. package/src/foundry/client-esm/applications/apps/permission-config.d.mts +3 -3
  354. package/src/foundry/client-esm/applications/dice/_module.d.mts +2 -2
  355. package/src/foundry/client-esm/applications/dice/roll-resolver.d.mts +14 -2
  356. package/src/foundry/client-esm/applications/elements/_module.d.mts +2 -2
  357. package/src/foundry/client-esm/applications/elements/document-tags.d.mts +2 -0
  358. package/src/foundry/client-esm/applications/elements/file-picker.d.mts +1 -1
  359. package/src/foundry/client-esm/applications/elements/multi-select.d.mts +15 -5
  360. package/src/foundry/client-esm/applications/elements/string-tags.d.mts +1 -1
  361. package/src/foundry/client-esm/applications/forms/fields.d.mts +1 -1
  362. package/src/foundry/client-esm/applications/sheets/_module.d.mts +2 -2
  363. package/src/foundry/client-esm/applications/sheets/actor-sheet.d.mts +3 -3
  364. package/src/foundry/client-esm/applications/sheets/ambient-light-config.d.mts +10 -8
  365. package/src/foundry/client-esm/applications/sheets/ambient-sound-config.d.mts +9 -7
  366. package/src/foundry/client-esm/applications/sheets/item-sheet.d.mts +3 -3
  367. package/src/foundry/client-esm/applications/sheets/region-behavior-config.d.mts +30 -5
  368. package/src/foundry/client-esm/applications/sheets/region-config.d.mts +36 -5
  369. package/src/foundry/client-esm/applications/sheets/user-config.d.mts +8 -7
  370. package/src/foundry/client-esm/applications/ui/_module.d.mts +2 -2
  371. package/src/foundry/client-esm/applications/ui/region-legend.d.mts +45 -3
  372. package/src/foundry/client-esm/audio/_module.d.mts +2 -3
  373. package/src/foundry/client-esm/audio/_types.d.mts +2 -0
  374. package/src/foundry/client-esm/audio/biquad.d.mts +76 -26
  375. package/src/foundry/client-esm/audio/cache.d.mts +31 -20
  376. package/src/foundry/client-esm/audio/convolver.d.mts +47 -25
  377. package/src/foundry/client-esm/audio/helper.d.mts +124 -80
  378. package/src/foundry/client-esm/audio/sound.d.mts +230 -126
  379. package/src/foundry/client-esm/audio/timeout.d.mts +28 -12
  380. package/src/foundry/client-esm/canvas/_module.d.mts +2 -2
  381. package/src/foundry/client-esm/canvas/edges/_module.d.mts +2 -2
  382. package/src/foundry/client-esm/canvas/edges/collision.d.mts +69 -18
  383. package/src/foundry/client-esm/canvas/edges/edge.d.mts +110 -41
  384. package/src/foundry/client-esm/canvas/edges/edges.d.mts +10 -0
  385. package/src/foundry/client-esm/canvas/edges/vertex.d.mts +56 -26
  386. package/src/foundry/client-esm/canvas/regions/_module.d.mts +6 -11
  387. package/src/foundry/client-esm/canvas/regions/geometry.d.mts +38 -0
  388. package/src/foundry/client-esm/canvas/regions/mesh.d.mts +72 -0
  389. package/src/foundry/client-esm/canvas/regions/polygon-tree.d.mts +130 -0
  390. package/src/foundry/client-esm/canvas/regions/shape.d.mts +129 -0
  391. package/src/foundry/client-esm/canvas/scene-manager.d.mts +13 -3
  392. package/src/foundry/client-esm/canvas/smaa/blend.d.mts +14 -3
  393. package/src/foundry/client-esm/canvas/smaa/edges.d.mts +25 -3
  394. package/src/foundry/client-esm/canvas/smaa/smaa.d.mts +121 -23
  395. package/src/foundry/client-esm/canvas/smaa/weights.d.mts +26 -3
  396. package/src/foundry/client-esm/canvas/sources/_module.d.mts +2 -2
  397. package/src/foundry/client-esm/canvas/sources/base-effect-source.d.mts +84 -40
  398. package/src/foundry/client-esm/canvas/sources/base-light-source.d.mts +103 -39
  399. package/src/foundry/client-esm/canvas/sources/global-light-source.d.mts +89 -15
  400. package/src/foundry/client-esm/canvas/sources/point-darkness-source.d.mts +71 -27
  401. package/src/foundry/client-esm/canvas/sources/point-effect-source.d.mts +49 -20
  402. package/src/foundry/client-esm/canvas/sources/point-light-source.d.mts +57 -16
  403. package/src/foundry/client-esm/canvas/sources/point-movement-source.d.mts +31 -4
  404. package/src/foundry/client-esm/canvas/sources/point-sound-source.d.mts +45 -12
  405. package/src/foundry/client-esm/canvas/sources/point-vision-source.d.mts +98 -52
  406. package/src/foundry/client-esm/canvas/sources/rendered-effect-source.d.mts +180 -69
  407. package/src/foundry/client-esm/canvas/tokens/_module.d.mts +2 -3
  408. package/src/foundry/client-esm/canvas/tokens/ring-config.d.mts +175 -2
  409. package/src/foundry/client-esm/canvas/tokens/ring-data.d.mts +142 -2
  410. package/src/foundry/client-esm/canvas/tokens/ring.d.mts +284 -2
  411. package/src/foundry/client-esm/client.d.mts +47 -54
  412. package/src/foundry/client-esm/data/_module.d.mts +2 -2
  413. package/src/foundry/client-esm/data/client-backend.d.mts +22 -23
  414. package/src/foundry/client-esm/data/region-behaviors/_module.d.mts +11 -14
  415. package/src/foundry/client-esm/data/region-behaviors/adjust-darkness-level.d.mts +56 -0
  416. package/src/foundry/client-esm/data/region-behaviors/base.d.mts +59 -0
  417. package/src/foundry/client-esm/data/region-behaviors/display-scrolling-text.d.mts +64 -0
  418. package/src/foundry/client-esm/data/region-behaviors/execute-macro.d.mts +27 -0
  419. package/src/foundry/client-esm/data/region-behaviors/execute-script.d.mts +23 -0
  420. package/src/foundry/client-esm/data/region-behaviors/pause-game.d.mts +23 -0
  421. package/src/foundry/client-esm/data/region-behaviors/suppress-weather.d.mts +17 -0
  422. package/src/foundry/client-esm/data/region-behaviors/teleport-token.d.mts +32 -0
  423. package/src/foundry/client-esm/data/region-behaviors/toggle-behavior.d.mts +31 -0
  424. package/src/foundry/client-esm/dice/_module.d.mts +2 -3
  425. package/src/foundry/client-esm/dice/parser.d.mts +11 -25
  426. package/src/foundry/client-esm/dice/roll.d.mts +112 -89
  427. package/src/foundry/client-esm/dice/terms/_module.d.mts +2 -3
  428. package/src/foundry/client-esm/dice/terms/coin.d.mts +8 -5
  429. package/src/foundry/client-esm/dice/terms/dice.d.mts +93 -63
  430. package/src/foundry/client-esm/dice/terms/die.d.mts +11 -4
  431. package/src/foundry/client-esm/dice/terms/fate.d.mts +9 -2
  432. package/src/foundry/client-esm/dice/terms/function.d.mts +18 -18
  433. package/src/foundry/client-esm/dice/terms/numeric.d.mts +3 -5
  434. package/src/foundry/client-esm/dice/terms/operator.d.mts +2 -2
  435. package/src/foundry/client-esm/dice/terms/parenthetical.d.mts +9 -10
  436. package/src/foundry/client-esm/dice/terms/pool.d.mts +25 -31
  437. package/src/foundry/client-esm/dice/terms/string.d.mts +4 -4
  438. package/src/foundry/client-esm/dice/terms/term.d.mts +18 -4
  439. package/src/foundry/client-esm/dice/twister.d.mts +3 -3
  440. package/src/foundry/client-esm/helpers/_module.d.mts +2 -2
  441. package/src/foundry/client-esm/helpers/_types.d.mts +12 -46
  442. package/src/foundry/client-esm/helpers/compendium-art.d.mts +56 -4
  443. package/src/foundry/common/abstract/_types.d.mts +60 -54
  444. package/src/foundry/common/abstract/backend.d.mts +51 -45
  445. package/src/foundry/common/abstract/data.d.mts +265 -236
  446. package/src/foundry/common/abstract/document.d.mts +1449 -464
  447. package/src/foundry/common/abstract/embedded-collection-delta.d.mts +1 -1
  448. package/src/foundry/common/abstract/embedded-collection.d.mts +37 -7
  449. package/src/foundry/common/abstract/module.d.mts +3 -2
  450. package/src/foundry/common/abstract/singleton-collection.d.mts +1 -1
  451. package/src/foundry/common/abstract/socket.d.mts +1 -1
  452. package/src/foundry/common/abstract/type-data.d.mts +61 -55
  453. package/src/foundry/common/config.d.mts +11 -3
  454. package/src/foundry/common/constants.d.mts +261 -231
  455. package/src/foundry/common/data/data.d.mts +238 -102
  456. package/src/foundry/common/data/fields.d.mts +1334 -874
  457. package/src/foundry/common/data/module.d.mts +2 -2
  458. package/src/foundry/common/data/validation-failure.d.mts +12 -9
  459. package/src/foundry/common/documents/_module.d.mts +4 -2
  460. package/src/foundry/common/documents/_types.d.mts +22 -56
  461. package/src/foundry/common/documents/active-effect.d.mts +358 -194
  462. package/src/foundry/common/documents/actor-delta.d.mts +403 -73
  463. package/src/foundry/common/documents/actor.d.mts +359 -117
  464. package/src/foundry/common/documents/adventure.d.mts +312 -142
  465. package/src/foundry/common/documents/ambient-light.d.mts +296 -75
  466. package/src/foundry/common/documents/ambient-sound.d.mts +296 -109
  467. package/src/foundry/common/documents/card.d.mts +321 -187
  468. package/src/foundry/common/documents/cards.d.mts +353 -125
  469. package/src/foundry/common/documents/chat-message.d.mts +338 -167
  470. package/src/foundry/common/documents/combat.d.mts +358 -94
  471. package/src/foundry/common/documents/combatant.d.mts +323 -92
  472. package/src/foundry/common/documents/drawing.d.mts +327 -206
  473. package/src/foundry/common/documents/fog-exploration.d.mts +303 -69
  474. package/src/foundry/common/documents/folder.d.mts +307 -82
  475. package/src/foundry/common/documents/item.d.mts +377 -100
  476. package/src/foundry/common/documents/journal-entry-page.d.mts +327 -187
  477. package/src/foundry/common/documents/journal-entry.d.mts +345 -68
  478. package/src/foundry/common/documents/macro.d.mts +325 -139
  479. package/src/foundry/common/documents/measured-template.d.mts +328 -138
  480. package/src/foundry/common/documents/note.d.mts +312 -151
  481. package/src/foundry/common/documents/playlist-sound.d.mts +309 -102
  482. package/src/foundry/common/documents/playlist.d.mts +341 -131
  483. package/src/foundry/common/documents/region-behavior.d.mts +360 -0
  484. package/src/foundry/common/documents/region.d.mts +355 -0
  485. package/src/foundry/common/documents/roll-table.d.mts +320 -102
  486. package/src/foundry/common/documents/scene.d.mts +437 -350
  487. package/src/foundry/common/documents/setting.d.mts +285 -54
  488. package/src/foundry/common/documents/table-result.d.mts +326 -103
  489. package/src/foundry/common/documents/tile.d.mts +337 -172
  490. package/src/foundry/common/documents/token.d.mts +396 -447
  491. package/src/foundry/common/documents/user.d.mts +296 -173
  492. package/src/foundry/common/documents/wall.d.mts +303 -156
  493. package/src/foundry/common/grid/_module.d.mts +3 -3
  494. package/src/foundry/common/grid/base.d.mts +66 -49
  495. package/src/foundry/common/grid/gridless.d.mts +2 -2
  496. package/src/foundry/common/grid/hexagonal.d.mts +35 -28
  497. package/src/foundry/common/grid/square.d.mts +3 -3
  498. package/src/foundry/common/packages/base-module.d.mts +6 -24
  499. package/src/foundry/common/packages/base-package.d.mts +56 -31
  500. package/src/foundry/common/packages/base-system.d.mts +45 -63
  501. package/src/foundry/common/packages/base-world.d.mts +15 -61
  502. package/src/foundry/common/packages/module.d.mts +7 -7
  503. package/src/foundry/common/packages/sub-types.d.mts +4 -6
  504. package/src/foundry/common/primitives/array.d.mts +4 -4
  505. package/src/foundry/common/primitives/math.d.mts +7 -1
  506. package/src/foundry/common/primitives/number.d.mts +2 -2
  507. package/src/foundry/common/primitives/set.d.mts +17 -14
  508. package/src/foundry/common/primitives/string.d.mts +1 -1
  509. package/src/foundry/common/prosemirror/_module.d.mts +15 -15
  510. package/src/foundry/common/prosemirror/dirty-plugin.d.mts +1 -1
  511. package/src/foundry/common/prosemirror/dom-parser.d.mts +2 -1
  512. package/src/foundry/common/prosemirror/dropdown.d.mts +1 -1
  513. package/src/foundry/common/prosemirror/highlight-matches-plugin.d.mts +2 -2
  514. package/src/foundry/common/prosemirror/image-plugin.d.mts +1 -1
  515. package/src/foundry/common/prosemirror/menu.d.mts +3 -3
  516. package/src/foundry/common/prosemirror/paste-transformer.d.mts +1 -1
  517. package/src/foundry/common/prosemirror/plugin.d.mts +2 -2
  518. package/src/foundry/common/prosemirror/schema/index.d.mts +0 -1
  519. package/src/foundry/common/prosemirror/schema/lists.d.mts +2 -0
  520. package/src/foundry/common/prosemirror/util.d.mts +1 -1
  521. package/src/foundry/common/types.d.mts +3 -3
  522. package/src/foundry/common/utils/bitmask.d.mts +23 -11
  523. package/src/foundry/common/utils/collection.d.mts +61 -38
  524. package/src/foundry/common/utils/color.d.mts +20 -2
  525. package/src/foundry/common/utils/event-emitter.d.mts +32 -17
  526. package/src/foundry/common/utils/helpers.d.mts +36 -26
  527. package/src/foundry/common/utils/http.d.mts +2 -2
  528. package/src/foundry/common/utils/module.d.mts +2 -2
  529. package/src/foundry/common/utils/string-tree.d.mts +45 -39
  530. package/src/foundry/common/utils/word-tree.d.mts +10 -23
  531. package/src/foundry/index.d.mts +0 -1
  532. package/src/foundry/{clipper → public/scripts/clipper}/clipper.d.mts +58 -16
  533. package/src/foundry/public/scripts/index.d.mts +1 -0
  534. package/src/foundry/public/scripts/workers/image-compressor.d.mts +23 -0
  535. package/src/foundry/public/scripts/workers/index.d.mts +1 -0
  536. package/{index-lenient.d.mts → src/index-lenient.d.mts} +2 -0
  537. package/src/index.d.mts +6 -0
  538. package/src/tsconfig.json +15 -0
  539. package/src/types/augments/particles.d.mts +29 -0
  540. package/src/types/augments/pixi.d.mts +1024 -21
  541. package/src/types/augments/smooth.d.mts +31 -0
  542. package/src/types/augments/tinyMCE.d.mts +1 -1
  543. package/src/types/config.d.mts +18 -313
  544. package/src/types/documentConfiguration.d.mts +286 -542
  545. package/src/types/index.d.mts +1 -1
  546. package/src/types/lib.d.mts +12 -0
  547. package/src/types/workers/image-compressor.d.mts +176 -0
  548. package/src/utils/index.d.mts +1279 -0
  549. package/tsconfig.json +29 -0
  550. package/tsconfig.main.json +8 -0
  551. package/tsconfig.miscellaneous.json +16 -0
  552. package/index.d.mts +0 -5
  553. package/src/foundry/client/apps/placeables/light-config.d.mts +0 -100
  554. package/src/foundry/client/apps/placeables/sound-config.d.mts +0 -43
  555. package/src/foundry/common/documents/module.d.mts +0 -35
  556. package/src/foundry/common/primitives/regex.d.mts +0 -12
  557. package/src/types/helperTypes.d.mts +0 -583
  558. package/src/types/utils.d.mts +0 -539
  559. /package/src/foundry/{clipper → public/scripts/clipper}/index.d.mts +0 -0
@@ -1,53 +1,568 @@
1
- import type { DeepPartial, InexactPartial } from "../../../../types/utils.d.mts";
1
+ import type { ConfiguredCard } from "../../../../configuration/index.d.mts";
2
+ import type { AnyObject, DeepPartial, Merge } from "#utils";
3
+ import type { documents } from "../../../client-esm/client.d.mts";
2
4
  import type Document from "../../../common/abstract/document.d.mts";
3
- import type { DocumentDatabaseOperations } from "../../../common/abstract/document.d.mts";
4
- import type { CardFaceData } from "../../../common/documents/_types.d.mts";
5
+ import type { DataSchema } from "../../../common/data/fields.d.mts";
6
+ import type { fields } from "../../../common/data/module.d.mts";
5
7
  import type BaseCard from "../../../common/documents/card.d.mts";
6
8
 
7
9
  declare global {
8
10
  namespace Card {
9
- type Metadata = Document.MetadataFor<Card>;
11
+ /**
12
+ * The document's name.
13
+ */
14
+ type Name = "Card";
15
+
16
+ /**
17
+ * The arguments to construct the document.
18
+ */
19
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
20
+
21
+ /**
22
+ * The documents embedded within `Card`.
23
+ */
24
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
25
+
26
+ /**
27
+ * The implementation of the `Card` document instance configured through `CONFIG.Card.documentClass` in Foundry and
28
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredCard | `fvtt-types/configuration/ConfiguredCard`} in fvtt-types.
29
+ */
30
+ type Implementation = Document.ImplementationFor<Name>;
31
+
32
+ /**
33
+ * The implementation of the `Card` document configured through `CONFIG.Card.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: "Card";
47
+ collection: "cards";
48
+ hasTypeData: true;
49
+ indexed: true;
50
+ label: string;
51
+ labelPlural: string;
52
+ permissions: Metadata.Permissions;
53
+ compendiumIndexFields: ["name", "type", "suit", "sort"];
54
+ schemaVersion: string;
55
+ }>
56
+ > {}
57
+
58
+ namespace Metadata {
59
+ /**
60
+ * The permissions for whether a certain user can create, update, or delete this document.
61
+ */
62
+ interface Permissions {
63
+ create(user: User.Internal.Implementation, doc: Implementation, data: UpdateData): boolean;
64
+ update(user: User.Internal.Implementation, doc: Implementation, data: UpdateData): boolean;
65
+ }
66
+ }
67
+
68
+ /**
69
+ * Allowed subtypes of `Card`. 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.Card.dataModels | `CONFIG.Card.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<"Card">;
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<"Card">;
88
+
89
+ /**
90
+ * `Known` represents the types of `Card` that a user explicitly registered.
91
+ *
92
+ * @see {@link ConfiguredSubTypes} for more information.
93
+ */
94
+ type Known = Card.OfType<Card.ConfiguredSubTypes>;
95
+
96
+ /**
97
+ * `OfType` returns an instance of `Card` with the corresponding type. This works with both the
98
+ * builtin `Card` class or a custom subclass if that is set up in
99
+ * {@link ConfiguredCard | `fvtt-types/configuration/ConfiguredCard`}.
100
+ */
101
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types
102
+ type OfType<Type extends SubType> = Document.Internal.OfType<ConfiguredCard<Type>, Card<Type>>;
103
+
104
+ /**
105
+ * `SystemOfType` returns the system property for a specific `Card` 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<"Card"> {}
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 = Cards.Implementation | null;
119
+
120
+ /**
121
+ * A document's descendants are any child documents, grandchild documents, etc.
122
+ * This is a union of all instances, or never if the document doesn't have any descendants.
123
+ */
124
+ type Descendant = never;
125
+
126
+ /**
127
+ * A document's descendants are any child documents, grandchild documents, etc.
128
+ * This is a union of all classes, or never if the document doesn't have any descendants.
129
+ */
130
+ type DescendantClass = never;
131
+
132
+ /**
133
+ * Types of `CompendiumCollection` this document might be contained in.
134
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
135
+ */
136
+ // Note: Takes any document in the heritage chain (i.e. itself or any parent, transitive or not) that can be contained in a compendium.
137
+ type Pack = CompendiumCollection.ForDocument<"Cards">;
138
+
139
+ /**
140
+ * An embedded document is a document contained in another.
141
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
142
+ *
143
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
144
+ */
145
+ type Embedded = never;
146
+
147
+ /**
148
+ * The name of the world or embedded collection this document can find itself in.
149
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
150
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
151
+ */
152
+ type ParentCollectionName = Metadata["collection"];
153
+
154
+ /**
155
+ * The world collection that contains this document type. Will be `never` if none exists.
156
+ */
157
+ type CollectionClass = never;
158
+
159
+ /**
160
+ * The world collection that contains this document type. Will be `never` if none exists.
161
+ */
162
+ type Collection = never;
163
+
164
+ /**
165
+ * An instance of `Card` that comes from the database but failed validation meaning that
166
+ * its `system` and `_source` could theoretically be anything.
167
+ */
168
+ interface Invalid<out SubType extends Card.SubType = Card.SubType> extends Document.Invalid<OfType<SubType>> {}
169
+
170
+ /**
171
+ * An instance of `Card` that comes from the database.
172
+ */
173
+ interface Stored<out SubType extends Card.SubType = Card.SubType> extends Document.Stored<OfType<SubType>> {}
174
+
175
+ /**
176
+ * The data put in {@link Card._source | `Card#_source`}. This data is what was
177
+ * persisted to the database and therefore it must be valid JSON.
178
+ *
179
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
180
+ * but initialized as a {@link Set | `Set`}.
181
+ */
182
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
183
+
184
+ /**
185
+ * @deprecated {@link Card.Source | `Card.Source`}
186
+ */
187
+ type PersistedData = Source;
188
+
189
+ /**
190
+ * The data necessary to create a document. Used in places like {@link Card.create | `Card.create`}
191
+ * and {@link Card | `new Card(...)`}.
192
+ *
193
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
194
+ * with the right values. This means you can pass a `Set` instance, an array of values,
195
+ * a generator, or any other iterable.
196
+ */
197
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
198
+
199
+ /**
200
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
201
+ * {@link Card.name | `Card#name`}.
202
+ *
203
+ * This is data transformed from {@link Card.Source | `Card.Source`} and turned into more
204
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
205
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
206
+ */
207
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
208
+
209
+ /**
210
+ * The data used to update a document, for example {@link Card.update | `Card#update`}.
211
+ * It is a distinct type from {@link Card.CreateData | `DeepPartial<Card.CreateData>`} because
212
+ * it has different rules for `null` and `undefined`.
213
+ */
214
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
215
+
216
+ /**
217
+ * The schema for {@link Card | `Card`}. This is the source of truth for how an Card document
218
+ * must be structured.
219
+ *
220
+ * Foundry uses this schema to validate the structure of the {@link Card | `Card`}. For example
221
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
222
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
223
+ * starting as an array in the database, initialized as a set, and allows updates with any
224
+ * iterable.
225
+ */
226
+ interface Schema extends DataSchema {
227
+ /**
228
+ * The _id which uniquely identifies this Card document
229
+ * @defaultValue `null`
230
+ */
231
+ _id: fields.DocumentIdField;
232
+
233
+ /** The text name of this card */
234
+ // FIXME: This field is `required` with no `initial`, so actually required for construction; Currently an AssignmentType override is required to enforce this
235
+ name: fields.StringField<{ required: true; blank: false; label: "CARD.Name" }, string>;
236
+
237
+ /**
238
+ * A text description of this card which applies to all faces
239
+ * @defaultValue `""`
240
+ */
241
+ description: fields.HTMLField<{ label: "CARD.Description" }>;
242
+
243
+ /**
244
+ * A category of card (for example, a suit) to which this card belongs
245
+ * @defaultValue `"base"`
246
+ */
247
+ type: fields.DocumentTypeField<typeof BaseCard, { initial: typeof CONST.BASE_DOCUMENT_TYPE }>;
248
+
249
+ /**
250
+ * Game system data which is defined by the system template.json model
251
+ * @defaultValue `{}`
252
+ */
253
+ system: fields.TypeDataField<typeof BaseCard>;
254
+
255
+ /**
256
+ * An optional suit designation which is used by default sorting
257
+ * @defaultValue `undefined`
258
+ */
259
+ suit: fields.StringField<{ label: "CARD.Suit" }>;
10
260
 
11
- type ConfiguredClass = Document.ConfiguredClassForName<"Card">;
12
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"Card">;
261
+ /**
262
+ * An optional numeric value of the card which is used by default sorting
263
+ * @defaultValue `null`
264
+ */
265
+ value: fields.NumberField<{ label: "CARD.Value" }>;
13
266
 
14
- interface DatabaseOperations extends DocumentDatabaseOperations<Card> {}
267
+ /**
268
+ * An object of face data which describes the back of this card
269
+ */
270
+ back: fields.SchemaField<{
271
+ /**
272
+ * A name for this card face
273
+ * @defaultValue `undefined`
274
+ */
275
+ name: fields.StringField<{ label: "CARD.BackName" }>;
15
276
 
16
- // Helpful aliases
17
- type TypeNames = BaseCard.TypeNames;
18
- type ConstructorData = BaseCard.ConstructorData;
19
- type UpdateData = BaseCard.UpdateData;
20
- type Schema = BaseCard.Schema;
21
- type Source = BaseCard.Source;
277
+ /**
278
+ * Displayed text that belongs to this face
279
+ * @defaultValue `""`
280
+ */
281
+ text: fields.HTMLField<{ label: "CARD.BackText" }>;
282
+
283
+ /**
284
+ * A displayed image or video file which depicts the face
285
+ * @defaultValue `null`
286
+ */
287
+ img: fields.FilePathField<{ categories: ["IMAGE", "VIDEO"]; label: "CARD.BackImage" }>;
288
+ }>;
289
+
290
+ /**
291
+ * An array of face data which represent displayable faces of this card
292
+ * @defaultValue `[]`
293
+ */
294
+ faces: fields.ArrayField<fields.SchemaField<Card.FaceSchema>>;
295
+
296
+ /**
297
+ * The index of the currently displayed face, or null if the card is face-down
298
+ * @defaultValue `null`
299
+ */
300
+ face: fields.NumberField<{ required: true; initial: null; integer: true; min: 0; label: "CARD.Face" }>;
301
+
302
+ /**
303
+ * Whether this card is currently drawn from its source deck
304
+ * @defaultValue `false`
305
+ */
306
+ drawn: fields.BooleanField<{ label: "CARD.Drawn" }>;
307
+
308
+ /**
309
+ * The document ID of the origin deck to which this card belongs
310
+ * @defaultValue `null`
311
+ */
312
+ origin: fields.ForeignDocumentField<typeof documents.BaseCards>;
313
+
314
+ /**
315
+ * The visible width of this card
316
+ * @defaultValue `null`
317
+ */
318
+ width: fields.NumberField<{ integer: true; positive: true; label: "Width" }>;
319
+
320
+ /**
321
+ * The visible height of this card
322
+ * @defaultValue `null`
323
+ */
324
+ height: fields.NumberField<{ integer: true; positive: true; label: "Height" }>;
325
+
326
+ /**
327
+ * The angle of rotation of this card
328
+ * @defaultValue `0`
329
+ */
330
+ rotation: fields.AngleField<{ label: "Rotation" }>;
331
+
332
+ /**
333
+ * The sort order of this card relative to others in the same stack
334
+ * @defaultValue `0`
335
+ */
336
+ sort: fields.IntegerSortField;
337
+
338
+ /**
339
+ * An object of optional key/value flags
340
+ * @defaultValue `{}`
341
+ */
342
+ flags: fields.ObjectField.FlagsField<Name>;
343
+
344
+ _stats: fields.DocumentStatsField;
345
+ }
346
+
347
+ interface FaceSchema extends DataSchema {
348
+ /**
349
+ * A name for this card face
350
+ * @defaultValue `undefined`
351
+ */
352
+ name: fields.StringField<{ label: "CARD.FaceName" }>;
353
+
354
+ /**
355
+ * Displayed text that belongs to this face
356
+ * @defaultValue `""`
357
+ */
358
+ text: fields.HTMLField<{ label: "CARD.FaceText" }>;
359
+
360
+ /**
361
+ * A displayed image or video file which depicts the face
362
+ * @defaultValue `BaseCard.DEFAULT_ICON`
363
+ */
364
+ img: fields.FilePathField<{
365
+ categories: ["IMAGE", "VIDEO"];
366
+ initial: () => typeof BaseCard.DEFAULT_ICON;
367
+ label: "CARD.FaceImage";
368
+ }>;
369
+ }
370
+
371
+ interface FaceData extends fields.SchemaField.InitializedData<FaceSchema> {}
372
+
373
+ namespace Database {
374
+ /** Options passed along in Get operations for Card Documents */
375
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<Card.Parent> {}
376
+
377
+ /** Options passed along in Create operations for Card Documents */
378
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
379
+ extends foundry.abstract.types.DatabaseCreateOperation<Card.CreateData, Card.Parent, Temporary> {}
380
+
381
+ /** Options passed along in Delete operations for Card Documents */
382
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<Card.Parent> {}
383
+
384
+ /** Options passed along in Update operations for Card Documents */
385
+ interface Update extends foundry.abstract.types.DatabaseUpdateOperation<Card.UpdateData, Card.Parent> {}
386
+
387
+ /** Operation for {@link Card.createDocuments | `Card.createDocuments`} */
388
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
389
+ extends Document.Database.CreateOperation<Card.Database.Create<Temporary>> {}
390
+
391
+ /** Operation for {@link Card.updateDocuments | `Card.updateDocuments`} */
392
+ interface UpdateDocumentsOperation extends Document.Database.UpdateDocumentsOperation<Card.Database.Update> {}
393
+
394
+ /** Operation for {@link Card.deleteDocuments | `Card.deleteDocuments`} */
395
+ interface DeleteDocumentsOperation extends Document.Database.DeleteDocumentsOperation<Card.Database.Delete> {}
396
+
397
+ /** Operation for {@link Card.create | `Card.create`} */
398
+ interface CreateOperation<Temporary extends boolean | undefined>
399
+ extends Document.Database.CreateOperation<Card.Database.Create<Temporary>> {}
400
+
401
+ /** Operation for {@link Card.update | `Card#update`} */
402
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
403
+
404
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
405
+
406
+ /** Options for {@link Card.get | `Card.get`} */
407
+ interface GetOptions extends Document.Database.GetOptions {}
408
+
409
+ /** Options for {@link Card._preCreate | `Card#_preCreate`} */
410
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
411
+
412
+ /** Options for {@link Card._onCreate | `Card#_onCreate`} */
413
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
414
+
415
+ /** Operation for {@link Card._preCreateOperation | `Card._preCreateOperation`} */
416
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<Card.Database.Create> {}
417
+
418
+ /** Operation for {@link Card._onCreateOperation | `Card#_onCreateOperation`} */
419
+ interface OnCreateOperation extends Card.Database.Create {}
420
+
421
+ /** Options for {@link Card._preUpdate | `Card#_preUpdate`} */
422
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
423
+
424
+ /** Options for {@link Card._onUpdate | `Card#_onUpdate`} */
425
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
426
+
427
+ /** Operation for {@link Card._preUpdateOperation | `Card._preUpdateOperation`} */
428
+ interface PreUpdateOperation extends Card.Database.Update {}
429
+
430
+ /** Operation for {@link Card._onUpdateOperation | `Card._preUpdateOperation`} */
431
+ interface OnUpdateOperation extends Card.Database.Update {}
432
+
433
+ /** Options for {@link Card._preDelete | `Card#_preDelete`} */
434
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
435
+
436
+ /** Options for {@link Card._onDelete | `Card#_onDelete`} */
437
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
438
+
439
+ /** Options for {@link Card._preDeleteOperation | `Card#_preDeleteOperation`} */
440
+ interface PreDeleteOperation extends Card.Database.Delete {}
441
+
442
+ /** Options for {@link Card._onDeleteOperation | `Card#_onDeleteOperation`} */
443
+ interface OnDeleteOperation extends Card.Database.Delete {}
444
+
445
+ /** Context for {@link Card._onDeleteOperation | `Card._onDeleteOperation`} */
446
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<Card.Parent> {}
447
+
448
+ /** Context for {@link Card._onCreateDocuments | `Card._onCreateDocuments`} */
449
+ interface OnCreateDocumentsContext extends Document.ModificationContext<Card.Parent> {}
450
+
451
+ /** Context for {@link Card._onUpdateDocuments | `Card._onUpdateDocuments`} */
452
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<Card.Parent> {}
453
+
454
+ /**
455
+ * Options for {@link Card._preCreateDescendantDocuments | `Card#_preCreateDescendantDocuments`}
456
+ * and {@link Card._onCreateDescendantDocuments | `Card#_onCreateDescendantDocuments`}
457
+ */
458
+ interface CreateOptions extends Document.Database.CreateOptions<Card.Database.Create> {}
459
+
460
+ /**
461
+ * Options for {@link Card._preUpdateDescendantDocuments | `Card#_preUpdateDescendantDocuments`}
462
+ * and {@link Card._onUpdateDescendantDocuments | `Card#_onUpdateDescendantDocuments`}
463
+ */
464
+ interface UpdateOptions extends Document.Database.UpdateOptions<Card.Database.Update> {}
465
+
466
+ /**
467
+ * Options for {@link Card._preDeleteDescendantDocuments | `Card#_preDeleteDescendantDocuments`}
468
+ * and {@link Card._onDeleteDescendantDocuments | `Card#_onDeleteDescendantDocuments`}
469
+ */
470
+ interface DeleteOptions extends Document.Database.DeleteOptions<Card.Database.Delete> {}
471
+ }
472
+
473
+ /**
474
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
475
+ */
476
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
477
+
478
+ namespace Flags {
479
+ /**
480
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
481
+ */
482
+ type Scope = Document.FlagKeyOf<Flags>;
483
+
484
+ /**
485
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
486
+ */
487
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
488
+
489
+ /**
490
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
491
+ */
492
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
493
+ }
494
+
495
+ /**
496
+ * @remarks {@link Card.pass | `Card#pass`} calls {@link Cards.pass | `this.parent.pass`} with `action: "pass"` provided
497
+ */
498
+ interface PassOptions extends Omit<Cards.PassOptions, "action"> {}
499
+
500
+ /**
501
+ * @remarks {@link Card.play | `Card#play`} calls {@link Cards.pass | `this.parent.pass`} with `action: "play"` provided
502
+ */
503
+ interface PlayOptions extends PassOptions {}
504
+
505
+ /**
506
+ * @remarks {@link Card.discard | `Card#discard`} calls {@link Cards.pass | `this.parent.pass`} with `action: "discard"` provided
507
+ */
508
+ interface DiscardOptions extends PassOptions {}
509
+
510
+ /**
511
+ * @deprecated {@link Card.Database | `Card.DatabaseOperation`}
512
+ */
513
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
514
+ interface DatabaseOperations extends Document.Database.Operations<Card.Implementation> {}
515
+
516
+ /**
517
+ * @deprecated {@link Card.SubType | `Card.SubType`}
518
+ */
519
+ type TypeNames = Card.SubType;
520
+
521
+ /**
522
+ * @deprecated {@link Card.CreateData | `Card.CreateData`}
523
+ */
524
+ interface ConstructorData extends Card.CreateData {}
525
+
526
+ /**
527
+ * @deprecated {@link Card.implementation | `Card.ImplementationClass`}
528
+ */
529
+ type ConfiguredClass = ImplementationClass;
530
+
531
+ /**
532
+ * @deprecated {@link Card.Implementation | `Card.Implementation`}
533
+ */
534
+ type ConfiguredInstance = Implementation;
22
535
  }
23
536
 
24
537
  /**
25
538
  * The client-side Card document which extends the common BaseCard document model.
26
539
  *
27
- * @see {@link Cards} The Cards document type which contains Card embedded documents
540
+ * @see {@link Cards | `Cards`} The Cards document type which contains Card embedded documents
28
541
  */
29
- class Card extends ClientDocumentMixin(foundry.documents.BaseCard) {
30
- static override metadata: Card.Metadata;
542
+ class Card<out SubType extends Card.SubType = Card.SubType> extends ClientDocumentMixin(
543
+ foundry.documents.BaseCard,
544
+ )<SubType> {
545
+ /**
546
+ * @param data - Initial data from which to construct the `Card`
547
+ * @param context - Construction context options
548
+ */
549
+ constructor(...args: Card.ConstructorArgs);
31
550
 
32
551
  /**
33
552
  * The current card face
34
553
  */
35
- get currentFace(): CardFaceData | null;
554
+ get currentFace(): Card.FaceData | null;
36
555
 
37
556
  /**
38
557
  * The image of the currently displayed card face or back
558
+ * @remarks Falls back to {@linkcode Card.DEFAULT_ICON}
39
559
  */
40
560
  get img(): string;
41
561
 
42
- /**
43
- * The name of the current card face, or the name of the card itself
44
- */
45
- get name(): string;
46
-
47
562
  /**
48
563
  * A reference to the source Cards document which defines this Card.
49
564
  */
50
- get source(): Cards.ConfiguredInstance | undefined | null;
565
+ get source(): Cards.Implementation | null;
51
566
 
52
567
  /**
53
568
  * A convenience property for whether or not the Card is within its source Cards stack. Cards in decks are always
@@ -70,6 +585,7 @@ declare global {
70
585
  */
71
586
  get hasPreviousFace(): boolean;
72
587
 
588
+ /** @remarks Provides fallback value for `back.img`, and overrides `name` with the face/back's name if appropriate */
73
589
  override prepareDerivedData(): void;
74
590
 
75
591
  /**
@@ -79,49 +595,87 @@ declare global {
79
595
  * @param face - A specific face to flip the card to
80
596
  * @returns A reference to this card after the flip operation is complete
81
597
  */
82
- flip(face?: number | null): Promise<Card.ConfiguredInstance | undefined>;
598
+ flip(face?: number | null): Promise<Card.Implementation | undefined>;
83
599
 
84
600
  /**
85
601
  * Pass this Card to some other Cards document.
86
602
  * @param to - A new Cards document this card should be passed to
87
- * @param options - (default: `{}`)
603
+ * @param options - Options which modify the pass operation (default: `{}`)
88
604
  * @returns A reference to this card after the it has been passed to another parent document
89
605
  */
90
- pass(to: Cards.ConfiguredInstance, options?: Cards.PassOptions): Promise<Card.ConfiguredInstance | undefined>;
606
+ // options: not null (destructured)
607
+ pass(to: Cards.Implementation, options?: Card.PassOptions): Promise<Card.Implementation | undefined>;
91
608
 
92
609
  /**
93
610
  * Play a specific card to some other Cards document.
94
- * This method is currently a more semantic alias for Card#pass.
95
- * @see Card#pass
611
+ * @see {@link Card.pass | `Card#pass`}
612
+ * @remarks This method is currently a more semantic alias for {@link Card.pass | `Card#pass`}.
96
613
  */
97
- play(to: Cards.ConfiguredInstance, options?: Cards.PassOptions): Promise<Card.ConfiguredInstance | undefined>;
614
+ // options: not null (destructured)
615
+ play(to: Cards.Implementation, options?: Card.PlayOptions): Promise<Card.Implementation | undefined>;
98
616
 
99
617
  /**
100
618
  * Discard a specific card to some other Cards document.
101
- * This method is currently a more semantic alias for Card#pass.
102
- * @see Card#pass
619
+ * @see {@link Card.pass | `Card#pass`}
620
+ * @remarks This method is currently a more semantic alias for {@link Card.pass | `Card#pass`}.
103
621
  */
104
- discard(to: Cards.ConfiguredInstance, options?: Cards.PassOptions): Promise<Card.ConfiguredInstance | undefined>;
622
+ // options: not null (destructured)
623
+ discard(to: Cards.Implementation, options?: Card.DiscardOptions): Promise<Card.Implementation | undefined>;
105
624
 
106
625
  /**
107
626
  * Recall this Card to its original Cards parent.
108
- * @param options - Options which modify the recall operation
109
- * (default: `{}`)
110
- * @returns A reference to the recallled card belonging to its original parent
627
+ * @param options - Options which modify the recall operation (default: `{}`)
628
+ * @returns A reference to the recalled card belonging to its original parent
629
+ * @remarks Core's implementation doesn't use `options` at all
111
630
  */
112
- recall(options?: Cards.ResetOptions): Promise<Card.ConfiguredInstance>;
631
+ // options: not null (parameter default only)
632
+ recall(options?: AnyObject): Promise<Card.Implementation | undefined>;
113
633
 
114
634
  /**
115
635
  * Create a chat message which displays this Card.
116
- * @param messageData - Additional data which becomes part of the created ChatMessageData
117
- * (default: `{}`)
118
- * @param options - Options which modify the message creation operation
119
- * (default: `{}`)
636
+ * @param messageData - Additional data which becomes part of the created ChatMessageData (default: `{}`)
637
+ * @param options - Options which modify the message creation operation (default: `{}`)
120
638
  * @returns The created chat message
121
639
  */
122
- toMessage(
123
- messageData?: DeepPartial<foundry.documents.BaseChatMessage.ConstructorData>,
124
- options?: InexactPartial<Document.OnCreateOptions<"ChatMessage">>,
125
- ): Promise<ChatMessage.ConfiguredInstance | undefined>;
640
+ toMessage<Temporary extends boolean | undefined = false>(
641
+ messageData?: DeepPartial<foundry.documents.BaseChatMessage.CreateData>,
642
+ options?: ChatMessage.Database.CreateOperation<Temporary>,
643
+ ): Promise<Document.TemporaryIf<ChatMessage.Implementation, Temporary> | undefined>;
644
+
645
+ /*
646
+ * After this point these are not really overridden methods.
647
+ * They are here because Foundry's documents are complex and have lots of edge cases.
648
+ * There are DRY ways of representing this but this ends up being harder to understand
649
+ * for end users extending these functions, especially for static methods. There are also a
650
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
651
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
652
+ * separate like this helps against circularities.
653
+ */
654
+
655
+ // ClientDocument overrides
656
+
657
+ // Descendant Document operations have been left out because Card does not have any descendant documents.
658
+
659
+ // context: not null (destructured)
660
+ static override defaultName(context?: Document.DefaultNameContext<"Card", NonNullable<Card.Parent>>): string;
661
+
662
+ /** @remarks `context.parent` is required as creation requires one */
663
+ static override createDialog(
664
+ data: Document.CreateDialogData<Card.CreateData> | undefined,
665
+ context: Document.CreateDialogContext<"Card", NonNullable<Card.Parent>>,
666
+ ): Promise<Card.Stored | null | undefined>;
667
+
668
+ // options: not null (parameter default only)
669
+ static override fromDropData(
670
+ data: Document.DropData<Card.Implementation>,
671
+ options?: AnyObject,
672
+ ): Promise<Card.Implementation | undefined>;
673
+
674
+ static override fromImport(
675
+ source: Card.Source,
676
+ context?: Document.FromImportContext<Card.Parent> | null,
677
+ ): Promise<Card.Implementation>;
678
+
679
+ override _onClickDocumentLink(event: MouseEvent): ClientDocument.OnClickDocumentLinkReturn;
126
680
  }
127
681
  }