@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,57 +1,539 @@
1
- import type { DeepPartial, InexactPartial } from "../../../../types/utils.d.mts";
1
+ import type { ConfiguredFolder } from "../../../../configuration/index.d.mts";
2
+ import type { AnyObject, InexactPartial, IntentionalPartial, 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 BaseFolder from "../../../common/documents/folder.d.mts";
5
7
 
6
8
  declare global {
7
9
  namespace Folder {
8
- type Metadata = Document.MetadataFor<Folder>;
10
+ /**
11
+ * The document's name.
12
+ */
13
+ type Name = "Folder";
14
+
15
+ /**
16
+ * The arguments to construct the document.
17
+ */
18
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
19
+
20
+ /**
21
+ * The documents embedded within `Folder`.
22
+ */
23
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
24
+
25
+ /**
26
+ * The implementation of the `Folder` document instance configured through `CONFIG.Folder.documentClass` in Foundry and
27
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredFolder | `fvtt-types/configuration/ConfiguredFolder`} in fvtt-types.
28
+ */
29
+ type Implementation = Document.ImplementationFor<Name>;
30
+
31
+ /**
32
+ * The implementation of the `Folder` document configured through `CONFIG.Folder.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: "Folder";
46
+ collection: "folders";
47
+ label: string;
48
+ labelPlural: string;
49
+ coreTypes: typeof CONST.FOLDER_DOCUMENT_TYPES;
50
+ schemaVersion: string;
51
+ }>
52
+ > {}
53
+
54
+ // No need for Metadata namespace
55
+
56
+ /**
57
+ * The subtypes of `Folder` that Foundry provides. `Folder` does not have `system` and therefore
58
+ * there is no way for a user to configure custom subtypes. Nevertheless Foundry has a number of
59
+ * built in subtypes usable for `Folder`.
60
+ *
61
+ * Each of `Folder`'s subtypes correspond to something that it is intended to contain. This
62
+ * includes various documents as well as a {@link Compendium | `Compendium`}. The documents a
63
+ * `Folder` can contain specifically are an {@link Actor | `Actor`}, {@link Adventure | `Adventure`},
64
+ * {@link Item | `Item`}, {@link Scene | `Scene`}, {@link JournalEntry | `JournalEntry`},
65
+ * {@link Playlist | `Playlist`}, {@link RollTable | `RollTable`}, {@link Cards | `Cards`}, or a
66
+ * {@link Macro | `Macro`}
67
+ */
68
+ type SubType = Game.Model.TypeNames<Name>;
69
+
70
+ /**
71
+ * @deprecated `Folder` does not have `system` and therefore there is no way for a user to
72
+ * configure custom subtypes.
73
+ *
74
+ * This type exists only to be informative.
75
+ */
76
+ type ConfiguredSubTypes = never;
77
+
78
+ /**
79
+ * @deprecated `Folder` does not have `system` and therefore there is no way for a user to
80
+ * configure custom subtypes. This means `Known` as a concept does not apply to it.
81
+ *
82
+ * This type exists only to be informative.
83
+ */
84
+ type Known = never;
85
+
86
+ /**
87
+ * `OfType` returns an instance of `Folder` with the corresponding type. This works with both the
88
+ * builtin `Folder` class or a custom subclass if that is set up in
89
+ * {@link ConfiguredFolder | `fvtt-types/configuration/ConfiguredFolder`}.
90
+ *
91
+ * Note that `Folder` does not have a `system` property and therefore there is no way for a user
92
+ * to configure custom subtypes. See {@link Folder.SubType | `Folder.SubType`} for more information.
93
+ */
94
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types
95
+ type OfType<Type extends SubType> = Document.Internal.OfType<ConfiguredFolder<Type>, Folder<Type>>;
96
+
97
+ /**
98
+ * A document's parent is something that can contain it.
99
+ * For example an `Item` can be contained by an `Actor` which makes `Actor` one of its possible parents.
100
+ */
101
+ type Parent = Actor.Implementation | Item.Implementation | null;
102
+
103
+ /**
104
+ * A document's descendants are any child documents, grandchild documents, etc.
105
+ * This is a union of all instances, or never if the document doesn't have any descendants.
106
+ */
107
+ type Descendant = never;
108
+
109
+ /**
110
+ * A document's descendants are any child documents, grandchild documents, etc.
111
+ * This is a union of all classes, or never if the document doesn't have any descendants.
112
+ */
113
+ type DescendantClass = never;
114
+
115
+ /**
116
+ * Types of `CompendiumCollection` this document might be contained in.
117
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
118
+ */
119
+ // Note: Takes any document in the heritage chain (i.e. itself or any parent, transitive or not) that can be contained in a compendium.
120
+ type Pack = CompendiumCollection.ForDocument<CONST.COMPENDIUM_DOCUMENT_TYPES>;
121
+
122
+ /**
123
+ * An embedded document is a document contained in another.
124
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
125
+ *
126
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
127
+ */
128
+ type Embedded = never;
129
+
130
+ /**
131
+ * The name of the world or embedded collection this document can find itself in.
132
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
133
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
134
+ */
135
+ type ParentCollectionName = Metadata["collection"];
136
+
137
+ /**
138
+ * The world collection that contains `Folder`s. Will be `never` if none exists.
139
+ */
140
+ type CollectionClass = Folders.ConfiguredClass;
141
+
142
+ /**
143
+ * The world collection that contains `Folder`s. Will be `never` if none exists.
144
+ */
145
+ type Collection = Folders.Configured;
146
+
147
+ /**
148
+ * An instance of `Folder` that comes from the database but failed validation meaning that
149
+ * its `system` and `_source` could theoretically be anything.
150
+ */
151
+ interface Invalid<out SubType extends Folder.SubType = Folder.SubType> extends Document.Invalid<OfType<SubType>> {}
152
+
153
+ /**
154
+ * An instance of `Folder` that comes from the database.
155
+ */
156
+ interface Stored<out SubType extends Folder.SubType = Folder.SubType> extends Document.Stored<OfType<SubType>> {}
157
+
158
+ /**
159
+ * The data put in {@link Folder._source | `Folder#_source`}. This data is what was
160
+ * persisted to the database and therefore it must be valid JSON.
161
+ *
162
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
163
+ * but initialized as a {@link Set | `Set`}.
164
+ */
165
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
166
+
167
+ /**
168
+ * @deprecated {@link Folder.Source | `Folder.Source`}
169
+ */
170
+ type PersistedData = Source;
171
+
172
+ /**
173
+ * The data necessary to create a document. Used in places like {@link Folder.create | `Folder.create`}
174
+ * and {@link Folder | `new Folder(...)`}.
175
+ *
176
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
177
+ * with the right values. This means you can pass a `Set` instance, an array of values,
178
+ * a generator, or any other iterable.
179
+ */
180
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
181
+
182
+ /**
183
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
184
+ * {@link Folder.name | `Folder#name`}.
185
+ *
186
+ * This is data transformed from {@link Folder.Source | `Folder.Source`} and turned into more
187
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
188
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
189
+ */
190
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
191
+
192
+ /**
193
+ * The data used to update a document, for example {@link Folder.update | `Folder#update`}.
194
+ * It is a distinct type from {@link Folder.CreateData | `DeepPartial<Folder.CreateData>`} because
195
+ * it has different rules for `null` and `undefined`.
196
+ */
197
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
198
+
199
+ /**
200
+ * The schema for {@link Folder | `Folder`}. This is the source of truth for how an Folder document
201
+ * must be structured.
202
+ *
203
+ * Foundry uses this schema to validate the structure of the {@link Folder | `Folder`}. For example
204
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
205
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
206
+ * starting as an array in the database, initialized as a set, and allows updates with any
207
+ * iterable.
208
+ */
209
+ interface Schema extends DataSchema {
210
+ /**
211
+ * The _id which uniquely identifies this Folder document
212
+ * @defaultValue `null`
213
+ */
214
+ _id: fields.DocumentIdField;
215
+
216
+ /** The name of this Folder */
217
+ // FIXME: This field is `required` with no `initial`, so actually required for construction; Currently an AssignmentType override is required to enforce this
218
+ name: fields.StringField<{ required: true; blank: false; textSearch: true }, string>;
219
+
220
+ /** The document type which this Folder contains, from {@linkcode CONST.FOLDER_DOCUMENT_TYPES} */
221
+ type: fields.DocumentTypeField<typeof BaseFolder>;
222
+
223
+ /**
224
+ * An HTML description of the contents of this folder
225
+ * @defaultValue `""`
226
+ */
227
+ description: fields.HTMLField<{ textSearch: true }>;
228
+
229
+ /**
230
+ * The _id of a parent Folder which contains this Folder
231
+ * @defaultValue `null`
232
+ */
233
+ folder: fields.ForeignDocumentField<typeof BaseFolder>;
9
234
 
10
- type ConfiguredClass = Document.ConfiguredClassForName<"Folder">;
11
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"Folder">;
12
- type Stored = Document.Stored<ConfiguredInstance>;
235
+ /**
236
+ * The sorting mode used to organize documents within this Folder, in ["a", "m"]
237
+ * @defaultValue `"a"`
238
+ */
239
+ sorting: fields.StringField<{ required: true; initial: "a"; choices: typeof BaseFolder.SORTING_MODES }>;
13
240
 
14
- interface DatabaseOperations extends DocumentDatabaseOperations<Folder> {}
241
+ /**
242
+ * The numeric sort value which orders this Folder relative to its siblings
243
+ * @defaultValue `0`
244
+ */
245
+ sort: fields.IntegerSortField;
15
246
 
16
- // Helpful aliases
17
- // type TypeNames = BaseFolder.TypeNames; // TODO: Un-comment after subtype updates are merged
18
- type ConstructorData = BaseFolder.ConstructorData;
19
- type UpdateData = BaseFolder.UpdateData;
20
- type Schema = BaseFolder.Schema;
21
- type Source = BaseFolder.Source;
247
+ /**
248
+ * A color string used for the background color of this Folder
249
+ * @defaultValue `null`
250
+ */
251
+ color: fields.ColorField;
22
252
 
23
- interface ExportToCompendiumOptions {
24
- /** Update existing entries in the Compendium pack, matching by name */
25
- updateByName?: boolean | undefined;
253
+ /**
254
+ * An object of optional key/value flags
255
+ * @defaultValue `{}`
256
+ */
257
+ flags: fields.ObjectField.FlagsField<Name>;
258
+
259
+ /**
260
+ * An object of creation and access information
261
+ * @defaultValue see {@link fields.DocumentStatsField | `fields.DocumentStatsField`}
262
+ */
263
+ _stats: fields.DocumentStatsField;
264
+ }
265
+
266
+ namespace Database {
267
+ /** Options passed along in Get operations for Folders */
268
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<Folder.Parent> {}
269
+
270
+ /** Options passed along in Create operations for Folders */
271
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
272
+ extends foundry.abstract.types.DatabaseCreateOperation<Folder.CreateData, Folder.Parent, Temporary> {}
273
+
274
+ /** Options passed along in Delete operations for Folders */
275
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<Folder.Parent> {}
276
+
277
+ /** Options passed along in Update operations for Folders */
278
+ interface Update extends foundry.abstract.types.DatabaseUpdateOperation<Folder.UpdateData, Folder.Parent> {}
279
+
280
+ /** Operation for {@link Folder.createDocuments | `Folder.createDocuments`} */
281
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
282
+ extends Document.Database.CreateOperation<Folder.Database.Create<Temporary>> {}
283
+
284
+ /** Operation for {@link Folder.updateDocuments | `Folder.updateDocuments`} */
285
+ interface UpdateDocumentsOperation extends Document.Database.UpdateDocumentsOperation<Folder.Database.Update> {}
286
+
287
+ /** Operation for {@link Folder.deleteDocuments | `Folder.deleteDocuments`} */
288
+ interface DeleteDocumentsOperation extends Document.Database.DeleteDocumentsOperation<Folder.Database.Delete> {}
289
+
290
+ /** Operation for {@link Folder.create | `Folder.create`} */
291
+ interface CreateOperation<Temporary extends boolean | undefined>
292
+ extends Document.Database.CreateOperation<Folder.Database.Create<Temporary>> {}
293
+
294
+ /** Operation for {@link Folder.update | `Folder#update`} */
295
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
296
+
297
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
298
+
299
+ /** Options for {@link Folder.get | `Folder.get`} */
300
+ interface GetOptions extends Document.Database.GetOptions {}
301
+
302
+ /** Options for {@link Folder._preCreate | `Folder#_preCreate`} */
303
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
304
+
305
+ /** Options for {@link Folder._onCreate | `Folder#_onCreate`} */
306
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
307
+
308
+ /** Operation for {@link Folder._preCreateOperation | `Folder._preCreateOperation`} */
309
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<Folder.Database.Create> {}
310
+
311
+ /** Operation for {@link Folder._onCreateOperation | `Folder#_onCreateOperation`} */
312
+ interface OnCreateOperation extends Folder.Database.Create {}
313
+
314
+ /** Options for {@link Folder._preUpdate | `Folder#_preUpdate`} */
315
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
316
+
317
+ /** Options for {@link Folder._onUpdate | `Folder#_onUpdate`} */
318
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
319
+
320
+ /** Operation for {@link Folder._preUpdateOperation | `Folder._preUpdateOperation`} */
321
+ interface PreUpdateOperation extends Folder.Database.Update {}
322
+
323
+ /** Operation for {@link Folder._onUpdateOperation | `Folder._preUpdateOperation`} */
324
+ interface OnUpdateOperation extends Folder.Database.Update {}
325
+
326
+ /** Options for {@link Folder._preDelete | `Folder#_preDelete`} */
327
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
328
+
329
+ /** Options for {@link Folder._onDelete | `Folder#_onDelete`} */
330
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
331
+
332
+ /** Options for {@link Folder._preDeleteOperation | `Folder#_preDeleteOperation`} */
333
+ interface PreDeleteOperation extends Folder.Database.Delete {}
334
+
335
+ /** Options for {@link Folder._onDeleteOperation | `Folder#_onDeleteOperation`} */
336
+ interface OnDeleteOperation extends Folder.Database.Delete {}
337
+
338
+ /** Context for {@link Folder._onDeleteOperation | `Folder._onDeleteOperation`} */
339
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<Folder.Parent> {}
340
+
341
+ /** Context for {@link Folder._onCreateDocuments | `Folder._onCreateDocuments`} */
342
+ interface OnCreateDocumentsContext extends Document.ModificationContext<Folder.Parent> {}
343
+
344
+ /** Context for {@link Folder._onUpdateDocuments | `Folder._onUpdateDocuments`} */
345
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<Folder.Parent> {}
346
+
347
+ /**
348
+ * Options for {@link Folder._preCreateDescendantDocuments | `Folder#_preCreateDescendantDocuments`}
349
+ * and {@link Folder._onCreateDescendantDocuments | `Folder#_onCreateDescendantDocuments`}
350
+ */
351
+ interface CreateOptions extends Document.Database.CreateOptions<Folder.Database.Create> {}
352
+
353
+ /**
354
+ * Options for {@link Folder._preUpdateDescendantDocuments | `Folder#_preUpdateDescendantDocuments`}
355
+ * and {@link Folder._onUpdateDescendantDocuments | `Folder#_onUpdateDescendantDocuments`}
356
+ */
357
+ interface UpdateOptions extends Document.Database.UpdateOptions<Folder.Database.Update> {}
358
+
359
+ /**
360
+ * Options for {@link Folder._preDeleteDescendantDocuments | `Folder#_preDeleteDescendantDocuments`}
361
+ * and {@link Folder._onDeleteDescendantDocuments | `Folder#_onDeleteDescendantDocuments`}
362
+ */
363
+ interface DeleteOptions extends Document.Database.DeleteOptions<Folder.Database.Delete> {}
364
+ }
365
+
366
+ /**
367
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
368
+ */
369
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
370
+
371
+ namespace Flags {
372
+ /**
373
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
374
+ */
375
+ type Scope = Document.FlagKeyOf<Flags>;
376
+
377
+ /**
378
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
379
+ */
380
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
381
+
382
+ /**
383
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
384
+ */
385
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
386
+ }
387
+
388
+ /**
389
+ * @deprecated {@link Folder.Database | `Folder.DatabaseOperation`}
390
+ */
391
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
392
+ interface DatabaseOperations extends Document.Database.Operations<Folder.Implementation> {}
393
+
394
+ /**
395
+ * @deprecated {@link Folder.SubType | `Folder.SubType`}
396
+ */
397
+ type TypeNames = Folder.SubType;
398
+
399
+ /**
400
+ * @deprecated {@link Folder.CreateData | `Folder.CreateData`}
401
+ */
402
+ interface ConstructorData extends Folder.CreateData {}
403
+
404
+ /**
405
+ * @deprecated {@link Folder.implementation | `Folder.ImplementationClass`}
406
+ */
407
+ type ConfiguredClass = ImplementationClass;
408
+
409
+ /**
410
+ * @deprecated {@link Folder.Implementation | `Folder.Implementation`}
411
+ */
412
+ type ConfiguredInstance = Implementation;
413
+
414
+ /**
415
+ * Actual document types that go in folders
416
+ */
417
+ type DocumentType = Exclude<CONST.FOLDER_DOCUMENT_TYPES, "Compendium">;
418
+
419
+ type DocumentCollection<Type extends SubType> = Type extends "Compendium"
420
+ ? Collection.Any | undefined
421
+ : WorldCollection.Any;
422
+
423
+ /** @internal */
424
+ type _ExportToCompendiumOptions = NullishProps<{
425
+ /**
426
+ * Update existing entries in the Compendium pack, matching by name
427
+ * @defaultValue `false`
428
+ */
429
+ updateByName: boolean;
430
+
431
+ /**
432
+ * Retain the original _id attribute when updating an entity
433
+ * @defaultValue `false`
434
+ * @remarks No default applied despite Foundry's typing, but `undefined` will be treated falsily
435
+ */
436
+ keepId: boolean;
437
+
438
+ /**
439
+ * Retain the existing Folder structure
440
+ * @defaultValue `false`
441
+ * @remarks No default applied despite Foundry's typing, but `undefined` will be treated falsily
442
+ */
443
+ keepFolders: boolean;
444
+
445
+ /**
446
+ * A target folder id to which the documents will be exported
447
+ * @defaultValue `null`
448
+ */
449
+ folder: string;
450
+ }>;
451
+
452
+ /** @privateRemarks `keepId` omitted to override comment */
453
+ interface ExportToCompendiumOptions
454
+ extends _ExportToCompendiumOptions,
455
+ Omit<ClientDocument.ToCompendiumOptions, "keepId"> {}
456
+
457
+ /** @internal */
458
+ type _ExportDialogOptions = NullishProps<{
459
+ /**
460
+ * @remarks A compendium to preselect in the dialog
461
+ * @defaultValue `null`
462
+ */
463
+ pack: string;
464
+
465
+ /**
466
+ * @remarks Initial state of the `Merge by Name` checkbox in the dialog
467
+ * @defaultValue `true`
468
+ */
469
+ merge: boolean;
470
+
471
+ /**
472
+ * @remarks Initial state of the `Keep Document IDs` checkbox in the dialog
473
+ * @defaultValue `true`
474
+ */
475
+ keepId: boolean;
476
+
477
+ /**
478
+ * @remarks Initial state of the `Keep Folder Structure` checkbox in the dialog
479
+ * @defaultValue `true`
480
+ */
481
+ keepFolders: boolean;
482
+ }>;
483
+
484
+ interface ExportDialogOptions extends _ExportDialogOptions, IntentionalPartial<Dialog.Options> {}
485
+
486
+ // TODO: Handle compendium. This requires the index to be configured.
487
+ type Contents<SubType extends Folder.SubType> = Document.ImplementationFor<Extract<SubType, Document.Type>>[];
488
+
489
+ // TODO: Compendium Pack index
490
+ type DocumentClass<SubType extends Folder.SubType> = Document.ImplementationClassFor<
491
+ Extract<SubType, Document.Type>
492
+ >;
493
+
494
+ /**
495
+ * @remarks Rather than a simple `Dialog`, {@link Folder.createDialog | `Folder.createDialog`} creates a {@link FolderConfig | `FolderConfig`},
496
+ * passing along the returned `Promise`'s `resolve` to the app.
497
+ */
498
+ // TODO (v13): `options.document` is also force set
499
+ interface CreateDialogOptions extends InexactPartial<Omit<FolderConfig.Options, "resolve">> {
500
+ /** @deprecated This is force set to the `resolve` of the Promise returned by this `createDialog` call */
501
+ resolve?: never;
26
502
  }
27
503
  }
28
504
 
29
505
  /**
30
506
  * The client-side Folder document which extends the common BaseFolder model.
31
507
  *
32
- * @see {@link Folders} The world-level collection of Folder documents
33
- * @see {@link FolderConfig} The Folder configuration application
508
+ * @see {@link Folders | `Folders`} The world-level collection of Folder documents
509
+ * @see {@link FolderConfig | `FolderConfig`} The Folder configuration application
34
510
  */
35
- class Folder extends ClientDocumentMixin(foundry.documents.BaseFolder) {
36
- static override metadata: Folder.Metadata;
37
-
38
- // TODO(LukeAbby): This random override is a symptom of a greater issue.
39
- // Namely that `ClientDocumentMixin` incidentally erases some properties and breaks configuration.
40
- documentName: "Folder";
511
+ class Folder<out SubType extends Folder.SubType = Folder.SubType> extends ClientDocumentMixin(
512
+ foundry.documents.BaseFolder,
513
+ )<SubType> {
514
+ /**
515
+ * @param data - Initial data from which to construct the `Folder`
516
+ * @param context - Construction context options
517
+ */
518
+ constructor(...args: Folder.ConstructorArgs);
41
519
 
42
520
  /**
43
521
  * The depth of this folder in its sidebar tree
44
522
  *
45
- * @remarks For folders that have been populated by the {@link SidebarDirectory}, this is always be defined
523
+ * @remarks For folders that have been populated by the {@link SidebarDirectory | `SidebarDirectory`}, this is always be defined
46
524
  */
47
- depth?: number;
525
+ depth: number | undefined;
48
526
 
49
527
  /**
50
528
  * An array of other Folders which are the displayed children of this one. This differs from the results of
51
- * {@link Folder.getSubfolders} because reports the subset of child folders which are displayed to the current User
52
- * in the UI.
529
+ * {@link Folder.getSubfolders | `Folder#getSubfolders`} because reports the subset of child folders which
530
+ * are displayed to the current User in the UI.
531
+ * @remarks Despite Foundry's typing, this is not an array of Folder documents.
532
+ *
533
+ * Initialized by {@link DirectoryCollection.initializeTree | `DirectoryCollection#initializeTree`}, so always
534
+ * `undefined` in temporary documents, and prior to first UI render in stored documents
53
535
  */
54
- children: Folder.ConfiguredInstance[];
536
+ children: DirectoryCollectionMixin.TreeNode<Folder.Implementation>[] | undefined;
55
537
 
56
538
  /**
57
539
  * Return whether the folder is displayed in the sidebar to the current User.
@@ -63,14 +545,14 @@ declare global {
63
545
  * unless it's a Folder inside a Compendium pack, in which case it's the array
64
546
  * of objects inside the index of the pack that are contained in this Folder.
65
547
  */
66
- get contents(): this["type"] extends Document.Type ? Document.ConfiguredInstanceForName<this["type"]>[] : never;
548
+ get contents(): Folder.Contents<SubType>;
67
549
 
68
550
  set contents(value);
69
551
 
70
552
  /**
71
553
  * The reference to the Document type which is contained within this Folder.
72
554
  */
73
- get documentClass(): this["type"] extends Document.Type ? Document.ConfiguredClassForName<this["type"]> : never;
555
+ get documentClass(): Folder.DocumentClass<SubType>;
74
556
 
75
557
  /**
76
558
  * The reference to the WorldCollection instance which provides Documents to this Folder,
@@ -78,7 +560,8 @@ declare global {
78
560
  * A world Folder containing CompendiumCollections will have neither.
79
561
  */
80
562
  // TODO: Compendium Pack index
81
- get documentCollection(): this["pack"] extends string ? unknown : undefined;
563
+ // TODO: Infer specific world collection from SubType
564
+ get documentCollection(): Folder.DocumentCollection<SubType>;
82
565
 
83
566
  /**
84
567
  * Return whether the folder is currently expanded within the sidebar interface.
@@ -88,27 +571,26 @@ declare global {
88
571
  /**
89
572
  * Return the list of ancestors of this folder, starting with the parent.
90
573
  */
91
- get ancestors(): Folder.ConfiguredInstance[];
574
+ get ancestors(): Folder.Implementation[];
92
575
 
93
- /**
94
- * @privateRemarks _preCreate overridden but with no signature changes.
95
- * For type simplicity it is left off. These methods historically have been the source of a large amount of computation from tsc.
96
- */
576
+ // _preCreate overridden but with no signature changes.
577
+ // For type simplicity it is left off. These methods historically have been the source of a large amount of computation from tsc.
97
578
 
98
- static createDialog<T extends Document.AnyConstructor>(
99
- this: T,
100
- data?: DeepPartial<Document.ConstructorDataFor<NoInfer<T>>>,
101
- context?: InexactPartial<Omit<FolderConfig.Options, "resolve">>,
102
- ): Promise<Document.ToConfiguredInstance<T> | null | undefined>;
579
+ /** @remarks Creates and renders a {@link FolderConfig | `FolderConfig`} instead of a simple Dialog */
580
+ // data, options: not null (parameter defaults only)
581
+ static override createDialog(
582
+ data?: Document.CreateDialogData<Folder.CreateData>,
583
+ context?: Folder.CreateDialogOptions,
584
+ ): Promise<Folder.Stored | null | undefined>;
103
585
 
104
586
  /**
105
587
  * Export all Documents contained in this Folder to a given Compendium pack.
106
588
  * Optionally update existing Documents within the Pack by name, otherwise append all new entries.
107
589
  * @param pack - A Compendium pack to which the documents will be exported
108
- * @param options - Additional options which customize how content is exported. See {@link ClientDocument#toCompendium}
109
- * (default: `{}`)
590
+ * @param options - Additional options which customize how content is exported. See {@link ClientDocument.toCompendium | `ClientDocument#toCompendium`} (default: `{}`)
110
591
  * @returns The updated Compendium Collection instance
111
592
  */
593
+ // options: not null (parameter default only)
112
594
  exportToCompendium<Metadata extends CompendiumCollection.Metadata>(
113
595
  pack: CompendiumCollection<Metadata>,
114
596
  options?: Folder.ExportToCompendiumOptions,
@@ -117,24 +599,58 @@ declare global {
117
599
  /**
118
600
  * Provide a dialog form that allows for exporting the contents of a Folder into an eligible Compendium pack.
119
601
  * @param pack - A pack ID to set as the default choice in the select input
120
- * @param options - Additional options passed to the Dialog.prompt method
121
- * (default: `{}`)
602
+ * @param options - Additional options passed to the Dialog.prompt method (default: `{}`)
122
603
  * @returns A Promise which resolves or rejects once the dialog has been submitted or closed
604
+ *
605
+ * @remarks - Foundry documents `pack` as just being a `string` but it is unused in favor of `options.pack`, and Foundry itself
606
+ * calls `exportDialog` with `null`.
123
607
  */
124
- exportDialog(pack: string, options?: DialogOptions): Promise<void>;
608
+ // options: not null (parameter default only)
609
+ exportDialog(pack: string | null, options?: Folder.ExportDialogOptions): Promise<void>;
125
610
 
126
611
  /**
127
612
  * Get the Folder documents which are sub-folders of the current folder, either direct children or recursively.
128
- * @param recursive - Identify child folders recursively, if false only direct children are returned
129
- * (default: `false`)
613
+ * @param recursive - Identify child folders recursively, if false only direct children are returned (default: `false`)
130
614
  * @returns An array of Folder documents which are subfolders of this one
131
615
  */
132
- getSubfolders(recursive?: boolean): Folder.ConfiguredInstance[];
616
+ getSubfolders(recursive?: boolean | null): Folder.Implementation[];
133
617
 
134
618
  /**
135
619
  * Get the Folder documents which are parent folders of the current folder or any if its parents.
136
620
  * @returns An array of Folder documents which are parent folders of this one
137
621
  */
138
- getParentFolders(): Folder.ConfiguredInstance[];
622
+ getParentFolders(): Folder.Implementation[];
623
+
624
+ /*
625
+ * After this point these are not really overridden methods.
626
+ * They are here because Foundry's documents are complex and have lots of edge cases.
627
+ * There are DRY ways of representing this but this ends up being harder to understand
628
+ * for end users extending these functions, especially for static methods. There are also a
629
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
630
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
631
+ * separate like this helps against circularities.
632
+ */
633
+
634
+ // ClientDocument overrides
635
+
636
+ // Descendant Document operations have been left out because Folder does not have any descendant documents.
637
+
638
+ // context: not null (destructured)
639
+ static override defaultName(context?: Document.DefaultNameContext<"Folder", Folder.Parent>): string;
640
+
641
+ // options: not null (parameter default only)
642
+ static override fromDropData(
643
+ data: Document.DropData<Folder.Implementation>,
644
+ options?: AnyObject,
645
+ ): Promise<Folder.Implementation | undefined>;
646
+
647
+ static override fromImport(
648
+ source: Folder.Source,
649
+ context?: Document.FromImportContext<Folder.Parent> | null,
650
+ ): Promise<Folder.Implementation>;
651
+
652
+ override _onClickDocumentLink(event: MouseEvent): ClientDocument.OnClickDocumentLinkReturn;
653
+
654
+ #Folder: true;
139
655
  }
140
656
  }