@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,68 +1,568 @@
1
- import type { InexactPartial } from "fvtt-types/utils";
2
- import type Document from "../../../common/abstract/document.d.mts";
3
- import type BaseChatMessage from "../../../common/documents/chat-message.d.mts";
1
+ import type { ConfiguredChatMessage } from "fvtt-types/configuration";
2
+ import type { AnyObject, InexactPartial, InterfaceToObject, Merge } from "fvtt-types/utils";
3
+ import type { documents } from "#client-esm/client.d.mts";
4
+ import type Document from "#common/abstract/document.d.mts";
5
+ import type { DataSchema } from "#common/data/fields.d.mts";
6
+ import type BaseChatMessage from "#common/documents/chat-message.d.mts";
7
+
8
+ import fields = foundry.data.fields;
4
9
 
5
10
  declare global {
6
11
  namespace ChatMessage {
7
- type Metadata = Document.MetadataFor<ChatMessage>;
12
+ /**
13
+ * The document's name.
14
+ */
15
+ type Name = "ChatMessage";
8
16
 
9
- type ConfiguredClass = Document.ConfiguredClassForName<"ChatMessage">;
10
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"ChatMessage">;
17
+ /**
18
+ * The arguments to construct the document.
19
+ */
20
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
11
21
 
12
- /* eslint-disable @typescript-eslint/no-empty-object-type */
13
- interface DatabaseOperations
14
- extends Document.Database.Operations<
15
- ChatMessage,
16
- { rollMode: foundry.CONST.DICE_ROLL_MODES; chatBubble: boolean },
17
- {},
18
- {}
22
+ /**
23
+ * The documents embedded within `ChatMessage`.
24
+ */
25
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
26
+
27
+ /**
28
+ * The implementation of the `ChatMessage` document instance configured through `CONFIG.ChatMessage.documentClass` in Foundry and
29
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredChatMessage | `fvtt-types/configuration/ConfiguredChatMessage`} in fvtt-types.
30
+ */
31
+ type Implementation = Document.ImplementationFor<Name>;
32
+
33
+ /**
34
+ * The implementation of the `ChatMessage` document configured through `CONFIG.ChatMessage.documentClass` in Foundry and
35
+ * {@link DocumentClassConfig | `DocumentClassConfig`} in fvtt-types.
36
+ */
37
+ type ImplementationClass = Document.ImplementationClassFor<Name>;
38
+
39
+ /**
40
+ * A document's metadata is special information about the document ranging anywhere from its name,
41
+ * whether it's indexed, or to the permissions a user has over it.
42
+ */
43
+ interface Metadata
44
+ extends Merge<
45
+ Document.Metadata.Default,
46
+ Readonly<{
47
+ name: "ChatMessage";
48
+ collection: "messages";
49
+ label: string;
50
+ labelPlural: string;
51
+ hasTypeData: true;
52
+ isPrimary: true;
53
+ permissions: Metadata.Permissions;
54
+ schemaVersion: string;
55
+ }>
19
56
  > {}
20
- /* eslint-enable @typescript-eslint/no-empty-object-type */
21
57
 
22
- // Helpful aliases
23
- type TypeNames = BaseChatMessage.TypeNames;
24
- type ConstructorData = BaseChatMessage.ConstructorData;
25
- type UpdateData = BaseChatMessage.UpdateData;
26
- type Schema = BaseChatMessage.Schema;
27
- type Source = BaseChatMessage.Source;
58
+ namespace Metadata {
59
+ /**
60
+ * The permissions for whether a certain user can create, update, or delete this document.
61
+ */
62
+ interface Permissions {
63
+ create(user: User.Internal.Implementation, doc: Implementation): boolean;
64
+ update(user: User.Internal.Implementation, doc: Implementation, data: UpdateData): boolean;
65
+ }
66
+ }
67
+
68
+ /**
69
+ * Allowed subtypes of `ChatMessage`. 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.ChatMessage.dataModels | `CONFIG.ChatMessage.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<"ChatMessage">;
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<"ChatMessage">;
88
+
89
+ /**
90
+ * `Known` represents the types of `ChatMessage` that a user explicitly registered.
91
+ *
92
+ * @see {@link ConfiguredSubTypes} for more information.
93
+ */
94
+ type Known = ChatMessage.OfType<ChatMessage.ConfiguredSubTypes>;
95
+
96
+ /**
97
+ * `OfType` returns an instance of `ChatMessage` with the corresponding type. This works with both the
98
+ * builtin `ChatMessage` class or a custom subclass if that is set up in
99
+ * {@link ConfiguredChatMessage | `fvtt-types/configuration/ConfiguredChatMessage`}.
100
+ */
101
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types
102
+ type OfType<Type extends SubType> = Document.Internal.OfType<ConfiguredChatMessage<Type>, ChatMessage<Type>>;
103
+
104
+ /**
105
+ * `SystemOfType` returns the system property for a specific `ChatMessage` 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<"ChatMessage"> {}
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 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 = never;
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 `ChatMessage`s. Will be `never` if none exists.
156
+ */
157
+ type CollectionClass = Messages.ConfiguredClass;
158
+
159
+ /**
160
+ * The world collection that contains `ChatMessage`s. Will be `never` if none exists.
161
+ */
162
+ type Collection = Messages.Configured;
163
+
164
+ /**
165
+ * An instance of `ChatMessage` that comes from the database but failed validation meaining that
166
+ * its `system` and `_source` could theoretically be anything.
167
+ */
168
+ interface Invalid<out SubType extends ChatMessage.SubType = ChatMessage.SubType>
169
+ extends Document.Invalid<OfType<SubType>> {}
170
+
171
+ /**
172
+ * An instance of `ChatMessage` that comes from the database.
173
+ */
174
+ interface Stored<out SubType extends ChatMessage.SubType = ChatMessage.SubType>
175
+ extends Document.Stored<OfType<SubType>> {}
176
+
177
+ /**
178
+ * The data put in {@link ChatMessage._source | `ChatMessage#_source`}. This data is what was
179
+ * persisted to the database and therefore it must be valid JSON.
180
+ *
181
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
182
+ * but initialized as a {@link Set | `Set`}.
183
+ */
184
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
185
+
186
+ /**
187
+ * @deprecated {@link ChatMessage.Source | `ChatMessage.Source`}
188
+ */
189
+ type PersistedData = Source;
190
+
191
+ /**
192
+ * The data necessary to create a document. Used in places like {@link ChatMessage.create | `ChatMessage.create`}
193
+ * and {@link ChatMessage | `new ChatMessage(...)`}.
194
+ *
195
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
196
+ * with the right values. This means you can pass a `Set` instance, an array of values,
197
+ * a generator, or any other iterable.
198
+ */
199
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
200
+
201
+ /**
202
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
203
+ * {@link ChatMessage.name | `ChatMessage#name`}.
204
+ *
205
+ * This is data transformed from {@link ChatMessage.Source | `ChatMessage.Source`} and turned into more
206
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
207
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
208
+ */
209
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
210
+
211
+ /**
212
+ * The data used to update a document, for example {@link ChatMessage.update | `ChatMessage#update`}.
213
+ * It is a distinct type from {@link ChatMessage.CreateData | `DeepPartial<ChatMessage.CreateData>`} because
214
+ * it has different rules for `null` and `undefined`.
215
+ */
216
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
217
+
218
+ /**
219
+ * The schema for {@link ChatMessage | `ChatMessage`}. This is the source of truth for how an ChatMessage document
220
+ * must be structured.
221
+ *
222
+ * Foundry uses this schema to validate the structure of the {@link ChatMessage | `ChatMessage`}. For example
223
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
224
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
225
+ * starting as an array in the database, initialized as a set, and allows updates with any
226
+ * iterable.
227
+ */
228
+ interface Schema extends DataSchema {
229
+ /**
230
+ * The _id which uniquely identifies this ChatMessage document
231
+ * @defaultValue `null`
232
+ */
233
+ _id: fields.DocumentIdField;
234
+
235
+ type: fields.DocumentTypeField<typeof BaseChatMessage, { initial: typeof foundry.CONST.BASE_DOCUMENT_TYPE }>;
236
+
237
+ system: fields.TypeDataField<typeof BaseChatMessage>;
238
+
239
+ /**
240
+ * The message type from CONST.CHAT_MESSAGE_STYLES
241
+ * @defaultValue `CONST.CHAT_MESSAGE_STYLES.OTHER`
242
+ */
243
+ style: fields.NumberField<{
244
+ required: true;
245
+ choices: CONST.CHAT_MESSAGE_STYLES[];
246
+ initial: typeof CONST.CHAT_MESSAGE_STYLES.OTHER;
247
+ validationError: "must be a value in CONST.CHAT_MESSAGE_TYPES";
248
+ }>;
249
+
250
+ /**
251
+ * The _id of the User document who generated this message
252
+ * @defaultValue `game?.user?.id`
253
+ */
254
+ author: fields.ForeignDocumentField<typeof documents.BaseUser, { nullable: false; initial: () => string }>;
255
+
256
+ /**
257
+ * The timestamp at which point this message was generated
258
+ * @defaultValue `Date.now()`
259
+ */
260
+ timestamp: fields.NumberField<{ required: true; nullable: false; initial: typeof Date.now }>;
261
+
262
+ /**
263
+ * An optional flavor text message which summarizes this message
264
+ * @defaultValue `""`
265
+ */
266
+ flavor: fields.HTMLField;
267
+
268
+ /**
269
+ * The HTML content of this chat message
270
+ * @defaultValue `""`
271
+ */
272
+ content: fields.HTMLField<{ textSearch: true }>;
273
+
274
+ /**
275
+ * A ChatSpeakerData object which describes the origin of the ChatMessage
276
+ * @defaultValue see properties
277
+ */
278
+ speaker: fields.SchemaField<SpeakerSchema>;
279
+
280
+ /**
281
+ * An array of User _id values to whom this message is privately whispered
282
+ * @defaultValue `[]`
283
+ */
284
+ whisper: fields.ArrayField<fields.ForeignDocumentField<typeof documents.BaseUser, { idOnly: true }>>;
285
+
286
+ /**
287
+ * Is this message sent blindly where the creating User cannot see it?
288
+ * @defaultValue `false`
289
+ */
290
+ blind: fields.BooleanField;
291
+
292
+ /**
293
+ * Serialized content of any Roll instances attached to the ChatMessage
294
+ * @defaultValue `[]`
295
+ */
296
+ rolls: fields.ArrayField<
297
+ fields.JSONField<
298
+ { validate: (rollJson: string) => void },
299
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
300
+ fields.JSONField.AssignmentType<{ validate: (rollJson: string) => void }>,
301
+ Roll // TODO: If initialization fails can this possibly be not-roll?
302
+ >
303
+ >;
304
+
305
+ /**
306
+ * The URL of an audio file which plays when this message is received
307
+ * @defaultValue `null`
308
+ */
309
+ sound: fields.FilePathField<{ categories: ["AUDIO"] }>;
310
+
311
+ /**
312
+ * Is this message styled as an emote?
313
+ * @defaultValue `false`
314
+ */
315
+ emote: fields.BooleanField;
316
+
317
+ /**
318
+ * An object of optional key/value flags
319
+ * @defaultValue `{}`
320
+ */
321
+ flags: fields.ObjectField.FlagsField<Name, InterfaceToObject<CoreFlags>>;
322
+
323
+ _stats: fields.DocumentStatsField;
324
+ }
325
+
326
+ interface SpeakerSchema extends DataSchema {
327
+ /**
328
+ * The _id of the Scene where this message was created
329
+ * @defaultValue `null`
330
+ */
331
+ scene: fields.ForeignDocumentField<typeof documents.BaseScene, { idOnly: true }>;
332
+
333
+ /**
334
+ * The _id of the Actor who generated this message
335
+ * @defaultValue `null`
336
+ */
337
+ actor: fields.ForeignDocumentField<typeof documents.BaseActor, { idOnly: true }>;
338
+
339
+ /**
340
+ * The _id of the Token who generated this message
341
+ * @defaultValue `null`
342
+ */
343
+ token: fields.ForeignDocumentField<typeof documents.BaseToken, { idOnly: true }>;
344
+
345
+ /**
346
+ * An overridden alias name used instead of the Actor or Token name
347
+ * @defaultValue `""`
348
+ */
349
+ alias: fields.StringField;
350
+ }
351
+
352
+ interface SpeakerData extends fields.SchemaField.InitializedData<SpeakerSchema> {}
353
+
354
+ namespace Database {
355
+ /** Options passed along in Get operations for ChatMessages */
356
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<ChatMessage.Parent> {}
357
+
358
+ /** Options passed along in Create operations for ChatMessages */
359
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
360
+ extends foundry.abstract.types.DatabaseCreateOperation<ChatMessage.CreateData, ChatMessage.Parent, Temporary> {
361
+ rollMode?: foundry.CONST.DICE_ROLL_MODES;
362
+ chatBubble?: boolean;
363
+ }
364
+
365
+ /** Options passed along in Delete operations for ChatMessages */
366
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<ChatMessage.Parent> {}
367
+
368
+ /** Options passed along in Update operations for ChatMessages */
369
+ interface Update
370
+ extends foundry.abstract.types.DatabaseUpdateOperation<ChatMessage.UpdateData, ChatMessage.Parent> {}
371
+
372
+ /** Operation for {@link ChatMessage.createDocuments | `ChatMessage.createDocuments`} */
373
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
374
+ extends Document.Database.CreateOperation<ChatMessage.Database.Create<Temporary>> {}
375
+
376
+ /** Operation for {@link ChatMessage.updateDocuments | `ChatMessage.updateDocuments`} */
377
+ interface UpdateDocumentsOperation
378
+ extends Document.Database.UpdateDocumentsOperation<ChatMessage.Database.Update> {}
379
+
380
+ /** Operation for {@link ChatMessage.deleteDocuments | `ChatMessage.deleteDocuments`} */
381
+ interface DeleteDocumentsOperation
382
+ extends Document.Database.DeleteDocumentsOperation<ChatMessage.Database.Delete> {}
383
+
384
+ /** Operation for {@link ChatMessage.create | `ChatMessage.create`} */
385
+ interface CreateOperation<Temporary extends boolean | undefined>
386
+ extends Document.Database.CreateOperation<ChatMessage.Database.Create<Temporary>> {}
387
+
388
+ /** Operation for {@link ChatMessage.update | `ChatMessage#update`} */
389
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
390
+
391
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
392
+
393
+ /** Options for {@link ChatMessage.get | `ChatMessage.get`} */
394
+ interface GetOptions extends Document.Database.GetOptions {}
395
+
396
+ /** Options for {@link ChatMessage._preCreate | `ChatMessage#_preCreate`} */
397
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
398
+
399
+ /** Options for {@link ChatMessage._onCreate | `ChatMessage#_onCreate`} */
400
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
401
+
402
+ /** Operation for {@link ChatMessage._preCreateOperation | `ChatMessage._preCreateOperation`} */
403
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<ChatMessage.Database.Create> {}
404
+
405
+ /** Operation for {@link ChatMessage._onCreateOperation | `ChatMessage#_onCreateOperation`} */
406
+ interface OnCreateOperation extends ChatMessage.Database.Create {}
407
+
408
+ /** Options for {@link ChatMessage._preUpdate | `ChatMessage#_preUpdate`} */
409
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
410
+
411
+ /** Options for {@link ChatMessage._onUpdate | `ChatMessage#_onUpdate`} */
412
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
413
+
414
+ /** Operation for {@link ChatMessage._preUpdateOperation | `ChatMessage._preUpdateOperation`} */
415
+ interface PreUpdateOperation extends ChatMessage.Database.Update {}
416
+
417
+ /** Operation for {@link ChatMessage._onUpdateOperation | `ChatMessage._preUpdateOperation`} */
418
+ interface OnUpdateOperation extends ChatMessage.Database.Update {}
419
+
420
+ /** Options for {@link ChatMessage._preDelete | `ChatMessage#_preDelete`} */
421
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
422
+
423
+ /** Options for {@link ChatMessage._onDelete | `ChatMessage#_onDelete`} */
424
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
425
+
426
+ /** Options for {@link ChatMessage._preDeleteOperation | `ChatMessage#_preDeleteOperation`} */
427
+ interface PreDeleteOperation extends ChatMessage.Database.Delete {}
428
+
429
+ /** Options for {@link ChatMessage._onDeleteOperation | `ChatMessage#_onDeleteOperation`} */
430
+ interface OnDeleteOperation extends ChatMessage.Database.Delete {}
431
+
432
+ /** Context for {@link ChatMessage._onDeleteOperation | `ChatMessage._onDeleteOperation`} */
433
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<ChatMessage.Parent> {}
434
+
435
+ /** Context for {@link ChatMessage._onCreateDocuments | `ChatMessage._onCreateDocuments`} */
436
+ interface OnCreateDocumentsContext extends Document.ModificationContext<ChatMessage.Parent> {}
437
+
438
+ /** Context for {@link ChatMessage._onUpdateDocuments | `ChatMessage._onUpdateDocuments`} */
439
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<ChatMessage.Parent> {}
440
+
441
+ /**
442
+ * Options for {@link ChatMessage._preCreateDescendantDocuments | `ChatMessage#_preCreateDescendantDocuments`}
443
+ * and {@link ChatMessage._onCreateDescendantDocuments | `ChatMessage#_onCreateDescendantDocuments`}
444
+ */
445
+ interface CreateOptions extends Document.Database.CreateOptions<ChatMessage.Database.Create> {}
446
+
447
+ /**
448
+ * Options for {@link ChatMessage._preUpdateDescendantDocuments | `ChatMessage#_preUpdateDescendantDocuments`}
449
+ * and {@link ChatMessage._onUpdateDescendantDocuments | `ChatMessage#_onUpdateDescendantDocuments`}
450
+ */
451
+ interface UpdateOptions extends Document.Database.UpdateOptions<ChatMessage.Database.Update> {}
452
+
453
+ /**
454
+ * Options for {@link ChatMessage._preDeleteDescendantDocuments | `ChatMessage#_preDeleteDescendantDocuments`}
455
+ * and {@link ChatMessage._onDeleteDescendantDocuments | `ChatMessage#_onDeleteDescendantDocuments`}
456
+ */
457
+ interface DeleteOptions extends Document.Database.DeleteOptions<ChatMessage.Database.Delete> {}
458
+ }
459
+
460
+ /**
461
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
462
+ */
463
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
464
+
465
+ namespace Flags {
466
+ /**
467
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
468
+ */
469
+ type Scope = Document.FlagKeyOf<Flags>;
470
+
471
+ /**
472
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
473
+ */
474
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
475
+
476
+ /**
477
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
478
+ */
479
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
480
+ }
481
+
482
+ interface CoreFlags {
483
+ core?: {
484
+ canPopout?: boolean;
485
+ initiativeRoll?: boolean;
486
+ nue?: boolean;
487
+ RollTable?: string;
488
+ };
489
+ }
28
490
 
29
491
  interface GetSpeakerOptions {
30
492
  /** The Scene in which the speaker resides */
31
- scene: Scene | null;
493
+ scene: Scene.Implementation | null;
32
494
 
33
495
  /** The Actor whom is speaking */
34
- actor: Actor | null | undefined;
496
+ actor: Actor.Implementation | null | undefined;
35
497
 
36
498
  /** The Token whom is speaking */
37
- token: TokenDocument | Token | null | undefined;
499
+ token: TokenDocument.Implementation | Token.Implementation | null | undefined;
38
500
 
39
501
  /** The name of the speaker to display */
40
502
  alias: string | undefined;
41
503
  }
42
504
 
43
505
  interface MessageData {
44
- message: Document.ToObjectFalseType<ChatMessage>;
45
- user: Document.Stored<User.ConfiguredInstance>;
46
- author: User.ConfiguredInstance | undefined;
506
+ message: ChatMessage.Source;
507
+ user: User.Stored;
508
+ author: User.Implementation | undefined;
47
509
  alias: string;
48
510
  cssClass: string;
49
511
  isWhisper: boolean;
50
512
  canDelete: boolean;
51
513
  whisperTo: string;
52
514
  }
515
+
516
+ /**
517
+ * @deprecated {@link ChatMessage.DatabaseOperation | `ChatMessage.DatabaseOperation`}
518
+ */
519
+ /* eslint-disable @typescript-eslint/no-empty-object-type */
520
+ interface DatabaseOperations
521
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
522
+ extends Document.Database.Operations<
523
+ ChatMessage.Implementation,
524
+ { rollMode: foundry.CONST.DICE_ROLL_MODES; chatBubble: boolean },
525
+ {},
526
+ {}
527
+ > {}
528
+ /* eslint-enable @typescript-eslint/no-empty-object-type */
529
+
530
+ /**
531
+ * @deprecated {@link ChatMessage.SubType | `ChatMessage.SubType`}
532
+ */
533
+ type TypeNames = ChatMessage.SubType;
534
+
535
+ /**
536
+ * @deprecated {@link ChatMessage.CreateData | `ChatMessage.CreateData`}
537
+ */
538
+ interface ConstructorData extends ChatMessage.CreateData {}
539
+
540
+ /**
541
+ * @deprecated {@link ChatMessage.implementation | `ChatMessage.ImplementationClass`}
542
+ */
543
+ type ConfiguredClass = ImplementationClass;
544
+
545
+ /**
546
+ * @deprecated {@link ChatMessage.Implementation | `ChatMessage.Implementation`}
547
+ */
548
+ type ConfiguredInstance = Implementation;
53
549
  }
54
550
 
55
551
  /**
56
552
  * The client-side ChatMessage document which extends the common BaseChatMessage abstraction.
57
553
  * Each ChatMessage document contains ChatMessageData which defines its data schema.
58
554
  *
59
- * @see {@link Messages} The world-level collection of ChatMessage documents
555
+ * @see {@link Messages | `Messages`} The world-level collection of ChatMessage documents
60
556
  *
61
557
  */
62
- class ChatMessage extends ClientDocumentMixin(foundry.documents.BaseChatMessage) {
63
- static override metadata: ChatMessage.Metadata;
64
-
65
- static get implementation(): ChatMessage.ConfiguredClass;
558
+ class ChatMessage<out SubType extends ChatMessage.SubType = ChatMessage.SubType> extends ClientDocumentMixin(
559
+ foundry.documents.BaseChatMessage,
560
+ )<SubType> {
561
+ /**
562
+ * @param data - Initial data from which to construct the `ChatMessage`
563
+ * @param context - Construction context options
564
+ */
565
+ constructor(...args: ChatMessage.ConstructorArgs);
66
566
 
67
567
  /**
68
568
  * Is the display of dice rolls in this message collapsed (false) or expanded (true)
@@ -115,9 +615,9 @@ declare global {
115
615
  * @returns The modified ChatMessage data with rollMode preferences applied
116
616
  */
117
617
  static applyRollMode(
118
- chatData: foundry.documents.BaseChatMessage.ConstructorData,
618
+ chatData: foundry.documents.BaseChatMessage.CreateData,
119
619
  rollMode: keyof typeof CONFIG.Dice.rollModes | "roll",
120
- ): foundry.documents.BaseChatMessage.ConstructorData;
620
+ ): foundry.documents.BaseChatMessage.CreateData;
121
621
 
122
622
  /**
123
623
  * Update the data of a ChatMessage instance to apply a requested rollMode
@@ -133,7 +633,9 @@ declare global {
133
633
  *
134
634
  * @returns The identified speaker data
135
635
  */
136
- static getSpeaker(options?: InexactPartial<ChatMessage.GetSpeakerOptions>): ChatMessage["_source"]["speaker"];
636
+ static getSpeaker(
637
+ options?: InexactPartial<ChatMessage.GetSpeakerOptions>,
638
+ ): ChatMessage.Implementation["_source"]["speaker"];
137
639
 
138
640
  /**
139
641
  * A helper to prepare the speaker object based on a target TokenDocument
@@ -142,11 +644,11 @@ declare global {
142
644
  */
143
645
  protected static _getSpeakerFromToken(options: {
144
646
  /** The TokenDocument of the speaker */
145
- token: TokenDocument;
647
+ token: TokenDocument.Implementation;
146
648
 
147
649
  /** The name of the speaker to display */
148
650
  alias?: string | undefined;
149
- }): ChatMessage["_source"]["speaker"];
651
+ }): ChatMessage.Implementation["_source"]["speaker"];
150
652
 
