@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,32 +1,50 @@
1
- import type { ConstructorOf, DeepPartial, InexactPartial, Mixin, ValueOf } from "../../../../types/utils.d.mts";
2
- import type { DatabaseCreateOperation } from "../../../common/abstract/_types.d.mts";
1
+ import type {
2
+ Mixin,
3
+ FixedInstanceType,
4
+ Coalesce,
5
+ AnyObject,
6
+ NullishProps,
7
+ MaybePromise,
8
+ InexactPartial,
9
+ NullishCoalesce,
10
+ } from "#utils";
3
11
  import type Document from "../../../common/abstract/document.d.mts";
4
12
 
5
- declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any = Document.Any> {
6
- /** @privateRemarks All mixin classses should accept anything for its constructor. */
13
+ import ApplicationV2 = foundry.applications.api.ApplicationV2;
14
+
15
+ declare class InternalClientDocument<BaseDocument extends Document.Internal.Instance.Any = Document.Any> {
16
+ /** @privateRemarks All mixin classes should accept anything for its constructor. */
7
17
  constructor(...args: any[]);
8
18
 
9
19
  /**
10
20
  * A collection of Application instances which should be re-rendered whenever this document is updated.
11
21
  * The keys of this object are the application ids and the values are Application instances. Each
12
- * Application in this object will have its render method called by {@link Document#render}.
13
- * @see {@link Document#render}
22
+ * Application in this object will have its render method called by {@link Document.render | `Document#render`}.
23
+ * @see {@link Document.render | `Document#render`}
14
24
  * @defaultValue `{}`
25
+ * @remarks Created during construction via `defineProperty`, with options `{value: {}, writable: false, enumerable: false}`
15
26
  */
16
- readonly apps: Record<string, Application | foundry.applications.api.ApplicationV2>;
27
+ readonly apps: Record<string, Application.Any | ApplicationV2.Any>;
17
28
 
18
29
  /**
19
30
  * A cached reference to the FormApplication instance used to configure this Document.
20
31
  * @defaultValue `null`
32
+ * @remarks Created during construction via `defineProperty`, with options `{value: null, writable: true, enumerable: false}`
33
+ *
34
+ * Foundry marked `@private`
21
35
  */
22
- protected readonly _sheet: FormApplication | null; // TODO: Replace with InstanceType<ConfiguredSheetClass<T>> once the circular reference problem has been solved
36
+ protected _sheet: FixedInstanceType<
37
+ Document.ConfiguredSheetClassFor<Document.Internal.DocumentNameFor<BaseDocument>>
38
+ > | null;
23
39
 
24
40
  static name: "ClientDocumentMixin";
25
41
 
26
42
  /**
27
- * @see abstract.Document#_initialize
43
+ * @see {@link abstract.Document._initialize | `abstract.Document#_initialize`}
44
+ * @remarks ClientDocument override calls `super`, then if `game._documentsReady`, calls {@link InternalClientDocument._safePrepareData | `this._safePrepareData`}
28
45
  */
29
- protected _initialize(): void;
46
+ // options: not null (parameter default only)
47
+ protected _initialize(options?: Document.InitializeOptions): void;
30
48
 
31
49
  /**
32
50
  * Return a reference to the parent Collection instance which contains this Document.
@@ -36,8 +54,10 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
36
54
  /**
37
55
  * A reference to the Compendium Collection which contains this Document, if any, otherwise undefined.
38
56
  */
39
- get compendium(): Document.MetadataFor<BaseDocument> extends CompendiumCollection.Metadata
40
- ? CompendiumCollection<Document.MetadataFor<BaseDocument>>
57
+ get compendium(): Document.MetadataFor<
58
+ Document.Internal.DocumentNameFor<BaseDocument>
59
+ > extends CompendiumCollection.Metadata
60
+ ? CompendiumCollection<Document.MetadataFor<Document.Internal.DocumentNameFor<BaseDocument>>>
41
61
  : undefined;
42
62
 
43
63
  /**
@@ -72,12 +92,12 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
72
92
  * actor.permission; // 2
73
93
  * ```
74
94
  */
75
- get permission(): ValueOf<typeof CONST.DOCUMENT_OWNERSHIP_LEVELS>;
95
+ get permission(): CONST.DOCUMENT_OWNERSHIP_LEVELS | null;
76
96
 
77
97
  /**
78
98
  * Lazily obtain a FormApplication instance used to configure this Document, or null if no sheet is available.
79
99
  */
80
- get sheet(): FormApplication | foundry.applications.api.ApplicationV2 | null;
100
+ get sheet(): FormApplication.Any | ApplicationV2.Any | null;
81
101
 
82
102
  /**
83
103
  * A boolean indicator for whether or not the current game User has at least limited visibility for this Document.
@@ -88,7 +108,7 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
88
108
  /**
89
109
  * Obtain the FormApplication class constructor which should be used to configure this Document.
90
110
  */
91
- protected _getSheetClass(): ConstructorOf<FormApplication | foundry.applications.api.ApplicationV2> | null;
111
+ protected _getSheetClass(): FormApplication.AnyConstructor | ApplicationV2.AnyConstructor | null;
92
112
 
93
113
  /**
94
114
  * Safely prepare data for a Document, catching any errors.
@@ -121,16 +141,13 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
121
141
 
122
142
  /**
123
143
  * Render all Application instances which are connected to this document by calling their respective
124
- * @see Application#render
144
+ * @see {@link Application.render | `Application#render`}
125
145
  * @param force - Force rendering
126
146
  * (default: `false`)
127
147
  * @param context - Optional context
128
148
  * (default: `{}`)
129
149
  */
130
- render(
131
- force?: boolean,
132
- context?: Application.RenderOptions | foundry.applications.api.ApplicationV2.RenderOptions,
133
- ): void;
150
+ render(force?: boolean, context?: Application.RenderOptions | ApplicationV2.RenderOptions): void;
134
151
 
135
152
  /**
136
153
  * Determine the sort order for this Document by positioning it relative a target sibling.
@@ -138,44 +155,42 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
138
155
  * @param options - Sorting options provided to SortingHelper.performIntegerSort
139
156
  * @returns The Document after it has been re-sorted
140
157
  */
141
- sortRelative(options?: InexactPartial<ClientDocument.SortOptions<this>>): Promise<this>;
158
+ sortRelative(options?: ClientDocument.SortOptions<this>): Promise<this>;
142
159
 
143
160
  /**
144
161
  * Construct a UUID relative to another document.
145
162
  * @param doc - The document to compare against.
146
163
  */
147
- getRelativeUuid(relative: ClientDocument): string;
164
+ getRelativeUUID(relative: ClientDocument): string;
148
165
 
149
166
  /**
150
- * Createa content link for this document
167
+ * Create a content link for this document
151
168
  * @param eventData - The parsed object of data provided by the drop transfer event.
152
169
  * @param options - Additional options to configure link generation.
170
+ * @remarks Core's implementation doesn't use `eventData` here, but when it's passed in it's the return from
171
+ * {@link TextEditor.getDragEventData | `TextEditor.getDragEventData(someDragEvent)`}
153
172
  */
154
- protected _createDocumentLink(
155
- eventData: unknown,
156
- options?: InexactPartial<{
157
- /**
158
- * A document to generate a link relative to.
159
- */
160
- relativeTo: ClientDocument;
161
-
162
- /**
163
- * A custom label to use instead of the document's name.
164
- */
165
- label: string;
166
- }>,
167
- ): string;
173
+ // options: not null (destructured)
174
+ _createDocumentLink(eventData?: AnyObject | null, options?: ClientDocument.CreateDocumentLinkOptions): string;
168
175
 
169
176
  /**
170
177
  * Handle clicking on a content link for this document.
171
178
  * @param event - The triggering click event.
179
+ * @remarks
180
+ * In `ClientDocument`, returns `this.sheet.render(true)`:
181
+ * - AppV1: returns that sheet
182
+ * - AppV2: returns a Promise of that sheet
183
+ *
184
+ * However it unfortunately has to be typed as `MaybePromise<unknown>` due to the {@link Macro._onClickDocumentLink | `Macro`} override,
185
+ * where `##executeScript` could return whatever a user-provided macro wants.
172
186
  */
173
- _onClickDocumentLink(event: MouseEvent): unknown;
187
+ _onClickDocumentLink(event: MouseEvent): MaybePromise<unknown>;
174
188
 
175
- /**
176
- * @privateRemarks _onCreate, _onUpdate, and _onDelete are all overridden but with no signature changes.
177
- * For type simplicity they are left off. These methods historically have been the source of a large amount of computation from tsc.
178
- */
189
+ // _preCreate, _preUpdate, and _preDelete are all overridden with no signature changes,
190
+ // just to call `this.system._preX` if `super` doesn't return `false`
191
+
192
+ // _onCreate, _onUpdate, and _onDelete are all overridden but with no signature changes.
193
+ // For type simplicity they are left off. These methods historically have been the source of a large amount of computation from tsc.
179
194
 
180
195
  /**
181
196
  * Orchestrate dispatching descendant document events to parent documents when embedded children are modified.
@@ -185,15 +200,16 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
185
200
  * @param _parent - The document with directly modified embedded documents.
186
201
  * Either this document or a descendant of this one.
187
202
  * @internal
203
+ * @remarks This has not been typed per-document as there does not appear to be a reason for users to ever extend or call this method.
204
+ * If you have a use case for this, please file an issue.
188
205
  */
189
206
  protected _dispatchDescendantDocumentEvents(
190
207
  event: ClientDocument.LifeCycleEventName,
191
208
  collection: string,
192
- args: unknown[],
193
- _parent: ClientDocument,
209
+ args: never,
210
+ _parent: never,
194
211
  ): void;
195
212
 
196
- // TODO: Improve the data typing
197
213
  /**
198
214
  * Actions taken after descendant documents have been created, but before changes are applied to the client data.
199
215
  * @param parent - The direct parent of the created Documents, may be this Document or a child
@@ -203,10 +219,10 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
203
219
  * @param userId - The ID of the User who triggered the operation
204
220
  */
205
221
  protected _preCreateDescendantDocuments(
206
- parent: ClientDocument,
207
- collection: string,
208
- data: unknown[],
209
- options: Document.PreCreateOptions<any>,
222
+ parent: never,
223
+ collection: never,
224
+ data: never,
225
+ options: never,
210
226
  userId: string,
211
227
  ): void;
212
228
 
@@ -220,13 +236,14 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
220
236
  * @param userId - The ID of the User who triggered the operation
221
237
  */
222
238
  protected _onCreateDescendantDocuments(
223
- parent: ClientDocument,
224
- collection: string,
225
- documents: ClientDocument[],
226
- data: unknown[],
227
- options: Document.OnCreateOptions<any> & InexactPartial<{ render: boolean }>,
239
+ parent: never,
240
+ collection: never,
241
+ documents: never,
242
+ data: never,
243
+ options: never,
228
244
  userId: string,
229
245
  ): void;
246
+
230
247
  /**
231
248
  * Actions taken after descendant documents have been updated, but before changes are applied to the client data.
232
249
  * @param parent - The direct parent of the updated Documents, may be this Document or a child
@@ -236,10 +253,10 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
236
253
  * @param userId - The ID of the User who triggered the operation
237
254
  */
238
255
  protected _preUpdateDescendantDocuments(
239
- parent: ClientDocument,
240
- collection: string,
241
- changes: unknown[],
242
- options: Document.PreUpdateOptions<any>,
256
+ parent: never,
257
+ collection: never,
258
+ changes: never,
259
+ options: never,
243
260
  userId: string,
244
261
  ): void;
245
262
 
@@ -253,11 +270,11 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
253
270
  * @param userId - The ID of the User who triggered the operation
254
271
  */
255
272
  protected _onUpdateDescendantDocuments(
256
- parent: ClientDocument,
257
- collection: string,
258
- documents: ClientDocument[],
259
- changes: unknown[],
260
- options: Document.OnUpdateOptions<any> & InexactPartial<{ render: boolean }>,
273
+ parent: never,
274
+ collection: never,
275
+ documents: never,
276
+ changes: never,
277
+ options: never,
261
278
  userId: string,
262
279
  ): void;
263
280
 
@@ -270,10 +287,10 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
270
287
  * @param userId - The ID of the User who triggered the operation
271
288
  */
272
289
  protected _preDeleteDescendantDocuments(
273
- parent: ClientDocument,
274
- collection: string,
275
- ids: string[],
276
- options: Document.PreDeleteOptions<any>,
290
+ parent: never,
291
+ collection: never,
292
+ ids: never,
293
+ options: never,
277
294
  userId: string,
278
295
  ): void;
279
296
 
@@ -287,11 +304,11 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
287
304
  * @param userId - The ID of the User who triggered the operation
288
305
  */
289
306
  protected _onDeleteDescendantDocuments(
290
- parent: ClientDocument,
291
- collection: string,
292
- documents: ClientDocument[],
293
- ids: string,
294
- options: Document.OnDeleteOptions<any> & InexactPartial<{ render: boolean }>,
307
+ parent: never,
308
+ collection: never,
309
+ documents: never,
310
+ ids: string[],
311
+ options: never,
295
312
  userId: string,
296
313
  ): void;
297
314
 
@@ -299,52 +316,28 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
299
316
  * Whenever the Document's sheet changes, close any existing applications for this Document, and re-render the new
300
317
  * sheet if one was already open.
301
318
  */
302
- protected _onSheetChange(
303
- options?: InexactPartial<{
304
- /**
305
- * Whether the sheet was originally open and needs to be re-opened.
306
- */
307
- sheetOpen: boolean;
308
- }>,
309
- ): Promise<void>;
319
+ // options: not null (destructured)
320
+ protected _onSheetChange(options?: ClientDocument.OnSheetChangeOptions): Promise<void>;
310
321
 
311
322
  /**
312
323
  * Gets the default new name for a Document
313
324
  * @param context - The context for which to create the Document name.
314
325
  */
315
- static defaultName(
316
- context?: InexactPartial<{
317
- /** The sub-type of the document */
318
- // TODO: See if the valid strings can be inferred from this type
319
- type: string;
320
- /** A parent document within which the created Document should belong */
321
- parent: foundry.abstract.Document.Any;
322
- /** A compendium pack within which the Document should be created */
323
- pack: string;
324
- }>,
325
- ): string;
326
+ // context: not null (destructured)
327
+ static defaultName(context?: Document.DefaultNameContext<never, never>): string;
326
328
 
327
329
  /**
328
330
  * Present a Dialog form to create a new Document of this type.
329
331
  * Choose a name and a type from a select menu of types.
330
- * @param data - Initial data with which to populate the creation form
331
- * (default: `{}`)
332
- * @param context - Additional context options or dialog positioning options
333
- * (default: `{}`)
334
- * @returns A Promise which resolves to the created Document, or null if the dialog was
335
- * closed.
336
- */
337
- static createDialog<T extends Document.AnyConstructor>(
338
- this: T,
339
- data?: DeepPartial<Document.ConstructorDataFor<NoInfer<T>> & Record<string, unknown>>,
340
- context?: Pick<DatabaseCreateOperation<InstanceType<NoInfer<T>>>, "parent" | "pack"> &
341
- InexactPartial<
342
- DialogOptions & {
343
- /** A restriction the selectable sub-types of the Dialog. */
344
- types: string[];
345
- }
346
- >,
347
- ): Promise<Document.ToConfiguredInstance<T> | null | undefined>;
332
+ * @param data - Initial data with which to populate the creation form (default: `{}`)
333
+ * @param context - Additional context options or dialog positioning options (default: `{}`)
334
+ * @returns A Promise which resolves to the created Document, or null if the dialog was closed.
335
+ * @throws If the document has
336
+ * @privateRemarks `| undefined` is included in the return types of the specific document overrides due to {@link Document.create | `Document.create`}
337
+ * possibly being `undefined` if creation is cancelled by preCreate methods or hooks
338
+ */
339
+ // data: not null (parameter default only), option: not null (destructured)
340
+ static createDialog(data: never, context: never): Promise<unknown>;
348
341
 
349
342
  /**
350
343
  * Present a Dialog form to confirm deletion of this Document.
@@ -352,18 +345,20 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
352
345
  * (default: `{}`)
353
346
  * @returns A Promise which resolves to the deleted Document
354
347
  */
355
- deleteDialog(options?: Partial<DialogOptions>): Promise<this | false | null | undefined>;
348
+ // options: not null (parameter default only)
349
+ deleteDialog(options?: InexactPartial<Dialog.Options>): Promise<this | false | null | undefined>;
356
350
 
357
351
  /**
358
352
  * Export document data to a JSON file which can be saved by the client and later imported into a different session.
359
- * @param options - Additional options passed to the {@link ClientDocument#toCompendium} method
353
+ * @param options - Additional options passed to the {@link ClientDocument.toCompendium | `ClientDocument#toCompendium`} method
360
354
  */
361
- exportToJSON(options?: InexactPartial<ClientDocument.CompendiumExportOptions>): void;
355
+ // options: not null (destructured where forwarded)
356
+ exportToJSON(options?: ClientDocument.ToCompendiumOptions): void;
362
357
 
363
358
  /**
364
359
  * Serialize salient information about this Document when dragging it.
365
360
  */
366
- toDragData(): DropData<BaseDocument>;
361
+ toDragData(): Document.DropData<Document.Internal.Instance.Complete<BaseDocument>>;
367
362
 
368
363
  /**
369
364
  * A helper function to handle obtaining the relevant Document from dropped data provided via a DataTransfer event.
@@ -375,12 +370,11 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
375
370
  * @param options - Additional options which affect drop data behavior
376
371
  * @returns The resolved Document
377
372
  * @throws If a Document could not be retrieved from the provided data.
373
+ * @remarks Core's implementation in `ClientDocument` does not use `options` at all, no call passes any `options`
374
+ * anywhere in Foundry, and the JSDoc types it as simply `object`, so it cannot be typed more exactly than this.
378
375
  */
379
- static fromDropData<T extends Document.AnyConstructor>(
380
- this: T,
381
- data: DropData<InstanceType<NoInfer<T>>>,
382
- options?: FromDropDataOptions,
383
- ): Promise<Document.ToConfiguredInstance<T> | undefined>;
376
+ // options: not null (parameter default only)
377
+ static fromDropData(data: Document.DropData<never>, options?: AnyObject): Promise<unknown>;
384
378
 
385
379
  /**
386
380
  * Create the Document from the given source with migration applied to it.
@@ -388,7 +382,7 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
388
382
  *
389
383
  * This function must be used to create a document from data that predates the current core version.
390
384
  * It must be given nonpartial data matching the schema it had in the core version it is coming from.
391
- * It applies legacy migrations to the source data before calling {@link Document.fromSource}.
385
+ * It applies legacy migrations to the source data before calling {@link Document.fromSource | `Document.fromSource`}.
392
386
  * If this function is not used to import old data, necessary migrations may not applied to the data
393
387
  * resulting in an incorrectly imported document.
394
388
  *
@@ -396,14 +390,12 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
396
390
  * doesn't contain a `_stats` field, the data is assumed to be pre-V10, when the `_stats` field didn't exist yet.
397
391
  * The `_stats` field must not be stripped from the data before it is exported!
398
392
  * @param source - The document data that is imported.
399
- * @param context - The model construction context passed to {@link Document.fromSource}.
393
+ * @param context - The model construction context passed to {@link Document.fromSource | `Document.fromSource`}.
400
394
  * (default: `context.strict=true`) Strict validation is enabled by default.
401
395
  */
402
- static fromImport<T extends Document.AnyConstructor>(
403
- this: T,
404
- source: Record<string, unknown>,
405
- context?: Document.ConstructionContext<Document.Any | null> & DataValidationOptions,
406
- ): Promise<InstanceType<T>>;
396
+ // context: allowed to be null because spreading a variable with the value `null` into an object is allowed
397
+ static fromImport(source: never, context?: never): Promise<unknown>;
398
+
407
399
  /**
408
400
  * Update this Document using a provided JSON string.
409
401
  * @param json - JSON data string
@@ -424,33 +416,17 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
424
416
  * (default: `{}`)
425
417
  * @returns A data object of cleaned data suitable for compendium import
426
418
  */
427
- toCompendium<
428
- FlagsOpt extends boolean = false,
429
- SourceOpt extends boolean = true,
430
- SortOpt extends boolean = true,
431
- FolderOpt extends boolean = false,
432
- OwnershipOpt extends boolean = false,
433
- StateOpt extends boolean = true,
434
- IdOpt extends boolean = false,
435
- >(
419
+ // options: not null (destructured)
420
+ toCompendium<Options extends ClientDocument.ToCompendiumOptions | undefined = undefined>(
436
421
  pack?: CompendiumCollection<CompendiumCollection.Metadata> | null,
437
- options?: InexactPartial<
438
- ClientDocument.CompendiumExportOptions<FlagsOpt, SourceOpt, SortOpt, FolderOpt, OwnershipOpt, StateOpt, IdOpt>
439
- >,
440
- ): Omit<
441
- Document.Internal.Instance.Complete<BaseDocument>["_source"],
442
- | (IdOpt extends false ? "_id" : never)
443
- | ClientDocument.OmitProperty<SortOpt, "sort" | "navigation" | "navOrder"> // helping out Scene
444
- | ClientDocument.OmitProperty<FolderOpt, "folder">
445
- | ClientDocument.OmitProperty<FlagsOpt, "flags">
446
- | ClientDocument.OmitProperty<OwnershipOpt, "ownership">
447
- | ClientDocument.OmitProperty<StateOpt, "active" | "fogReset" | "playing"> // helping out Playlist, Scene
448
- >;
422
+ options?: Options,
423
+ ): ClientDocument.ToCompendiumReturnType<BaseDocument, Options>;
449
424
 
450
425
  /**
451
426
  * Create a content link for this Document.
452
427
  * @param options - Additional options to configure how the link is constructed.
453
428
  */
429
+ // options: not null (parameter default only)
454
430
  toAnchor(options?: TextEditor.EnrichmentAnchorOptions): HTMLAnchorElement;
455
431
 
456
432
  /**
@@ -459,6 +435,7 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
459
435
  * @param options - The original enrichment options for cases where the Document embed content also contains text that must be enriched.
460
436
  * @returns A representation of the Document as HTML content, or null if such a representation could not be generated.
461
437
  */
438
+ // options: not null (parameter default only)
462
439
  toEmbed(
463
440
  config: TextEditor.DocumentHTMLEmbedConfig,
464
441
  options?: TextEditor.EnrichmentOptions,
@@ -509,7 +486,7 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
509
486
  */
510
487
  protected _preCreateEmbeddedDocuments(
511
488
  embeddedName: string,
512
- result: Record<string, unknown>[],
489
+ result: AnyObject[],
513
490
  options: Document.ModificationOptions,
514
491
  userId: string,
515
492
  ): void;
@@ -525,8 +502,8 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
525
502
  */
526
503
  protected _onCreateEmbeddedDocuments(
527
504
  embeddedName: string,
528
- documents: Document.Any[],
529
- result: Record<string, unknown>[],
505
+ documents: never,
506
+ result: AnyObject[],
530
507
  options: Document.ModificationOptions,
531
508
  userId: string,
532
509
  ): void;
@@ -541,7 +518,7 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
541
518
  */
542
519
  protected _preUpdateEmbeddedDocuments(
543
520
  embeddedName: string,
544
- result: Record<string, unknown>[],
521
+ result: AnyObject[],
545
522
  options: Document.ModificationOptions,
546
523
  userId: string,
547
524
  ): void;
@@ -557,8 +534,8 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
557
534
  */
558
535
  protected _onUpdateEmbeddedDocuments(
559
536
  embeddedName: string,
560
- documents: Document.Any[],
561
- result: Record<string, unknown>[],
537
+ documents: never,
538
+ result: AnyObject[],
562
539
  options: Document.ModificationContext<Document.Any | null>,
563
540
  userId: string,
564
541
  ): void;
@@ -589,17 +566,28 @@ declare class ClientDocument<BaseDocument extends Document.Internal.Instance.Any
589
566
  */
590
567
  protected _onDeleteEmbeddedDocuments(
591
568
  embeddedName: string,
592
- documents: Document.Any[],
569
+ documents: never,
593
570
  result: string[],
594
571
  options: Document.ModificationContext<Document.Any | null>,
595
572
  userId: string,
596
573
  ): void;
597
574
  }
598
575
 
599
- declare const _ClientDocument: ClientDocument;
576
+ type _ClientDocumentType = InternalClientDocument & Document.AnyConstructor;
577
+ declare const _ClientDocument: _ClientDocumentType;
578
+
579
+ type ClientDocumentMixinBaseClass = Document.Internal.Constructor;
600
580
 
601
581
  declare global {
602
- type ClientDocument = typeof _ClientDocument;
582
+ /**
583
+ * This class does not really exist at runtime. It's here for types only.
584
+ */
585
+ class ClientDocument extends _ClientDocument {
586
+ // This may have be removed at some point in the future if it causes issues but the idea is to
587
+ // prevent operations like `new ClientDocument()` or `extends ClientDocument` because this does
588
+ // is not a class that really exists at runtime.
589
+ private constructor(...args: any[]);
590
+ }
603
591
 
604
592
  /**
605
593
  * A mixin which extends each Document definition with specialized client-side behaviors.
@@ -612,106 +600,150 @@ declare global {
612
600
  // Note(LukeAbby): The seemingly redundant merging in of `typeof AnyDocument` makes it easier for tsc to recognize that anything extending `ClientDocumentMixin` is also a document.
613
601
  function ClientDocumentMixin<BaseClass extends Document.Internal.Constructor>(
614
602
  Base: BaseClass,
615
- ): typeof AnyDocument & Mixin<typeof ClientDocument<InstanceType<BaseClass>>, BaseClass>;
603
+ ): Mixin<typeof InternalClientDocument<FixedInstanceType<BaseClass>>, BaseClass>;
616
604
 
605
+ // TODO: Namespaces typically match the Mixin, not the non-exported class, but we're exporting the class for type reasons,
606
+ // TODO: so this is an exception?
617
607
  namespace ClientDocument {
618
608
  interface SortOptions<T, SortKey extends string = "sort"> extends SortingHelpers.SortOptions<T, SortKey> {
619
609
  /**
620
610
  * Additional data changes which are applied to each sorted document
621
611
  * @defaultValue `{}`
622
612
  */
623
- updateData?: any;
613
+ updateData?: AnyObject;
624
614
  }
625
615
 
626
616
  // TODO: This may be better defined elsewhere
627
617
  type LifeCycleEventName = "preCreate" | "onCreate" | "preUpdate" | "onUpdate" | "preDelete" | "onDelete";
628
618
 
629
- type OmitProperty<T extends boolean, Property extends string> = T extends true ? Property : never;
630
-
631
- interface CompendiumExportOptions<
632
- FlagsOpt extends boolean = false,
633
- SourceOpt extends boolean = true,
634
- SortOpt extends boolean = true,
635
- FolderOpt extends boolean = false,
636
- OwnershipOpt extends boolean = false,
637
- StateOpt extends boolean = true,
638
- IdOpt extends boolean = false,
639
- > {
619
+ // Note(LukeAbby): If the property could be omitted it is. This is the safest option because in indeterminate cases access would be unsafe.
620
+ // In the future the indeterminate case could turn the property optional but that isn't done today because that's annoying to do for little benefit.
621
+ /** @internal */
622
+ type _OmitProperty<
623
+ Omit extends boolean | null | undefined,
624
+ Default extends boolean,
625
+ ToOmit extends string,
626
+ > = Omit extends true | (Default extends true ? undefined : never) ? ToOmit : never;
627
+
628
+ /** @internal */
629
+ type _ToCompendiumOptions = NullishProps<{
640
630
  /**
641
631
  * Clear the flags object
642
632
  * @defaultValue `false`
643
633
  */
644
- clearFlags: FlagsOpt;
634
+ clearFlags: boolean;
645
635
 
646
636
  /**
647
637
  * Clear any prior source information
648
638
  * @defaultValue `true`
639
+ * @remarks Deletes `_stats.compendiumSource` and `_stats.duplicateSource`, won't delete legacy source flags
649
640
  */
650
- clearSource: SourceOpt;
641
+ clearSource: boolean;
651
642
 
652
643
  /**
653
644
  * Clear the currently assigned folder and sort order
654
645
  * @defaultValue `true`
655
646
  */
656
- clearSort: SortOpt;
647
+ clearSort: boolean;
657
648
 
658
649
  /**
659
650
  * Clear the currently assigned folder
660
651
  * @defaultValue `false`
661
652
  */
662
- clearFolder: FolderOpt;
653
+ clearFolder: boolean;
663
654
 
664
655
  /**
665
656
  * Clear document ownership
666
657
  * @defaultValue `true`
667
658
  */
668
- clearOwnership: OwnershipOpt;
659
+ clearOwnership: boolean;
669
660
 
670
661
  /**
671
662
  * Clear fields which store document state
672
663
  * @defaultValue `true`
673
664
  */
674
- clearState: StateOpt;
665
+ clearState: boolean;
675
666
 
676
667
  /**
677
668
  * Retain the current Document id
678
669
  * @defaultValue `false`
679
670
  */
680
- keepId: IdOpt;
681
- }
682
- }
683
- }
684
-
685
- export type DropData<T extends Document.Internal.Instance.Any> = T extends { id: string | undefined }
686
- ? InternalData<T> & DropData.UUID
687
- : InternalData<T>;
671
+ keepId: boolean;
672
+ }>;
688
673
 
