@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,23 +1,531 @@
1
- import type { InexactPartial } from "../../../../types/utils.d.mts";
1
+ import type { ConfiguredJournalEntryPage } from "../../../../configuration/index.d.mts";
2
+ import type { AnyObject, Merge, NullishProps } from "#utils";
2
3
  import type Document from "../../../common/abstract/document.d.mts";
3
- import type { DocumentDatabaseOperations } from "../../../common/abstract/document.d.mts";
4
+ import type { DataSchema } from "../../../common/data/fields.d.mts";
5
+ import type { fields } from "../../../common/data/module.d.mts";
4
6
  import type BaseJournalEntryPage from "../../../common/documents/journal-entry-page.d.mts";
5
7
 
6
8
  declare global {
7
9
  namespace JournalEntryPage {
8
- type Metadata = Document.MetadataFor<JournalEntryPage>;
10
+ /**
11
+ * The document's name.
12
+ */
13
+ type Name = "JournalEntryPage";
14
+
15
+ /**
16
+ * The arguments to construct the document.
17
+ */
18
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
19
+
20
+ /**
21
+ * The documents embedded within `JournalEntryPage`.
22
+ */
23
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
24
+
25
+ /**
26
+ * The implementation of the `JournalEntryPage` document instance configured through `CONFIG.JournalEntryPage.documentClass` in Foundry and
27
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredJournalEntryPage | `fvtt-types/configuration/ConfiguredJournalEntryPage`} in fvtt-types.
28
+ */
29
+ type Implementation = Document.ImplementationFor<Name>;
30
+
31
+ /**
32
+ * The implementation of the `JournalEntryPage` document configured through `CONFIG.JournalEntryPage.documentClass` in Foundry and
33
+ * {@link DocumentClassConfig | `DocumentClassConfig`} in fvtt-types.
34
+ */
35
+ type ImplementationClass = Document.ImplementationClassFor<Name>;
36
+
37
+ /**
38
+ * A document's metadata is special information about the document ranging anywhere from its name,
39
+ * whether it's indexed, or to the permissions a user has over it.
40
+ */
41
+ interface Metadata
42
+ extends Merge<
43
+ Document.Metadata.Default,
44
+ Readonly<{
45
+ name: "JournalEntryPage";
46
+ collection: "pages";
47
+ hasTypeData: true;
48
+ indexed: true;
49
+ label: string;
50
+ labelPlural: string;
51
+ coreTypes: ["text", "image", "pdf", "video"];
52
+ compendiumIndexFields: ["name", "type", "sort"];
53
+ schemaVersion: string;
54
+ }>
55
+ > {}
56
+
57
+ // No need for Metadata namespace
58
+
59
+ /**
60
+ * Allowed subtypes of `JournalEntryPage`. This is configured through various methods. Modern Foundry
61
+ * recommends registering using [Data Models](https://foundryvtt.com/article/system-data-models/)
62
+ * under {@link CONFIG.JournalEntryPage.dataModels | `CONFIG.JournalEntryPage.dataModels`}. This corresponds to
63
+ * fvtt-type's {@link DataModelConfig | `DataModelConfig`}.
64
+ *
65
+ * Subtypes can also be registered through a `template.json` though this is discouraged.
66
+ * The corresponding fvtt-type configs are {@link SourceConfig | `SourceConfig`} and
67
+ * {@link DataConfig | `DataConfig`}.
68
+ */
69
+ type SubType = Game.Model.TypeNames<"JournalEntryPage">;
70
+
71
+ /**
72
+ * `ConfiguredSubTypes` represents the subtypes a user explicitly registered. This excludes
73
+ * subtypes like the Foundry builtin subtype `"base"` and the catch-all subtype for arbitrary
74
+ * module subtypes `${string}.${string}`.
75
+ *
76
+ * @see {@link SubType} for more information.
77
+ */
78
+ type ConfiguredSubTypes = Document.ConfiguredSubTypesOf<"JournalEntryPage">;
79
+
80
+ /**
81
+ * `Known` represents the types of `JournalEntryPage` that a user explicitly registered.
82
+ *
83
+ * @see {@link ConfiguredSubTypes} for more information.
84
+ */
85
+ type Known = JournalEntryPage.OfType<JournalEntryPage.ConfiguredSubTypes>;
86
+
87
+ /**
88
+ * `OfType` returns an instance of `JournalEntryPage` with the corresponding type. This works with both the
89
+ * builtin `JournalEntryPage` class or a custom subclass if that is set up in
90
+ * {@link ConfiguredJournalEntryPage | `fvtt-types/configuration/ConfiguredJournalEntryPage`}.
91
+ * up.
92
+ */
93
+ type OfType<Type extends SubType> = Document.Internal.OfType<
94
+ ConfiguredJournalEntryPage<Type>,
95
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types
96
+ JournalEntryPage<Type>
97
+ >;
9
98
 
10
- type ConfiguredClass = Document.ConfiguredClassForName<"JournalEntryPage">;
11
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"JournalEntryPage">;
99
+ /**
100
+ * `SystemOfType` returns the system property for a specific `JournalEntryPage` subtype.
101
+ */
102
+ type SystemOfType<Type extends SubType> = Document.Internal.SystemOfType<_SystemMap, Type>;
12
103
 
13
- interface DatabaseOperations extends DocumentDatabaseOperations<JournalEntryPage> {}
104
+ /**
105
+ * @internal
106
+ */
107
+ interface _SystemMap extends Document.Internal.SystemMap<"JournalEntryPage"> {}
14
108
 
15
- // Helpful aliases
16
- type TypeNames = BaseJournalEntryPage.TypeNames;
17
- type ConstructorData = BaseJournalEntryPage.ConstructorData;
18
- type UpdateData = BaseJournalEntryPage.UpdateData;
19
- type Schema = BaseJournalEntryPage.Schema;
20
- type Source = BaseJournalEntryPage.Source;
109
+ /**
110
+ * A document's parent is something that can contain it.
111
+ * For example an `Item` can be contained by an `Actor` which makes `Actor` one of its possible parents.
112
+ */
113
+ type Parent = JournalEntry.Implementation | null;
114
+
115
+ /**
116
+ * A document's descendants are any child documents, grandchild documents, etc.
117
+ * This is a union of all instances, or never if the document doesn't have any descendants.
118
+ */
119
+ type Descendant = never;
120
+
121
+ /**
122
+ * A document's descendants are any child documents, grandchild documents, etc.
123
+ * This is a union of all classes, or never if the document doesn't have any descendants.
124
+ */
125
+ type DescendantClass = never;
126
+
127
+ /**
128
+ * Types of `CompendiumCollection` this document might be contained in.
129
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
130
+ */
131
+ // Note: Takes any document in the heritage chain (i.e. itself or any parent, transitive or not) that can be contained in a compendium.
132
+ type Pack = CompendiumCollection.ForDocument<"JournalEntry">;
133
+
134
+ /**
135
+ * An embedded document is a document contained in another.
136
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
137
+ *
138
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
139
+ */
140
+ type Embedded = never;
141
+
142
+ /**
143
+ * The name of the world or embedded collection this document can find itself in.
144
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
145
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
146
+ */
147
+ type ParentCollectionName = Metadata["collection"];
148
+
149
+ /**
150
+ * The world collection that contains this document type. Will be `never` if none exists.
151
+ */
152
+ type CollectionClass = never;
153
+
154
+ /**
155
+ * The world collection that contains this document type. Will be `never` if none exists.
156
+ */
157
+ type Collection = never;
158
+
159
+ /**
160
+ * An instance of `JournalEntryPage` that comes from the database but failed validation meaning that
161
+ * its `system` and `_source` could theoretically be anything.
162
+ */
163
+ interface Invalid<out SubType extends JournalEntryPage.SubType = JournalEntryPage.SubType>
164
+ extends Document.Invalid<OfType<SubType>> {}
165
+
166
+ /**
167
+ * An instance of `JournalEntryPage` that comes from the database.
168
+ */
169
+ interface Stored<out SubType extends JournalEntryPage.SubType = JournalEntryPage.SubType>
170
+ extends Document.Stored<OfType<SubType>> {}
171
+
172
+ /**
173
+ * The data put in {@link JournalEntryPage._source | `JournalEntryPage#_source`}. This data is what was
174
+ * persisted to the database and therefore it must be valid JSON.
175
+ *
176
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
177
+ * but initialized as a {@link Set | `Set`}.
178
+ */
179
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
180
+
181
+ /**
182
+ * @deprecated {@link JournalEntryPage.Source | `JournalEntryPage.Source`}
183
+ */
184
+ type PersistedData = Source;
185
+
186
+ /**
187
+ * The data necessary to create a document. Used in places like {@link JournalEntryPage.create | `JournalEntryPage.create`}
188
+ * and {@link JournalEntryPage | `new JournalEntryPage(...)`}.
189
+ *
190
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
191
+ * with the right values. This means you can pass a `Set` instance, an array of values,
192
+ * a generator, or any other iterable.
193
+ */
194
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
195
+
196
+ /**
197
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
198
+ * {@link JournalEntryPage.name | `JournalEntryPage#name`}.
199
+ *
200
+ * This is data transformed from {@link JournalEntryPage.Source | `JournalEntryPage.Source`} and turned into more
201
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
202
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
203
+ */
204
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
205
+
206
+ /**
207
+ * The data used to update a document, for example {@link JournalEntryPage.update | `JournalEntryPage#update`}.
208
+ * It is a distinct type from {@link JournalEntryPage.CreateData | `DeepPartial<JournalEntryPage.CreateData>`} because
209
+ * it has different rules for `null` and `undefined`.
210
+ */
211
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
212
+
213
+ /**
214
+ * The schema for {@link JournalEntryPage | `JournalEntryPage`}. This is the source of truth for how an JournalEntryPage document
215
+ * must be structured.
216
+ *
217
+ * Foundry uses this schema to validate the structure of the {@link JournalEntryPage | `JournalEntryPage`}. For example
218
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
219
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
220
+ * starting as an array in the database, initialized as a set, and allows updates with any
221
+ * iterable.
222
+ */
223
+ interface Schema extends DataSchema {
224
+ /**
225
+ * The _id which uniquely identifies this JournalEntryPage embedded document.
226
+ * @defaultValue `null`
227
+ */
228
+ _id: fields.DocumentIdField;
229
+
230
+ /**
231
+ * The text name of this page.
232
+ */
233
+ // FIXME: This field is `required` with no `initial`, so actually required for construction; Currently an AssignmentType override is required to enforce this
234
+ name: fields.StringField<
235
+ { required: true; blank: false; label: "JOURNALENTRYPAGE.PageTitle"; textSearch: true },
236
+ string
237
+ >;
238
+
239
+ /**
240
+ * The type of this page, in {@link BaseJournalEntryPage.TYPES | `BaseJournalEntryPage.TYPES`}.
241
+ * @defaultValue `"text"`
242
+ */
243
+ type: fields.DocumentTypeField<typeof BaseJournalEntryPage, { initial: "text" }>;
244
+
245
+ /**
246
+ * System-specific data.
247
+ * @defaultValue `{}`
248
+ */
249
+ system: fields.TypeDataField<typeof BaseJournalEntryPage>;
250
+
251
+ /**
252
+ * Data that control's the display of this page's title.
253
+ */
254
+ title: fields.SchemaField<{
255
+ /**
256
+ * Whether to render the page's title in the overall journal view.
257
+ * @defaultValue `true`
258
+ */
259
+ show: fields.BooleanField<{ initial: true }>;
260
+
261
+ /**
262
+ * The heading level to render this page's title at in the overall journal view.
263
+ * @defaultValue `1`
264
+ */
265
+ level: fields.NumberField<{ required: true; initial: 1; min: 1; max: 6; integer: true; nullable: false }>;
266
+ }>;
267
+
268
+ /**
269
+ * Data particular to image journal entry pages.
270
+ */
271
+ image: fields.SchemaField<{
272
+ /**
273
+ * A caption for the image.
274
+ * @defaultValue `undefined`
275
+ */
276
+ caption: fields.StringField<{ required: false; initial: undefined }>;
277
+ }>;
278
+
279
+ /**
280
+ * Data particular to text journal entry pages.
281
+ */
282
+ text: fields.SchemaField<{
283
+ /**
284
+ * The content of the JournalEntryPage in a format appropriate for its type.
285
+ * @defaultValue `undefined`
286
+ */
287
+ content: fields.HTMLField<{ required: false; initial: undefined; textSearch: true }>;
288
+
289
+ /**
290
+ * The original markdown source, if applicable.
291
+ * @defaultValue `undefined`
292
+ */
293
+ markdown: fields.StringField<{ required: false; initial: undefined }>;
294
+
295
+ /**
296
+ * The format of the page's content, in {@link CONST.JOURNAL_ENTRY_PAGE_FORMATS | `CONST.JOURNAL_ENTRY_PAGE_FORMATS`}.
297
+ * @defaultValue `CONST.JOURNAL_ENTRY_PAGE_FORMATS.HTML`
298
+ */
299
+ format: fields.NumberField<
300
+ {
301
+ label: "JOURNALENTRYPAGE.Format";
302
+ initial: typeof CONST.JOURNAL_ENTRY_PAGE_FORMATS.HTML;
303
+ choices: CONST.JOURNAL_ENTRY_PAGE_FORMATS[];
304
+ },
305
+ // FIXME: overrides required to enforce branded type
306
+ CONST.JOURNAL_ENTRY_PAGE_FORMATS | null | undefined,
307
+ CONST.JOURNAL_ENTRY_PAGE_FORMATS,
308
+ CONST.JOURNAL_ENTRY_PAGE_FORMATS
309
+ >;
310
+ }>;
311
+
312
+ /**
313
+ * Data particular to video journal entry pages.
314
+ */
315
+ video: fields.SchemaField<{
316
+ /**
317
+ * @defaultValue `true`
318
+ */
319
+ controls: fields.BooleanField<{ initial: true }>;
320
+
321
+ /**
322
+ * Automatically loop the video?
323
+ * @defaultValue `undefined`
324
+ */
325
+ loop: fields.BooleanField<{ required: false; initial: undefined }>;
326
+
327
+ /**
328
+ * Should the video play automatically?
329
+ * @defaultValue `undefined`
330
+ */
331
+ autoplay: fields.BooleanField<{ required: false; initial: undefined }>;
332
+
333
+ /**
334
+ * The volume level of any audio that the video file contains.
335
+ * @defaultValue `0.5`
336
+ */
337
+ volume: fields.AlphaField<{ required: true; step: 0.01; initial: 0.5 }>;
338
+
339
+ /**
340
+ * The starting point of the video, in seconds.
341
+ * @defaultValue `undefined`
342
+ */
343
+ timestamp: fields.NumberField<{ required: false; min: 0; initial: undefined }>;
344
+
345
+ /**
346
+ * The width of the video, otherwise it will fill the available container width.
347
+ * @defaultValue `undefined`
348
+ */
349
+ width: fields.NumberField<{ required: false; positive: true; integer: true; initial: undefined }>;
350
+
351
+ /**
352
+ * The height of the video, otherwise it will use the aspect ratio of the source video, or 16:9 if that aspect
353
+ * ratio is not available.
354
+ * @defaultValue `undefined`
355
+ */
356
+ height: fields.NumberField<{ required: false; positive: true; integer: true; initial: undefined }>;
357
+ }>;
358
+
359
+ /**
360
+ * The URI of the image or other external media to be used for this page.
361
+ * @defaultValue `null`
362
+ */
363
+ src: fields.StringField<{
364
+ required: false;
365
+ blank: false;
366
+ nullable: true;
367
+ initial: null;
368
+ label: "JOURNALENTRYPAGE.Source";
369
+ }>;
370
+
371
+ /**
372
+ * The numeric sort value which orders this page relative to its siblings.
373
+ * @defaultValue `0`
374
+ */
375
+ sort: fields.IntegerSortField;
376
+
377
+ /**
378
+ * An object which configures the ownership of this page.
379
+ * @defaultValue `CONST.DOCUMENT_OWNERSHIP_LEVELS.INHERIT`
380
+ */
381
+ ownership: fields.DocumentOwnershipField<{
382
+ initial: { default: typeof CONST.DOCUMENT_OWNERSHIP_LEVELS.INHERIT };
383
+ }>;
384
+
385
+ /**
386
+ * An object of optional key/value flags.
387
+ * @defaultValue `{}`
388
+ */
389
+ flags: fields.ObjectField.FlagsField<Name>;
390
+
391
+ _stats: fields.DocumentStatsField;
392
+ }
393
+
394
+ namespace Database {
395
+ /** Options passed along in Get operations for JournalEntryPages */
396
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<JournalEntryPage.Parent> {}
397
+
398
+ /** Options passed along in Create operations for JournalEntryPages */
399
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
400
+ extends foundry.abstract.types.DatabaseCreateOperation<
401
+ JournalEntryPage.CreateData,
402
+ JournalEntryPage.Parent,
403
+ Temporary
404
+ > {
405
+ animate?: boolean;
406
+ }
407
+
408
+ /** Options passed along in Delete operations for JournalEntryPages */
409
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<JournalEntryPage.Parent> {
410
+ animate?: boolean;
411
+ }
412
+
413
+ /** Options passed along in Update operations for JournalEntryPages */
414
+ interface Update
415
+ extends foundry.abstract.types.DatabaseUpdateOperation<JournalEntryPage.UpdateData, JournalEntryPage.Parent> {
416
+ animate?: boolean;
417
+ }
418
+
419
+ /** Operation for {@link JournalEntryPage.createDocuments | `JournalEntryPage.createDocuments`} */
420
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
421
+ extends Document.Database.CreateOperation<JournalEntryPage.Database.Create<Temporary>> {}
422
+
423
+ /** Operation for {@link JournalEntryPage.updateDocuments | `JournalEntryPage.updateDocuments`} */
424
+ interface UpdateDocumentsOperation
425
+ extends Document.Database.UpdateDocumentsOperation<JournalEntryPage.Database.Update> {}
426
+
427
+ /** Operation for {@link JournalEntryPage.deleteDocuments | `JournalEntryPage.deleteDocuments`} */
428
+ interface DeleteDocumentsOperation
429
+ extends Document.Database.DeleteDocumentsOperation<JournalEntryPage.Database.Delete> {}
430
+
431
+ /** Operation for {@link JournalEntryPage.create | `JournalEntryPage.create`} */
432
+ interface CreateOperation<Temporary extends boolean | undefined>
433
+ extends Document.Database.CreateOperation<JournalEntryPage.Database.Create<Temporary>> {}
434
+
435
+ /** Operation for {@link JournalEntryPage.update | `JournalEntryPage#update`} */
436
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
437
+
438
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
439
+
440
+ /** Options for {@link JournalEntryPage.get | `JournalEntryPage.get`} */
441
+ interface GetOptions extends Document.Database.GetOptions {}
442
+
443
+ /** Options for {@link JournalEntryPage._preCreate | `JournalEntryPage#_preCreate`} */
444
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
445
+
446
+ /** Options for {@link JournalEntryPage._onCreate | `JournalEntryPage#_onCreate`} */
447
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
448
+
449
+ /** Operation for {@link JournalEntryPage._preCreateOperation | `JournalEntryPage._preCreateOperation`} */
450
+ interface PreCreateOperation
451
+ extends Document.Database.PreCreateOperationStatic<JournalEntryPage.Database.Create> {}
452
+
453
+ /** Operation for {@link JournalEntryPage._onCreateOperation | `JournalEntryPage#_onCreateOperation`} */
454
+ interface OnCreateOperation extends JournalEntryPage.Database.Create {}
455
+
456
+ /** Options for {@link JournalEntryPage._preUpdate | `JournalEntryPage#_preUpdate`} */
457
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
458
+
459
+ /** Options for {@link JournalEntryPage._onUpdate | `JournalEntryPage#_onUpdate`} */
460
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
461
+
462
+ /** Operation for {@link JournalEntryPage._preUpdateOperation | `JournalEntryPage._preUpdateOperation`} */
463
+ interface PreUpdateOperation extends JournalEntryPage.Database.Update {}
464
+
465
+ /** Operation for {@link JournalEntryPage._onUpdateOperation | `JournalEntryPage._preUpdateOperation`} */
466
+ interface OnUpdateOperation extends JournalEntryPage.Database.Update {}
467
+
468
+ /** Options for {@link JournalEntryPage._preDelete | `JournalEntryPage#_preDelete`} */
469
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
470
+
471
+ /** Options for {@link JournalEntryPage._onDelete | `JournalEntryPage#_onDelete`} */
472
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
473
+
474
+ /** Options for {@link JournalEntryPage._preDeleteOperation | `JournalEntryPage#_preDeleteOperation`} */
475
+ interface PreDeleteOperation extends JournalEntryPage.Database.Delete {}
476
+
477
+ /** Options for {@link JournalEntryPage._onDeleteOperation | `JournalEntryPage#_onDeleteOperation`} */
478
+ interface OnDeleteOperation extends JournalEntryPage.Database.Delete {}
479
+
480
+ /** Context for {@link JournalEntryPage._onDeleteOperation | `JournalEntryPage._onDeleteOperation`} */
481
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<JournalEntryPage.Parent> {}
482
+
483
+ /** Context for {@link JournalEntryPage._onCreateDocuments | `JournalEntryPage._onCreateDocuments`} */
484
+ interface OnCreateDocumentsContext extends Document.ModificationContext<JournalEntryPage.Parent> {}
485
+
486
+ /** Context for {@link JournalEntryPage._onUpdateDocuments | `JournalEntryPage._onUpdateDocuments`} */
487
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<JournalEntryPage.Parent> {}
488
+
489
+ /**
490
+ * Options for {@link JournalEntryPage._preCreateDescendantDocuments | `JournalEntryPage#_preCreateDescendantDocuments`}
491
+ * and {@link JournalEntryPage._onCreateDescendantDocuments | `JournalEntryPage#_onCreateDescendantDocuments`}
492
+ */
493
+ interface CreateOptions extends Document.Database.CreateOptions<JournalEntryPage.Database.Create> {}
494
+
495
+ /**
496
+ * Options for {@link JournalEntryPage._preUpdateDescendantDocuments | `JournalEntryPage#_preUpdateDescendantDocuments`}
497
+ * and {@link JournalEntryPage._onUpdateDescendantDocuments | `JournalEntryPage#_onUpdateDescendantDocuments`}
498
+ */
499
+ interface UpdateOptions extends Document.Database.UpdateOptions<JournalEntryPage.Database.Update> {}
500
+
501
+ /**
502
+ * Options for {@link JournalEntryPage._preDeleteDescendantDocuments | `JournalEntryPage#_preDeleteDescendantDocuments`}
503
+ * and {@link JournalEntryPage._onDeleteDescendantDocuments | `JournalEntryPage#_onDeleteDescendantDocuments`}
504
+ */
505
+ interface DeleteOptions extends Document.Database.DeleteOptions<JournalEntryPage.Database.Delete> {}
506
+ }
507
+
508
+ /**
509
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
510
+ */
511
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
512
+
513
+ namespace Flags {
514
+ /**
515
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
516
+ */
517
+ type Scope = Document.FlagKeyOf<Flags>;
518
+
519
+ /**
520
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
521
+ */
522
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
523
+
524
+ /**
525
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
526
+ */
527
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
528
+ }
21
529
 
22
530
  interface JournalEntryPageHeading {
23
531
  /** The heading level, 1-6. */
@@ -38,15 +546,85 @@ declare global {
38
546
  /** The linear ordering of the heading in the table of contents. */
39
547
  order: number;
40
548
  }
549
+
550
+ interface CreateDocumentLinkOptions extends ClientDocument.CreateDocumentLinkOptions {
551
+ /**
552
+ * @remarks If the `eventData` passed with these options has an `anchor.slug`, the default is `eventData.anchor.name`,
553
+ * otherwise uses `super`'s default of `this.name`
554
+ */
555
+ label?: string | null | undefined;
556
+ }
557
+
558
+ /**
559
+ * @internal
560
+ * Slightly editorializing the description with the addition of parentheses to make this scan
561
+ * for both {@linkcode JournalEntryPage.buildTOC} and {@linkcode JournalEntryPage._makeHeadingNode}
562
+ */
563
+ type _IncludeElement = NullishProps<{
564
+ /**
565
+ * Include reference(s) to the heading DOM element(s) in the returned ToC.
566
+ * @defaultValue `true`
567
+ */
568
+ includeElement: boolean;
569
+ }>;
570
+
571
+ interface BuildTOCOptions extends _IncludeElement {}
572
+
573
+ interface MakeHeadingNodeOptions extends _IncludeElement {}
574
+
575
+ interface EmbedTextPageConfig extends TextEditor.EnrichmentOptions, TextEditor.DocumentHTMLEmbedConfig {}
576
+
577
+ /** @internal */
578
+ type _EmbedImagePageConfig = NullishProps<{
579
+ /**
580
+ * Alt text for the image, otherwise the caption will be used.
581
+ * @remarks If both `alt` and `label` are omitted, the returned Element's `alt` will fall back to using `this.image.caption || this.name`
582
+ */
583
+ alt: string;
584
+ }>;
585
+
586
+ interface EmbedImagePageConfig extends _EmbedImagePageConfig, TextEditor.DocumentHTMLEmbedConfig {}
587
+
588
+ /**
589
+ * @deprecated {@link JournalEntryPage.Database | `JournalEntryPage.DatabaseOperation`}
590
+ */
591
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
592
+ interface DatabaseOperations extends Document.Database.Operations<JournalEntryPage.Implementation> {}
593
+
594
+ /**
595
+ * @deprecated {@link JournalEntryPage.SubType | `JournalEntryPage.SubType`}
596
+ */
597
+ type TypeNames = JournalEntryPage.SubType;
598
+
599
+ /**
600
+ * @deprecated {@link JournalEntryPage.CreateData | `JournalEntryPage.CreateData`}
601
+ */
602
+ interface ConstructorData extends JournalEntryPage.CreateData {}
603
+
604
+ /**
605
+ * @deprecated {@link JournalEntryPage.implementation | `JournalEntryPage.ImplementationClass`}
606
+ */
607
+ type ConfiguredClass = ImplementationClass;
608
+
609
+ /**
610
+ * @deprecated {@link JournalEntryPage.Implementation | `JournalEntryPage.Implementation`}
611
+ */
612
+ type ConfiguredInstance = Implementation;
41
613
  }
42
614
 
43
615
  /**
44
616
  * The client-side JournalEntryPage document which extends the common BaseJournalEntryPage document model.
45
617
  *
46
- * @see {@link JournalEntry} The JournalEntry document type which contains JournalEntryPage embedded documents.
618
+ * @see {@link JournalEntry | `JournalEntry`} The JournalEntry document type which contains JournalEntryPage embedded documents.
47
619
  */
48
- class JournalEntryPage extends ClientDocumentMixin(foundry.documents.BaseJournalEntryPage) {
49
- static override metadata: JournalEntryPage.Metadata;
620
+ class JournalEntryPage<
621
+ out SubType extends JournalEntryPage.SubType = JournalEntryPage.SubType,
622
+ > extends ClientDocumentMixin(foundry.documents.BaseJournalEntryPage)<SubType> {
623
+ /**
624
+ * @param data - Initial data from which to construct the `JournalEntryPage`
625
+ * @param context - Construction context options
626
+ */
627
+ constructor(...args: JournalEntryPage.ConstructorArgs);
50
628
 
51
629
  /**
52
630
  * The cached table of contents for this JournalEntryPage.
@@ -58,13 +636,13 @@ declare global {
58
636
  */
59
637
  get toc(): Record<string, JournalEntryPage.JournalEntryPageHeading>;
60
638
 
61
- override get permission(): foundry.CONST.DOCUMENT_OWNERSHIP_LEVELS;
639
+ override get permission(): CONST.DOCUMENT_OWNERSHIP_LEVELS | null;
62
640
 
63
641
  /**
64
642
  * Return a reference to the Note instance for this Journal Entry Page in the current Scene, if any.
65
643
  * If multiple notes are placed for this Journal Entry, only the first will be returned.
66
644
  */
67
- get sceneNote(): Note | null;
645
+ get sceneNote(): Note.Object | null;
68
646
 
69
647
  /**
70
648
  * Convert a heading into slug suitable for use as an identifier.
@@ -77,15 +655,10 @@ declare global {
77
655
  * @param html - The HTML content to generate a ToC outline for.
78
656
  * @param options - Additional options to configure ToC generation.
79
657
  */
658
+ // options: not null (destructured)
80
659
  static buildTOC(
81
660
  html: HTMLElement[],
82
- options: InexactPartial<{
83
- /**
84
- * Include references to the heading DOM elements in the returned ToC.
85
- * @defaultValue `true`
86
- */
87
- includeElement: boolean;
88
- }>,
661
+ options?: JournalEntryPage.BuildTOCOptions,
89
662
  ): Record<string, JournalEntryPage.JournalEntryPageHeading>;
90
663
 
91
664
  /**
@@ -101,37 +674,25 @@ declare global {
101
674
  * @param heading - The heading element.
102
675
  * @param options - Additional options to configure the returned node.
103
676
  */
677
+ // options: not null (destructured)
104
678
  protected static _makeHeadingNode(
105
679
  heading: HTMLHeadingElement,
106
- options: InexactPartial<{
107
- /**
108
- * Whether to include the DOM element in the returned ToC node.
109
- * @defaultValue `true`
110
- */
111
- includeElement: boolean;
112
- }>,
680
+ options?: JournalEntryPage.MakeHeadingNodeOptions,
113
681
  ): JournalEntryPage.JournalEntryPageHeading;
114
682
 
115
- protected override _createDocumentLink(
116
- eventData: unknown,
117
- options?: InexactPartial<{
118
- /**
119
- * A document to generate a link relative to.
120
- */
121
- relativeTo: ClientDocument;
122
- /**
123
- * A custom label to use instead of the document's name.
124
- */
125
- label: string;
126
- }>,
127
- ): string;
128
-
129
- override _onClickDocumentLink(event: MouseEvent): this;
683
+ /** @remarks Uses `eventData`, unlike {@link ClientDocument._createDocumentLink | `ClientDocument#_createDocumentLink`} */
684
+ // options: not null (destructured)
685
+ override _createDocumentLink(eventData: AnyObject, options?: JournalEntryPage.CreateDocumentLinkOptions): string;
130
686
 
131
687
  /**
132
- * @privateRemarks _onUpdate is overridden but with no signature changes.
133
- * For type simplicity it is left off. These methods historically have been the source of a large amount of computation from tsc.
688
+ * @remarks
689
+ * As `super`, but return the parent's sheet's `#render`:
690
+ * - AppV1: returns that sheet
691
+ * - AppV2: returns a Promise of that sheet
134
692
  */
693
+ override _onClickDocumentLink(event: MouseEvent): ClientDocument.OnClickDocumentLinkReturn;
694
+
695
+ // _onUpdate is overridden but with no signature changes from the template in BaseJournalEntryPage
135
696
 
136
697
  protected override _buildEmbedHTML(
137
698
  config: TextEditor.DocumentHTMLEmbedConfig,
@@ -186,8 +747,9 @@ declare global {
186
747
  * </section>
187
748
  * ```
188
749
  */
750
+ // options: not null (parameter default only)
189
751
  protected _embedTextPage(
190
- config: TextEditor.DocumentHTMLEmbedConfig & TextEditor.EnrichmentOptions,
752
+ config: JournalEntryPage.EmbedTextPageConfig,
191
753
  options?: TextEditor.EnrichmentOptions,
192
754
  ): Promise<HTMLCollection>;
193
755
 
@@ -196,7 +758,6 @@ declare global {
196
758
  * @param config - Configuration for embedding behavior.
197
759
  * @param options - The original enrichment options for cases where the Document embed content
198
760
  * also contains text that must be enriched.
199
- * @returns
200
761
  *
201
762
  * @example Create an embedded image from a sibling journal entry page.
202
763
  * ```
@@ -219,13 +780,51 @@ declare global {
219
780
  * </figcaption>
220
781
  * </figure>
221
782
  * ```
783
+ *
784
+ * @remarks Core's implementation always returns a {@linkcode HTMLImageElement}, and does not use `options`
222
785
  */
786
+ // config: not null (destructured), options: not null (parameter default only)
223
787
  protected _embedImagePage(
224
- config: TextEditor.DocumentHTMLEmbedConfig & {
225
- /** Alt text for the image, otherwise the caption will be used. **/
226
- alt?: string | unknown;
227
- },
228
- options?: InexactPartial<TextEditor.EnrichmentOptions>,
788
+ config?: JournalEntryPage.EmbedImagePageConfig,
789
+ options?: TextEditor.EnrichmentOptions,
229
790
  ): Promise<HTMLElement | HTMLCollection | null>;
791
+
792
+ /*
793
+ * After this point these are not really overridden methods.
794
+ * They are here because Foundry's documents are complex and have lots of edge cases.
795
+ * There are DRY ways of representing this but this ends up being harder to understand
796
+ * for end users extending these functions, especially for static methods. There are also a
797
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
798
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
799
+ * separate like this helps against circularities.
800
+ */
801
+
802
+ // ClientDocument overrides
803
+
804
+ // Descendant Document operations have been left out because JournalEntryPage does not have any descendant documents.
805
+
806
+ // context: not null (destructured)
807
+ static override defaultName(
808
+ context?: Document.DefaultNameContext<"JournalEntryPage", NonNullable<JournalEntryPage.Parent>>,
809
+ ): string;
810
+
811
+ /** @remarks `context.parent` is required as creation requires one */
812
+ static override createDialog(
813
+ data: Document.CreateDialogData<JournalEntryPage.CreateData> | undefined,
814
+ context: Document.CreateDialogContext<"JournalEntryPage", NonNullable<JournalEntryPage.Parent>>,
815
+ ): Promise<JournalEntryPage.Stored | null | undefined>;
816
+
817
+ // options: not null (parameter default only)
818
+ static override fromDropData(
819
+ data: Document.DropData<JournalEntryPage.Implementation>,
820
+ options?: AnyObject,
821
+ ): Promise<JournalEntryPage.Implementation | undefined>;
822
+
823
+ static override fromImport(
824
+ source: JournalEntryPage.Source,
825
+ context?: Document.FromImportContext<JournalEntryPage.Parent> | null,
826
+ ): Promise<JournalEntryPage.Implementation>;
827
+
828
+ // Embedded document operations have been left out because JournalEntryPage does not have any embedded documents.
230
829
  }
231
830
  }