151
653
  /**
152
654
  * A helper to prepare the speaker object based on a target Actor
@@ -155,14 +657,14 @@ declare global {
155
657
  */
156
658
  protected static _getSpeakerFromActor(options: {
157
659
  /** The Scene is which the speaker resides */
158
- scene?: Scene | undefined;
660
+ scene?: Scene.Implementation | undefined;
159
661
 
160
662
  /** The Actor that is speaking */
161
- actor: Actor;
663
+ actor: Actor.Implementation;
162
664
 
163
665
  /** The name of the speaker to display */
164
666
  alias?: string | undefined;
165
- }): ChatMessage["_source"]["speaker"];
667
+ }): ChatMessage.Implementation["_source"]["speaker"];
166
668
 
167
669
  /**
168
670
  * A helper to prepare the speaker object based on a target User
@@ -171,25 +673,25 @@ declare global {
171
673
  */
172
674
  protected static _getSpeakerFromUser(options: {
173
675
  /** The Scene in which the speaker resides */
174
- scene?: Scene | undefined;
676
+ scene?: Scene.Implementation | undefined;
175
677
 
176
678
  /** The User who is speaking */
177
- user: User;
679
+ user: User.Implementation;
178
680
 
179
681
  /** The name of the speaker to display */
180
682
  alias?: string | undefined;
181
- }): ChatMessage["_source"]["speaker"];
683
+ }): ChatMessage.Implementation["_source"]["speaker"];
182
684
 