689
- declare namespace DropData {
690
- type Any = DropData<any>;
691
-
692
- interface Data<T extends Document.Any> {
693
- type: T["documentName"];
694
- data: T["_source"];
695
- }
674
+ interface ToCompendiumOptions extends _ToCompendiumOptions {}
696
675
 
697
- interface UUID {
698
- uuid: string;
699
- }
700
- }
676
+ /** @internal */
677
+ type _CreateDocumentLinkOptions = NullishProps<{
678
+ /**
679
+ * A document to generate a link relative to.
680
+ * @remarks Ignored if falsey
681
+ */
682
+ relativeTo: ClientDocument;
701
683
 
702
- // This is yet another `AnyDocument` type.
703
- // It exists specifically because the `Document.AnyConstructor` type is too safe to be merged in with a mixin.
704
- // The `arg0: never, ...args: never[]` trick trips up the base constructor check and so this one with an actual `...args: any[]` one is used instead.
705
- declare class AnyDocument extends Document<any, any, any> {
706
- constructor(...args: any[]);
707
- }
684
+ /**
685
+ * A custom label to use instead of the document's name.
686
+ * @defaultValue `this.name`
687
+ */
688
+ label: string;
689
+ }>;
690
+
691
+ interface CreateDocumentLinkOptions extends _CreateDocumentLinkOptions {}
692
+
693
+ /** The return type of {@link ClientDocument._onClickDocumentLink | `ClientDocument#_onClickDocumentLink`} if not overridden */
694
+ type OnClickDocumentLinkReturn = FormApplication.Any | Promise<ApplicationV2.Any>;
695
+
696
+ type ToCompendiumReturnType<
697
+ BaseDocument extends Document.Internal.Instance.Any,
698
+ Options extends ToCompendiumOptions | undefined,
699
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
700
+ > = _ToCompendiumReturnType<BaseDocument, Coalesce<Options, {}>>;
701
+
702
+ type _ToCompendiumReturnType<
703
+ BaseDocument extends Document.Internal.Instance.Any,
704
+ Options extends ToCompendiumOptions,
705
+ > = _ClearFog<
706
+ Options["clearState"],
707
+ _ClearStats<
708
+ Options["clearSource"],
709
+ Omit<
710
+ Document.Internal.Instance.Complete<BaseDocument>["_source"],
711
+ | ClientDocument._OmitProperty<Options["clearFlags"], false, "flags">
712
+ | ClientDocument._OmitProperty<Options["clearSort"], true, "sort" | "navigation" | "navOrder"> // helping out Scene
713
+ | ClientDocument._OmitProperty<Options["clearFolder"], true, "folder">
714
+ | ClientDocument._OmitProperty<Options["clearOwnership"], true, "ownership">
715
+ | ClientDocument._OmitProperty<Options["clearState"], true, "active" | "playing"> // helping out Playlist, Scene
716
+ | (Options["keepId"] extends true ? never : "_id")
717
+ >
718
+ >
719
+ >;
720
+
721
+ /** @internal */
722
+ type _ClearStats<ClearSource extends boolean | null | undefined, SourceData extends object> = [
723
+ NullishCoalesce<ClearSource, true>,
724
+ ] extends [true]
725
+ ? {
726
+ [K in keyof SourceData]: "_stats" extends K
727
+ ? Omit<SourceData[K], "compendiumSource" | "duplicateSource">
728
+ : never;
729
+ }
730
+ : SourceData;
731
+
732
+ /** @internal */
733
+ type _ClearFog<ClearState extends boolean | null | undefined, SourceData extends object> = [
734
+ NullishCoalesce<ClearState, true>,
735
+ ] extends [true]
736
+ ? {
737
+ [K in keyof SourceData]: "fog" extends K ? Omit<SourceData[K], "reset"> : never;
738
+ }
739
+ : SourceData;
708
740
 
709
- type InternalData<T extends Document.Internal.Instance.Any> = DropData.Data<Document.Internal.Instance.Complete<T>>;
741
+ /** @internal */
742
+ type _OnSheetChangeOptions = NullishProps<{
743
+ /** Whether the sheet was originally open and needs to be re-opened. */
744
+ sheetOpen: boolean;
745
+ }>;
710
746
 
711
- interface FromDropDataOptions {
712
- /**
713
- * Import the provided document data into the World, if it is not already a World-level Document reference
714
- * @defaultValue `false`
715
- */
716
- importWorld?: boolean;
747
+ interface OnSheetChangeOptions extends _OnSheetChangeOptions {}
748
+ }
717
749
  }