183
685
  /**
184
686
  * Obtain an Actor instance which represents the speaker of this message (if any)
185
687
  * @param speaker - The speaker data object
186
688
  */
187
- static getSpeakerActor(speaker: ChatMessage["_source"]["speaker"]): Actor.ConfiguredInstance | null;
689
+ static getSpeakerActor(speaker: ChatMessage.Implementation["_source"]["speaker"]): Actor.Implementation | null;
188
690
 
189
691
  /**
190
692
  * Obtain a data object used to evaluate any dice rolls associated with this particular chat message
191
693
  */
192
- getRollData(): Record<string, unknown>;
694
+ getRollData(): AnyObject;
193
695
 
194
696
  /**
195
697
  * Given a string whisper target, return an Array of the user IDs which should be targeted for the whisper
@@ -197,7 +699,7 @@ declare global {
197
699
  * @param name - The target name of the whisper target
198
700
  * @returns An array of User instances
199
701
  */
200
- static getWhisperRecipients(name: string): Document.Stored<User.ConfiguredInstance>[];
702
+ static getWhisperRecipients(name: string): User.Stored[];
201
703
 
202
704
  /**
203
705
  * Render the HTML for the ChatMessage which should be added to the log
@@ -227,5 +729,36 @@ declare global {
227
729
  * Export the content of the chat message into a standardized log format
228
730
  */
229
731
  export(): string;
732
+
733
+ /*
734
+ * After this point these are not really overridden methods.
735
+ * They are here because Foundry's documents are complex and have lots of edge cases.
736
+ * There are DRY ways of representing this but this ends up being harder to understand
737
+ * for end users extending these functions, especially for static methods. There are also a
738
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
739
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
740
+ * separate like this helps against circularities.
741
+ */
742
+
743
+ // ClientDocument overrides
744
+
745
+ // Descendant Document operations have been left out because ChatMessage does not have any descendant documents.
746
+
747
+ static override defaultName(context?: Document.DefaultNameContext<ChatMessage.SubType, ChatMessage.Parent>): string;
748
+
749
+ static override createDialog(
750
+ data?: Document.CreateDialogData<ChatMessage.CreateData>,
751
+ context?: Document.CreateDialogContext<ChatMessage.SubType, ChatMessage.Parent>,
752
+ ): Promise<ChatMessage.Stored | null | undefined>;
753
+
754
+ static override fromDropData(
755
+ data: Document.DropData<ChatMessage.Implementation>,
756
+ options?: Document.FromDropDataOptions,
757
+ ): Promise<ChatMessage.Implementation | undefined>;
758
+
759
+ static override fromImport(
760
+ source: ChatMessage.Source,
761
+ context?: Document.FromImportContext<ChatMessage.Parent>,
762
+ ): Promise<ChatMessage.Implementation>;
230
763
  }
231
764
  }