@league-of-foundry-developers/foundry-vtt-types 13.340.0 → 13.340.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (543) hide show
  1. package/README.md +6 -3
  2. package/package.json +40 -18
  3. package/src/configuration/configuration.d.mts +24 -23
  4. package/src/configuration/documents.d.mts +295 -0
  5. package/src/configuration/globals.d.mts +8 -2
  6. package/src/configuration/index.d.mts +1 -0
  7. package/src/foundry/client/apps/app.d.mts +121 -119
  8. package/src/foundry/client/apps/av/av-config.d.mts +13 -8
  9. package/src/foundry/client/apps/av/cameras.d.mts +11 -11
  10. package/src/foundry/client/apps/dice/dice-config.d.mts +22 -8
  11. package/src/foundry/client/apps/form.d.mts +112 -94
  12. package/src/foundry/client/apps/forms/actor.d.mts +22 -12
  13. package/src/foundry/client/apps/forms/adventure-exporter.d.mts +13 -8
  14. package/src/foundry/client/apps/forms/adventure-importer.d.mts +15 -7
  15. package/src/foundry/client/apps/forms/base-sheet.d.mts +14 -7
  16. package/src/foundry/client/apps/forms/card-config.d.mts +17 -9
  17. package/src/foundry/client/apps/forms/cards-config.d.mts +13 -14
  18. package/src/foundry/client/apps/forms/combat-config.d.mts +7 -7
  19. package/src/foundry/client/apps/forms/combatant-config.d.mts +4 -4
  20. package/src/foundry/client/apps/forms/default-sheets-config.d.mts +1 -1
  21. package/src/foundry/client/apps/forms/effect-config.d.mts +6 -6
  22. package/src/foundry/client/apps/forms/folder-config.d.mts +5 -5
  23. package/src/foundry/client/apps/forms/fonts.d.mts +42 -35
  24. package/src/foundry/client/apps/forms/grid-config.d.mts +11 -11
  25. package/src/foundry/client/apps/forms/image-popout.d.mts +28 -22
  26. package/src/foundry/client/apps/forms/item.d.mts +6 -6
  27. package/src/foundry/client/apps/forms/journal-page-sheet.d.mts +17 -15
  28. package/src/foundry/client/apps/forms/journal-sheet.d.mts +46 -37
  29. package/src/foundry/client/apps/forms/macro-config.d.mts +6 -6
  30. package/src/foundry/client/apps/forms/measure-template.d.mts +8 -8
  31. package/src/foundry/client/apps/forms/ownership.d.mts +5 -5
  32. package/src/foundry/client/apps/forms/playlist-config.d.mts +7 -9
  33. package/src/foundry/client/apps/forms/playlist-sound-config.d.mts +6 -6
  34. package/src/foundry/client/apps/forms/roll-table-config.d.mts +9 -10
  35. package/src/foundry/client/apps/forms/scene-config.d.mts +39 -39
  36. package/src/foundry/client/apps/forms/sheet-config.d.mts +8 -8
  37. package/src/foundry/client/apps/forms/user-config.d.mts +11 -11
  38. package/src/foundry/client/apps/hud/chatbubble.d.mts +14 -9
  39. package/src/foundry/client/apps/hud/container.d.mts +3 -3
  40. package/src/foundry/client/apps/hud/controls.d.mts +124 -84
  41. package/src/foundry/client/apps/hud/hotbar.d.mts +12 -12
  42. package/src/foundry/client/apps/hud/hud.d.mts +4 -4
  43. package/src/foundry/client/apps/hud/menu.d.mts +6 -6
  44. package/src/foundry/client/apps/hud/navigation.d.mts +11 -11
  45. package/src/foundry/client/apps/hud/pause.d.mts +7 -7
  46. package/src/foundry/client/apps/hud/players.d.mts +11 -11
  47. package/src/foundry/client/apps/i18n.d.mts +31 -27
  48. package/src/foundry/client/apps/placeables/drawing-config.d.mts +41 -33
  49. package/src/foundry/client/apps/placeables/drawing-hud.d.mts +4 -4
  50. package/src/foundry/client/apps/placeables/index.d.mts +0 -2
  51. package/src/foundry/client/apps/placeables/note-config.d.mts +27 -17
  52. package/src/foundry/client/apps/placeables/tile-config.d.mts +23 -10
  53. package/src/foundry/client/apps/placeables/tile-hud.d.mts +8 -8
  54. package/src/foundry/client/apps/placeables/token-config.d.mts +84 -63
  55. package/src/foundry/client/apps/placeables/token-hud.d.mts +10 -10
  56. package/src/foundry/client/apps/placeables/wall-config.d.mts +19 -16
  57. package/src/foundry/client/apps/sidebar/apps/chat-popout.d.mts +5 -5
  58. package/src/foundry/client/apps/sidebar/apps/client-settings.d.mts +2 -2
  59. package/src/foundry/client/apps/sidebar/apps/compendium.d.mts +13 -10
  60. package/src/foundry/client/apps/sidebar/apps/invitation-links.d.mts +3 -3
  61. package/src/foundry/client/apps/sidebar/apps/keybindings-config.d.mts +1 -1
  62. package/src/foundry/client/apps/sidebar/apps/module-management.d.mts +6 -6
  63. package/src/foundry/client/apps/sidebar/apps/permission-config.d.mts +6 -6
  64. package/src/foundry/client/apps/sidebar/apps/support-details.d.mts +33 -28
  65. package/src/foundry/client/apps/sidebar/apps/tours-management.d.mts +1 -1
  66. package/src/foundry/client/apps/sidebar/apps/world-config.d.mts +12 -9
  67. package/src/foundry/client/apps/sidebar/directory-tab-mixin.d.mts +40 -32
  68. package/src/foundry/client/apps/sidebar/document-directory.d.mts +44 -37
  69. package/src/foundry/client/apps/sidebar/package-configuration.d.mts +3 -3
  70. package/src/foundry/client/apps/sidebar/sidebar-tab.d.mts +3 -3
  71. package/src/foundry/client/apps/sidebar/sidebar.d.mts +7 -7
  72. package/src/foundry/client/apps/sidebar/tabs/actors-directory.d.mts +4 -4
  73. package/src/foundry/client/apps/sidebar/tabs/cards-directory.d.mts +4 -4
  74. package/src/foundry/client/apps/sidebar/tabs/chat-log.d.mts +34 -29
  75. package/src/foundry/client/apps/sidebar/tabs/combat-tracker.d.mts +15 -15
  76. package/src/foundry/client/apps/sidebar/tabs/compendium-directory.d.mts +21 -12
  77. package/src/foundry/client/apps/sidebar/tabs/items-directory.d.mts +4 -4
  78. package/src/foundry/client/apps/sidebar/tabs/journal-directory.d.mts +4 -4
  79. package/src/foundry/client/apps/sidebar/tabs/macros-directory.d.mts +8 -8
  80. package/src/foundry/client/apps/sidebar/tabs/playlists-directory.d.mts +21 -21
  81. package/src/foundry/client/apps/sidebar/tabs/roll-table-directory.d.mts +4 -4
  82. package/src/foundry/client/apps/sidebar/tabs/scenes-directory.d.mts +6 -6
  83. package/src/foundry/client/apps/sidebar/tabs/settings.d.mts +12 -12
  84. package/src/foundry/client/apps/templates.d.mts +2 -2
  85. package/src/foundry/client/av/clients/simplepeer.d.mts +4 -4
  86. package/src/foundry/client/av/settings.d.mts +16 -13
  87. package/src/foundry/client/config.d.mts +1982 -1823
  88. package/src/foundry/client/core/document-index.d.mts +12 -4
  89. package/src/foundry/client/core/hooks.d.mts +0 -2
  90. package/src/foundry/client/core/image.d.mts +13 -11
  91. package/src/foundry/client/core/issues.d.mts +11 -6
  92. package/src/foundry/client/core/keybindings.d.mts +3 -3
  93. package/src/foundry/client/core/nue.d.mts +1 -1
  94. package/src/foundry/client/core/packages.d.mts +393 -63
  95. package/src/foundry/client/core/settings.d.mts +34 -12
  96. package/src/foundry/client/core/socket.d.mts +2 -2
  97. package/src/foundry/client/core/sorting.d.mts +6 -6
  98. package/src/foundry/client/core/time.d.mts +6 -3
  99. package/src/foundry/client/core/tooltip.d.mts +1 -1
  100. package/src/foundry/client/core/tour.d.mts +58 -49
  101. package/src/foundry/client/core/tours.d.mts +1 -1
  102. package/src/foundry/client/core/utils.d.mts +3 -3
  103. package/src/foundry/client/core/workers.d.mts +24 -17
  104. package/src/foundry/client/data/abstract/canvas-document.d.mts +9 -15
  105. package/src/foundry/client/data/abstract/client-document.d.mts +133 -172
  106. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +14 -36
  107. package/src/foundry/client/data/abstract/document-collection.d.mts +89 -65
  108. package/src/foundry/client/data/abstract/world-collection.d.mts +47 -53
  109. package/src/foundry/client/data/collections/actors.d.mts +24 -31
  110. package/src/foundry/client/data/collections/cards.d.mts +10 -6
  111. package/src/foundry/client/data/collections/combats.d.mts +12 -8
  112. package/src/foundry/client/data/collections/compendium-collection.d.mts +79 -66
  113. package/src/foundry/client/data/collections/compendium-folders.d.mts +6 -6
  114. package/src/foundry/client/data/collections/compendium-packs.d.mts +4 -4
  115. package/src/foundry/client/data/collections/fog.d.mts +10 -6
  116. package/src/foundry/client/data/collections/folder.d.mts +15 -10
  117. package/src/foundry/client/data/collections/items.d.mts +11 -7
  118. package/src/foundry/client/data/collections/journal.d.mts +16 -10
  119. package/src/foundry/client/data/collections/macros.d.mts +15 -22
  120. package/src/foundry/client/data/collections/messages.d.mts +14 -10
  121. package/src/foundry/client/data/collections/playlists.d.mts +12 -9
  122. package/src/foundry/client/data/collections/scenes.d.mts +19 -31
  123. package/src/foundry/client/data/collections/settings.d.mts +10 -6
  124. package/src/foundry/client/data/collections/tables.d.mts +11 -7
  125. package/src/foundry/client/data/collections/users.d.mts +14 -11
  126. package/src/foundry/client/data/documents/active-effect.d.mts +652 -88
  127. package/src/foundry/client/data/documents/actor-delta.d.mts +672 -28
  128. package/src/foundry/client/data/documents/actor.d.mts +722 -60
  129. package/src/foundry/client/data/documents/adventure.d.mts +482 -49
  130. package/src/foundry/client/data/documents/ambient-light.d.mts +426 -21
  131. package/src/foundry/client/data/documents/ambient-sound.d.mts +474 -15
  132. package/src/foundry/client/data/documents/card.d.mts +570 -39
  133. package/src/foundry/client/data/documents/cards.d.mts +742 -78
  134. package/src/foundry/client/data/documents/chat-message.d.mts +578 -45
  135. package/src/foundry/client/data/documents/combat.d.mts +701 -71
  136. package/src/foundry/client/data/documents/combatant.d.mts +510 -28
  137. package/src/foundry/client/data/documents/drawing.d.mts +543 -16
  138. package/src/foundry/client/data/documents/fog-exploration.d.mts +413 -27
  139. package/src/foundry/client/data/documents/folder.d.mts +461 -40
  140. package/src/foundry/client/data/documents/item.d.mts +679 -25
  141. package/src/foundry/client/data/documents/journal-entry-page.d.mts +587 -21
  142. package/src/foundry/client/data/documents/journal-entry.d.mts +621 -20
  143. package/src/foundry/client/data/documents/macro.d.mts +530 -25
  144. package/src/foundry/client/data/documents/measured-template.d.mts +480 -16
  145. package/src/foundry/client/data/documents/note.d.mts +495 -18
  146. package/src/foundry/client/data/documents/playlist-sound.d.mts +429 -27
  147. package/src/foundry/client/data/documents/playlist.d.mts +666 -75
  148. package/src/foundry/client/data/documents/region-behavior.d.mts +468 -38
  149. package/src/foundry/client/data/documents/region.d.mts +661 -35
  150. package/src/foundry/client/data/documents/scene.d.mts +986 -149
  151. package/src/foundry/client/data/documents/setting.d.mts +397 -15
  152. package/src/foundry/client/data/documents/table-result.d.mts +479 -17
  153. package/src/foundry/client/data/documents/table.d.mts +663 -80
  154. package/src/foundry/client/data/documents/tile.d.mts +502 -16
  155. package/src/foundry/client/data/documents/token.d.mts +1114 -90
  156. package/src/foundry/client/data/documents/user.d.mts +495 -27
  157. package/src/foundry/client/data/documents/wall.d.mts +550 -15
  158. package/src/foundry/client/game.d.mts +58 -92
  159. package/src/foundry/client/head.d.mts +5 -6
  160. package/src/foundry/client/hooks.d.mts +237 -221
  161. package/src/foundry/client/pixi/board.d.mts +95 -89
  162. package/src/foundry/client/pixi/core/containers/base-canvas-group.d.mts +6 -5
  163. package/src/foundry/client/pixi/core/containers/cached-container.d.mts +5 -5
  164. package/src/foundry/client/pixi/core/containers/full-canvas-container.d.mts +2 -2
  165. package/src/foundry/client/pixi/core/containers/point-source-mesh.d.mts +3 -3
  166. package/src/foundry/client/pixi/core/containers/quad-mesh.d.mts +3 -3
  167. package/src/foundry/client/pixi/core/containers/quadtree.d.mts +23 -21
  168. package/src/foundry/client/pixi/core/containers/sprite-mesh.d.mts +5 -5
  169. package/src/foundry/client/pixi/core/containers/unbound-container.d.mts +5 -5
  170. package/src/foundry/client/pixi/core/interaction/canvas-animation.d.mts +57 -51
  171. package/src/foundry/client/pixi/core/interaction/control-icon.d.mts +3 -3
  172. package/src/foundry/client/pixi/core/interaction/mouse-handler.d.mts +7 -7
  173. package/src/foundry/client/pixi/core/interaction/ping.d.mts +19 -11
  174. package/src/foundry/client/pixi/core/interaction/pings/chevron.d.mts +7 -2
  175. package/src/foundry/client/pixi/core/interaction/pings/pulse.d.mts +29 -23
  176. package/src/foundry/client/pixi/core/interaction/render-flags.d.mts +83 -38
  177. package/src/foundry/client/pixi/core/interaction/resize-handle.d.mts +3 -3
  178. package/src/foundry/client/pixi/core/interaction/targets.d.mts +9 -9
  179. package/src/foundry/client/pixi/core/loader.d.mts +8 -8
  180. package/src/foundry/client/pixi/core/shapes/limited-angle-polygon.d.mts +9 -4
  181. package/src/foundry/client/pixi/core/shapes/polygon-mesher.d.mts +3 -3
  182. package/src/foundry/client/pixi/core/shapes/precise-text.d.mts +3 -3
  183. package/src/foundry/client/pixi/core/shapes/ray.d.mts +23 -17
  184. package/src/foundry/client/pixi/core/shapes/source-polygon.d.mts +19 -14
  185. package/src/foundry/client/pixi/extensions/circle.d.mts +1 -1
  186. package/src/foundry/client/pixi/extensions/observable-transform.d.mts +3 -3
  187. package/src/foundry/client/pixi/groups/effects.d.mts +4 -4
  188. package/src/foundry/client/pixi/groups/environment.d.mts +5 -5
  189. package/src/foundry/client/pixi/groups/hidden.d.mts +3 -3
  190. package/src/foundry/client/pixi/groups/interface.d.mts +6 -6
  191. package/src/foundry/client/pixi/groups/overlay.d.mts +3 -3
  192. package/src/foundry/client/pixi/groups/primary.d.mts +11 -11
  193. package/src/foundry/client/pixi/groups/rendered.d.mts +3 -3
  194. package/src/foundry/client/pixi/layers/base/canvas-layer.d.mts +3 -3
  195. package/src/foundry/client/pixi/layers/base/interaction-layer.d.mts +13 -13
  196. package/src/foundry/client/pixi/layers/base/placeables-layer.d.mts +279 -233
  197. package/src/foundry/client/pixi/layers/controls/cursor.d.mts +17 -8
  198. package/src/foundry/client/pixi/layers/controls/door.d.mts +26 -14
  199. package/src/foundry/client/pixi/layers/controls/layer.d.mts +89 -79
  200. package/src/foundry/client/pixi/layers/controls/ruler.d.mts +121 -96
  201. package/src/foundry/client/pixi/layers/effects/background-effects.d.mts +4 -5
  202. package/src/foundry/client/pixi/layers/effects/coloration-effects.d.mts +6 -4
  203. package/src/foundry/client/pixi/layers/effects/darkness-effects.d.mts +7 -4
  204. package/src/foundry/client/pixi/layers/effects/illumination-effects.d.mts +19 -16
  205. package/src/foundry/client/pixi/layers/effects/visibility.d.mts +101 -84
  206. package/src/foundry/client/pixi/layers/effects/weather/particles/effect.d.mts +13 -4
  207. package/src/foundry/client/pixi/layers/effects/weather/particles/leaves.d.mts +31 -2
  208. package/src/foundry/client/pixi/layers/effects/weather-effects.d.mts +134 -59
  209. package/src/foundry/client/pixi/layers/grid/highlight.d.mts +13 -3
  210. package/src/foundry/client/pixi/layers/grid/layer.d.mts +89 -87
  211. package/src/foundry/client/pixi/layers/grid/mesh.d.mts +36 -15
  212. package/src/foundry/client/pixi/layers/masks/depth.d.mts +3 -3
  213. package/src/foundry/client/pixi/layers/masks/occlusion.d.mts +4 -4
  214. package/src/foundry/client/pixi/layers/masks/vision.d.mts +6 -6
  215. package/src/foundry/client/pixi/layers/placeables/drawings.d.mts +15 -11
  216. package/src/foundry/client/pixi/layers/placeables/lighting.d.mts +11 -10
  217. package/src/foundry/client/pixi/layers/placeables/notes.d.mts +47 -28
  218. package/src/foundry/client/pixi/layers/placeables/regions.d.mts +25 -12
  219. package/src/foundry/client/pixi/layers/placeables/sounds.d.mts +81 -63
  220. package/src/foundry/client/pixi/layers/placeables/templates.d.mts +10 -11
  221. package/src/foundry/client/pixi/layers/placeables/tiles.d.mts +28 -17
  222. package/src/foundry/client/pixi/layers/placeables/tokens.d.mts +67 -46
  223. package/src/foundry/client/pixi/layers/placeables/walls.d.mts +50 -51
  224. package/src/foundry/client/pixi/perception/clockwise-sweep.d.mts +22 -16
  225. package/src/foundry/client/pixi/perception/detection-mode.d.mts +123 -51
  226. package/src/foundry/client/pixi/perception/fog.d.mts +34 -19
  227. package/src/foundry/client/pixi/perception/perception-manager.d.mts +137 -137
  228. package/src/foundry/client/pixi/perception/vision-mode.d.mts +92 -67
  229. package/src/foundry/client/pixi/perception/weiler-atherton-clipping.d.mts +3 -3
  230. package/src/foundry/client/pixi/placeable.d.mts +241 -146
  231. package/src/foundry/client/pixi/placeables/drawing.d.mts +260 -134
  232. package/src/foundry/client/pixi/placeables/light.d.mts +204 -66
  233. package/src/foundry/client/pixi/placeables/note.d.mts +150 -55
  234. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-canvas-object.d.mts +7 -6
  235. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-graphics.d.mts +3 -3
  236. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-occludable-object.d.mts +2 -2
  237. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-sprite-mesh.d.mts +4 -4
  238. package/src/foundry/client/pixi/placeables/region.d.mts +219 -110
  239. package/src/foundry/client/pixi/placeables/sound.d.mts +211 -68
  240. package/src/foundry/client/pixi/placeables/template.d.mts +186 -100
  241. package/src/foundry/client/pixi/placeables/tile.d.mts +211 -142
  242. package/src/foundry/client/pixi/placeables/token.d.mts +911 -568
  243. package/src/foundry/client/pixi/placeables/wall.d.mts +253 -130
  244. package/src/foundry/client/pixi/webgl/extensions/batch-renderer.d.mts +27 -5
  245. package/src/foundry/client/pixi/webgl/extensions/batch-shader-generator.d.mts +3 -3
  246. package/src/foundry/client/pixi/webgl/helpers/framebuffer-snapshot.d.mts +3 -3
  247. package/src/foundry/client/pixi/webgl/helpers/smooth-noise.d.mts +13 -5
  248. package/src/foundry/client/pixi/webgl/helpers/texture-extractor.d.mts +6 -6
  249. package/src/foundry/client/pixi/webgl/shaders/base-shader-mixin.d.mts +2 -2
  250. package/src/foundry/client/pixi/webgl/shaders/base-shader.d.mts +5 -5
  251. package/src/foundry/client/pixi/webgl/shaders/filters/base-filter.d.mts +4 -4
  252. package/src/foundry/client/pixi/webgl/shaders/filters/base-mask-filter.d.mts +3 -3
  253. package/src/foundry/client/pixi/webgl/shaders/filters/blur.d.mts +5 -5
  254. package/src/foundry/client/pixi/webgl/shaders/filters/effects-masking.d.mts +6 -3
  255. package/src/foundry/client/pixi/webgl/shaders/filters/environment.d.mts +3 -3
  256. package/src/foundry/client/pixi/webgl/shaders/filters/glow-overlay.d.mts +4 -4
  257. package/src/foundry/client/pixi/webgl/shaders/filters/invisibility.d.mts +3 -3
  258. package/src/foundry/client/pixi/webgl/shaders/filters/outline-overlay.d.mts +4 -4
  259. package/src/foundry/client/pixi/webgl/shaders/filters/transition.d.mts +6 -6
  260. package/src/foundry/client/pixi/webgl/shaders/filters/visibility.d.mts +8 -5
  261. package/src/foundry/client/pixi/webgl/shaders/filters/vision-mask-filter.d.mts +3 -3
  262. package/src/foundry/client/pixi/webgl/shaders/filters/void.d.mts +3 -3
  263. package/src/foundry/client/pixi/webgl/shaders/filters/weather-occlusion-masks.d.mts +4 -4
  264. package/src/foundry/client/pixi/webgl/shaders/fragment-channel-mixin.d.mts +1 -1
  265. package/src/foundry/client/pixi/webgl/shaders/grid/grid.d.mts +4 -4
  266. package/src/foundry/client/pixi/webgl/shaders/lighting/background-lighting.d.mts +3 -3
  267. package/src/foundry/client/pixi/webgl/shaders/lighting/base-lighting.d.mts +3 -3
  268. package/src/foundry/client/pixi/webgl/shaders/lighting/coloration-lighting.d.mts +3 -3
  269. package/src/foundry/client/pixi/webgl/shaders/lighting/darkness-lighting.d.mts +3 -3
  270. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/bewitching-wave.d.mts +5 -5
  271. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/black-hole.d.mts +3 -3
  272. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/chroma.d.mts +3 -3
  273. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/emanation.d.mts +3 -3
  274. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/energy-field.d.mts +3 -3
  275. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fairy-light.d.mts +6 -6
  276. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/flame.d.mts +5 -5
  277. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fog.d.mts +3 -3
  278. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/force-grid.d.mts +3 -3
  279. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/ghost-light.d.mts +5 -5
  280. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/hexa-dome.d.mts +3 -3
  281. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/light-dome.d.mts +3 -3
  282. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/magical-gloom.d.mts +3 -3
  283. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/pulse.d.mts +5 -5
  284. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/radial-rainbow.d.mts +3 -3
  285. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/revolving-light.d.mts +3 -3
  286. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/roiling-mass.d.mts +3 -3
  287. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/siren-light.d.mts +5 -5
  288. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/smoke-patch.d.mts +6 -5
  289. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/star-light.d.mts +3 -3
  290. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/sunburst.d.mts +5 -5
  291. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/swirling-rainbow.d.mts +4 -3
  292. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/torch.d.mts +5 -5
  293. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/vortex.d.mts +5 -5
  294. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/wave.d.mts +5 -5
  295. package/src/foundry/client/pixi/webgl/shaders/lighting/illumination-lighting.d.mts +3 -3
  296. package/src/foundry/client/pixi/webgl/shaders/region/adjust-darkness-level.d.mts +7 -7
  297. package/src/foundry/client/pixi/webgl/shaders/region/base.d.mts +4 -4
  298. package/src/foundry/client/pixi/webgl/shaders/region/highlight.d.mts +3 -3
  299. package/src/foundry/client/pixi/webgl/shaders/samplers/base-sampler.d.mts +4 -4
  300. package/src/foundry/client/pixi/webgl/shaders/samplers/baseline-illumination.d.mts +3 -3
  301. package/src/foundry/client/pixi/webgl/shaders/samplers/color-adjustment.d.mts +5 -5
  302. package/src/foundry/client/pixi/webgl/shaders/samplers/depth.d.mts +3 -3
  303. package/src/foundry/client/pixi/webgl/shaders/samplers/fog-of-war.d.mts +3 -3
  304. package/src/foundry/client/pixi/webgl/shaders/samplers/occlusion.d.mts +3 -3
  305. package/src/foundry/client/pixi/webgl/shaders/samplers/primary.d.mts +4 -4
  306. package/src/foundry/client/pixi/webgl/shaders/samplers/token-ring.d.mts +4 -6
  307. package/src/foundry/client/pixi/webgl/shaders/vision/background-vision.d.mts +3 -3
  308. package/src/foundry/client/pixi/webgl/shaders/vision/base-vision.d.mts +3 -3
  309. package/src/foundry/client/pixi/webgl/shaders/vision/coloration-vision.d.mts +3 -3
  310. package/src/foundry/client/pixi/webgl/shaders/vision/effects/amplification.d.mts +3 -3
  311. package/src/foundry/client/pixi/webgl/shaders/vision/effects/wave.d.mts +5 -5
  312. package/src/foundry/client/pixi/webgl/shaders/vision/illumination-vision.d.mts +3 -3
  313. package/src/foundry/client/pixi/webgl/shaders/weather/base-weather.d.mts +14 -15
  314. package/src/foundry/client/pixi/webgl/shaders/weather/effect.d.mts +20 -27
  315. package/src/foundry/client/pixi/webgl/shaders/weather/fog.d.mts +5 -5
  316. package/src/foundry/client/pixi/webgl/shaders/weather/rain.d.mts +5 -5
  317. package/src/foundry/client/pixi/webgl/shaders/weather/snow.d.mts +5 -5
  318. package/src/foundry/client/pixi/workers/texture-worker.d.mts +5 -5
  319. package/src/foundry/client/tours/setup-tour.d.mts +15 -10
  320. package/src/foundry/client/ui/dialog.d.mts +3 -3
  321. package/src/foundry/client/ui/dragdrop.d.mts +33 -27
  322. package/src/foundry/client/ui/editor.d.mts +29 -21
  323. package/src/foundry/client/ui/filepicker.d.mts +42 -37
  324. package/src/foundry/client/ui/filter.d.mts +60 -48
  325. package/src/foundry/client/ui/forms.d.mts +22 -22
  326. package/src/foundry/client/ui/prosemirror.d.mts +15 -7
  327. package/src/foundry/client/ui/secrets.d.mts +43 -28
  328. package/src/foundry/client/ui/tabs.d.mts +40 -33
  329. package/src/foundry/client-esm/_module.d.mts +5 -5
  330. package/src/foundry/client-esm/_types.d.mts +2 -1
  331. package/src/foundry/client-esm/applications/api/application.d.mts +93 -31
  332. package/src/foundry/client-esm/applications/api/dialog.d.mts +23 -23
  333. package/src/foundry/client-esm/applications/api/document-sheet.d.mts +85 -32
  334. package/src/foundry/client-esm/applications/api/handlebars-application.d.mts +1 -1
  335. package/src/foundry/client-esm/applications/apps/av/camera-popout.d.mts +1 -1
  336. package/src/foundry/client-esm/applications/apps/av/cameras.d.mts +2 -2
  337. package/src/foundry/client-esm/applications/apps/compendium-art-config.d.mts +4 -5
  338. package/src/foundry/client-esm/applications/apps/file-picker.d.mts +2 -2
  339. package/src/foundry/client-esm/applications/apps/grid-config.d.mts +3 -3
  340. package/src/foundry/client-esm/applications/apps/image-popout.d.mts +1 -1
  341. package/src/foundry/client-esm/applications/apps/permission-config.d.mts +1 -1
  342. package/src/foundry/client-esm/applications/dice/roll-resolver.d.mts +4 -4
  343. package/src/foundry/client-esm/applications/elements/file-picker.d.mts +1 -1
  344. package/src/foundry/client-esm/applications/elements/prosemirror-editor.d.mts +1 -1
  345. package/src/foundry/client-esm/applications/hud/drawing-hud.d.mts +1 -1
  346. package/src/foundry/client-esm/applications/hud/tile-hud.d.mts +1 -1
  347. package/src/foundry/client-esm/applications/hud/token-hud.d.mts +1 -1
  348. package/src/foundry/client-esm/applications/sheets/active-effect-config.d.mts +3 -3
  349. package/src/foundry/client-esm/applications/sheets/actor-sheet.d.mts +2 -2
  350. package/src/foundry/client-esm/applications/sheets/adventure-exporter.d.mts +3 -3
  351. package/src/foundry/client-esm/applications/sheets/adventure-importer.d.mts +3 -3
  352. package/src/foundry/client-esm/applications/sheets/ambient-light-config.d.mts +5 -5
  353. package/src/foundry/client-esm/applications/sheets/ambient-sound-config.d.mts +4 -4
  354. package/src/foundry/client-esm/applications/sheets/card-config.d.mts +3 -3
  355. package/src/foundry/client-esm/applications/sheets/cards-config.d.mts +2 -2
  356. package/src/foundry/client-esm/applications/sheets/combatant-config.d.mts +3 -3
  357. package/src/foundry/client-esm/applications/sheets/drawing-config.d.mts +3 -3
  358. package/src/foundry/client-esm/applications/sheets/folder-config.d.mts +3 -3
  359. package/src/foundry/client-esm/applications/sheets/item-sheet.d.mts +2 -2
  360. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-category-config.d.mts +3 -3
  361. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-sheet.d.mts +3 -3
  362. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-sheet.d.mts +3 -3
  363. package/src/foundry/client-esm/applications/sheets/macro-config.d.mts +3 -3
  364. package/src/foundry/client-esm/applications/sheets/note-config.d.mts +3 -3
  365. package/src/foundry/client-esm/applications/sheets/playlist-config.d.mts +3 -3
  366. package/src/foundry/client-esm/applications/sheets/playlist-sound-config.d.mts +3 -3
  367. package/src/foundry/client-esm/applications/sheets/region-behavior-config.d.mts +3 -3
  368. package/src/foundry/client-esm/applications/sheets/region-config.d.mts +3 -3
  369. package/src/foundry/client-esm/applications/sheets/roll-table-config.d.mts +3 -3
  370. package/src/foundry/client-esm/applications/sheets/roll-table-sheet.d.mts +3 -3
  371. package/src/foundry/client-esm/applications/sheets/scene-config.d.mts +3 -3
  372. package/src/foundry/client-esm/applications/sheets/table-result-config.d.mts +3 -3
  373. package/src/foundry/client-esm/applications/sheets/template-config.d.mts +3 -3
  374. package/src/foundry/client-esm/applications/sheets/tile-config.d.mts +3 -3
  375. package/src/foundry/client-esm/applications/sheets/token/mixin.d.mts +1 -0
  376. package/src/foundry/client-esm/applications/sheets/token/token-config.d.mts +3 -3
  377. package/src/foundry/client-esm/applications/sheets/user-config.d.mts +4 -4
  378. package/src/foundry/client-esm/applications/sheets/wall-config.d.mts +3 -3
  379. package/src/foundry/client-esm/applications/sidebar/apps/chat-popout.d.mts +1 -1
  380. package/src/foundry/client-esm/applications/sidebar/sidebar-tab.d.mts +2 -2
  381. package/src/foundry/client-esm/applications/sidebar/tabs/actor-directory.d.mts +1 -1
  382. package/src/foundry/client-esm/applications/sidebar/tabs/cards-directory.d.mts +1 -1
  383. package/src/foundry/client-esm/applications/sidebar/tabs/combat-tracker.d.mts +242 -1
  384. package/src/foundry/client-esm/applications/sidebar/tabs/item-directory.d.mts +1 -1
  385. package/src/foundry/client-esm/applications/sidebar/tabs/journal-directory.d.mts +1 -1
  386. package/src/foundry/client-esm/applications/sidebar/tabs/macro-directory.d.mts +1 -1
  387. package/src/foundry/client-esm/applications/sidebar/tabs/playlist-directory.d.mts +1 -1
  388. package/src/foundry/client-esm/applications/sidebar/tabs/roll-table-directory.d.mts +1 -1
  389. package/src/foundry/client-esm/applications/sidebar/tabs/scene-directory.d.mts +1 -1
  390. package/src/foundry/client-esm/applications/ui/region-legend.d.mts +2 -2
  391. package/src/foundry/client-esm/applications/ux/context-menu.d.mts +56 -36
  392. package/src/foundry/client-esm/audio/_types.d.mts +2 -0
  393. package/src/foundry/client-esm/audio/biquad.d.mts +76 -26
  394. package/src/foundry/client-esm/audio/cache.d.mts +31 -20
  395. package/src/foundry/client-esm/audio/convolver.d.mts +47 -25
  396. package/src/foundry/client-esm/audio/helper.d.mts +124 -80
  397. package/src/foundry/client-esm/audio/sound.d.mts +202 -97
  398. package/src/foundry/client-esm/audio/timeout.d.mts +28 -12
  399. package/src/foundry/client-esm/canvas/edges/collision.d.mts +12 -4
  400. package/src/foundry/client-esm/canvas/edges/edge.d.mts +13 -8
  401. package/src/foundry/client-esm/canvas/edges/edges.d.mts +3 -2
  402. package/src/foundry/client-esm/canvas/edges/vertex.d.mts +12 -10
  403. package/src/foundry/client-esm/canvas/regions/geometry.d.mts +14 -7
  404. package/src/foundry/client-esm/canvas/regions/mesh.d.mts +25 -14
  405. package/src/foundry/client-esm/canvas/regions/polygon-tree.d.mts +50 -19
  406. package/src/foundry/client-esm/canvas/regions/shape.d.mts +45 -34
  407. package/src/foundry/client-esm/canvas/scene-manager.d.mts +7 -6
  408. package/src/foundry/client-esm/canvas/smaa/blend.d.mts +14 -3
  409. package/src/foundry/client-esm/canvas/smaa/edges.d.mts +25 -3
  410. package/src/foundry/client-esm/canvas/smaa/smaa.d.mts +119 -20
  411. package/src/foundry/client-esm/canvas/smaa/weights.d.mts +26 -3
  412. package/src/foundry/client-esm/canvas/sources/base-effect-source.d.mts +69 -39
  413. package/src/foundry/client-esm/canvas/sources/base-light-source.d.mts +66 -40
  414. package/src/foundry/client-esm/canvas/sources/global-light-source.d.mts +78 -19
  415. package/src/foundry/client-esm/canvas/sources/point-darkness-source.d.mts +37 -20
  416. package/src/foundry/client-esm/canvas/sources/point-effect-source.d.mts +39 -20
  417. package/src/foundry/client-esm/canvas/sources/point-light-source.d.mts +41 -12
  418. package/src/foundry/client-esm/canvas/sources/point-movement-source.d.mts +15 -4
  419. package/src/foundry/client-esm/canvas/sources/point-sound-source.d.mts +29 -14
  420. package/src/foundry/client-esm/canvas/sources/point-vision-source.d.mts +84 -39
  421. package/src/foundry/client-esm/canvas/sources/rendered-effect-source.d.mts +115 -41
  422. package/src/foundry/client-esm/canvas/tokens/ring-config.d.mts +83 -21
  423. package/src/foundry/client-esm/canvas/tokens/ring-data.d.mts +66 -93
  424. package/src/foundry/client-esm/canvas/tokens/ring.d.mts +146 -51
  425. package/src/foundry/client-esm/client.d.mts +16 -16
  426. package/src/foundry/client-esm/data/_module.d.mts +1 -1
  427. package/src/foundry/client-esm/data/calendar.d.mts +26 -39
  428. package/src/foundry/client-esm/data/client-backend.d.mts +6 -6
  429. package/src/foundry/client-esm/data/region-behaviors/adjust-darkness-level.d.mts +1 -1
  430. package/src/foundry/client-esm/data/region-behaviors/base.d.mts +5 -5
  431. package/src/foundry/client-esm/data/region-behaviors/display-scrolling-text.d.mts +2 -2
  432. package/src/foundry/client-esm/data/terrain-data.d.mts +1 -1
  433. package/src/foundry/client-esm/dice/parser.d.mts +5 -27
  434. package/src/foundry/client-esm/dice/roll.d.mts +63 -80
  435. package/src/foundry/client-esm/dice/terms/coin.d.mts +4 -8
  436. package/src/foundry/client-esm/dice/terms/dice.d.mts +85 -64
  437. package/src/foundry/client-esm/dice/terms/die.d.mts +7 -7
  438. package/src/foundry/client-esm/dice/terms/fate.d.mts +5 -5
  439. package/src/foundry/client-esm/dice/terms/function.d.mts +13 -16
  440. package/src/foundry/client-esm/dice/terms/numeric.d.mts +2 -4
  441. package/src/foundry/client-esm/dice/terms/operator.d.mts +1 -1
  442. package/src/foundry/client-esm/dice/terms/parenthetical.d.mts +8 -9
  443. package/src/foundry/client-esm/dice/terms/pool.d.mts +13 -28
  444. package/src/foundry/client-esm/dice/terms/string.d.mts +3 -3
  445. package/src/foundry/client-esm/dice/terms/term.d.mts +10 -5
  446. package/src/foundry/client-esm/dice/twister.d.mts +3 -3
  447. package/src/foundry/client-esm/documents/_module.d.mts +1 -1
  448. package/src/foundry/client-esm/helpers/_types.d.mts +12 -46
  449. package/src/foundry/client-esm/helpers/compendium-art.d.mts +57 -4
  450. package/src/foundry/client-esm/packages/_module.d.mts +1 -1
  451. package/src/foundry/client-esm/packages/_types.d.mts +2 -0
  452. package/src/foundry/client-esm/utils/_module.d.mts +1 -1
  453. package/src/foundry/client-esm/utils/_types.d.mts +2 -1
  454. package/src/foundry/common/_types.d.mts +1 -1
  455. package/src/foundry/common/abstract/_module.d.mts +1 -0
  456. package/src/foundry/common/abstract/_types.d.mts +60 -54
  457. package/src/foundry/common/abstract/backend.d.mts +28 -16
  458. package/src/foundry/common/abstract/data.d.mts +133 -116
  459. package/src/foundry/common/abstract/document.d.mts +1233 -440
  460. package/src/foundry/common/abstract/embedded-collection.d.mts +2 -2
  461. package/src/foundry/common/abstract/singleton-collection.d.mts +1 -1
  462. package/src/foundry/common/abstract/type-data.d.mts +35 -43
  463. package/src/foundry/common/config.d.mts +3 -3
  464. package/src/foundry/common/constants.d.mts +27 -26
  465. package/src/foundry/common/data/_types.d.mts +2 -0
  466. package/src/foundry/common/data/data.d.mts +189 -87
  467. package/src/foundry/common/data/fields.d.mts +579 -258
  468. package/src/foundry/common/data/validation-failure.d.mts +9 -4
  469. package/src/foundry/common/documents/_types.d.mts +16 -9
  470. package/src/foundry/common/documents/active-effect.d.mts +280 -180
  471. package/src/foundry/common/documents/actor-delta.d.mts +317 -70
  472. package/src/foundry/common/documents/actor.d.mts +304 -103
  473. package/src/foundry/common/documents/adventure.d.mts +254 -140
  474. package/src/foundry/common/documents/ambient-light.d.mts +267 -76
  475. package/src/foundry/common/documents/ambient-sound.d.mts +267 -110
  476. package/src/foundry/common/documents/card.d.mts +267 -176
  477. package/src/foundry/common/documents/cards.d.mts +299 -128
  478. package/src/foundry/common/documents/chat-message.d.mts +276 -160
  479. package/src/foundry/common/documents/combat.d.mts +300 -91
  480. package/src/foundry/common/documents/combatant.d.mts +283 -88
  481. package/src/foundry/common/documents/drawing.d.mts +286 -207
  482. package/src/foundry/common/documents/fog-exploration.d.mts +258 -72
  483. package/src/foundry/common/documents/folder.d.mts +248 -85
  484. package/src/foundry/common/documents/item.d.mts +305 -101
  485. package/src/foundry/common/documents/journal-entry-page.d.mts +279 -190
  486. package/src/foundry/common/documents/journal-entry.d.mts +294 -70
  487. package/src/foundry/common/documents/macro.d.mts +254 -134
  488. package/src/foundry/common/documents/measured-template.d.mts +293 -137
  489. package/src/foundry/common/documents/note.d.mts +274 -151
  490. package/src/foundry/common/documents/playlist-sound.d.mts +260 -96
  491. package/src/foundry/common/documents/playlist.d.mts +279 -122
  492. package/src/foundry/common/documents/region-behavior.d.mts +305 -64
  493. package/src/foundry/common/documents/region.d.mts +309 -90
  494. package/src/foundry/common/documents/roll-table.d.mts +286 -104
  495. package/src/foundry/common/documents/scene.d.mts +276 -344
  496. package/src/foundry/common/documents/setting.d.mts +229 -55
  497. package/src/foundry/common/documents/table-result.d.mts +267 -96
  498. package/src/foundry/common/documents/tile.d.mts +301 -172
  499. package/src/foundry/common/documents/token.d.mts +350 -452
  500. package/src/foundry/common/documents/user.d.mts +256 -146
  501. package/src/foundry/common/documents/wall.d.mts +272 -157
  502. package/src/foundry/common/grid/_types.d.mts +2 -0
  503. package/src/foundry/common/grid/base.d.mts +58 -37
  504. package/src/foundry/common/grid/hexagonal.d.mts +19 -19
  505. package/src/foundry/common/grid/square.d.mts +1 -1
  506. package/src/foundry/common/packages/_module.d.mts +5 -5
  507. package/src/foundry/common/packages/_types.d.mts +2 -0
  508. package/src/foundry/common/packages/base-module.d.mts +6 -24
  509. package/src/foundry/common/packages/base-package.d.mts +18 -16
  510. package/src/foundry/common/packages/base-system.d.mts +6 -78
  511. package/src/foundry/common/packages/base-world.d.mts +7 -60
  512. package/src/foundry/common/packages/sub-types.d.mts +1 -1
  513. package/src/foundry/common/primitives/array.d.mts +3 -3
  514. package/src/foundry/common/primitives/math.d.mts +7 -1
  515. package/src/foundry/common/primitives/number.d.mts +1 -1
  516. package/src/foundry/common/primitives/set.d.mts +17 -14
  517. package/src/foundry/common/prosemirror/_types.d.mts +2 -0
  518. package/src/foundry/common/prosemirror/dropdown.d.mts +1 -1
  519. package/src/foundry/common/prosemirror/highlight-matches-plugin.d.mts +1 -1
  520. package/src/foundry/common/prosemirror/menu.d.mts +3 -3
  521. package/src/foundry/common/prosemirror/plugin.d.mts +1 -1
  522. package/src/foundry/common/prosemirror/schema/index.d.mts +0 -1
  523. package/src/foundry/common/prosemirror/util.d.mts +1 -1
  524. package/src/foundry/common/utils/bitmask.d.mts +4 -1
  525. package/src/foundry/common/utils/collection.d.mts +59 -24
  526. package/src/foundry/common/utils/event-emitter.d.mts +46 -19
  527. package/src/foundry/common/utils/helpers.d.mts +13 -13
  528. package/src/foundry/common/utils/http.d.mts +2 -2
  529. package/src/foundry/common/utils/string-tree.d.mts +45 -39
  530. package/src/foundry/common/utils/word-tree.d.mts +10 -23
  531. package/src/tsconfig.json +1 -5
  532. package/src/types/augments/pixi.d.mts +28 -28
  533. package/src/types/config.d.mts +12 -12
  534. package/src/types/documentConfiguration.d.mts +282 -597
  535. package/src/types/lib.d.mts +4 -4
  536. package/src/types/workers/image-compressor.d.mts +1 -1
  537. package/src/utils/index.d.mts +255 -60
  538. package/tsconfig.json +29 -0
  539. package/tsconfig.main.json +8 -0
  540. package/tsconfig.miscellaneous.json +16 -0
  541. package/src/foundry/client/apps/placeables/light-config.d.mts +0 -100
  542. package/src/foundry/client/apps/placeables/sound-config.d.mts +0 -44
  543. package/src/foundry/common/documents/module.d.mts +0 -35
@@ -1,23 +1,497 @@
1
- import type { InexactPartial } from "fvtt-types/utils";
2
- import type { DocumentDatabaseOperations } from "../../../common/abstract/document.d.mts";
3
- import type BaseRegion from "../../../common/documents/region.d.mts";
4
- import type Document from "../../../common/abstract/document.d.mts";
1
+ import type { InexactPartial, Merge } from "fvtt-types/utils";
2
+ import type Document from "#common/abstract/document.d.mts";
3
+ import type { DataSchema } from "#common/data/fields.d.mts";
4
+ import type { BaseShapeData } from "#common/data/data.mjs";
5
+
6
+ import fields = foundry.data.fields;
5
7
 
6
8
  declare global {
7
9
  namespace RegionDocument {
8
- type Metadata = Document.MetadataFor<RegionDocument>;
10
+ /**
11
+ * The document's name.
12
+ */
13
+ type Name = "Region";
9
14
 
10
- type ConfiguredClass = Document.ConfiguredClassForName<"Region">;
11
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"Region">;
15
+ /**
16
+ * The arguments to construct the document.
17
+ */
18
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
12
19
 
13
- // eslint-disable-next-line @typescript-eslint/no-deprecated
14
- interface DatabaseOperations extends DocumentDatabaseOperations<RegionDocument> {}
20
+ /**
21
+ * The documents embedded within `RegionDocument`.
22
+ */
23
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
24
+
25
+ /**
26
+ * The implementation of the `RegionDocument` document instance configured through `CONFIG.Region.documentClass` in Foundry and
27
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredRegion | `fvtt-types/configuration/ConfiguredRegion`} in fvtt-types.
28
+ */
29
+ type Implementation = Document.ImplementationFor<Name>;
30
+
31
+ /**
32
+ * The implementation of the `RegionDocument` document configured through `CONFIG.Region.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: "Region";
46
+ collection: "regions";
47
+ label: string;
48
+ labelPlural: string;
49
+ isEmbedded: true;
50
+ embedded: Metadata.Embedded;
51
+ schemaVersion: string;
52
+ }>
53
+ > {}
54
+
55
+ namespace Metadata {
56
+ /**
57
+ * The embedded metadata
58
+ */
59
+ interface Embedded {
60
+ RegionBehavior: "behaviors";
61
+ }
62
+ }
63
+
64
+ /**
65
+ * A document's parent is something that can contain it.
66
+ * For example an `Item` can be contained by an `Actor` which makes `Actor` one of its possible parents.
67
+ */
68
+ type Parent = Scene.Implementation | null;
69
+
70
+ /**
71
+ * A document's direct descendants are documents that are contained directly within its schema.
72
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
73
+ */
74
+ type DirectDescendant = RegionBehavior.Stored;
75
+
76
+ /**
77
+ * A document's direct descendants are documents that are contained directly within its schema.
78
+ * This is a union of all such classes, or never if the document doesn't have any descendants.
79
+ */
80
+ type DirectDescendantClass = RegionBehavior.ImplementationClass;
81
+
82
+ /**
83
+ * A document's descendants are any documents that are contained within, either within its schema
84
+ * or its descendant's schemas.
85
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
86
+ */
87
+ type Descendant = DirectDescendant;
88
+
89
+ /**
90
+ * A document's descendants are any child documents, grandchild documents, etc.
91
+ * This is a union of all classes, or never if the document doesn't have any descendants.
92
+ */
93
+ type DescendantClass = DirectDescendantClass;
94
+
95
+ /**
96
+ * Types of `CompendiumCollection` this document might be contained in.
97
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
98
+ */
99
+ type Pack = CompendiumCollection.ForDocument<"Region">;
100
+
101
+ /**
102
+ * An embedded document is a document contained in another.
103
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
104
+ *
105
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
106
+ */
107
+ type Embedded = Document.ImplementationFor<Embedded.Name>;
108
+
109
+ namespace Embedded {
110
+ /**
111
+ * An embedded document is a document contained in another.
112
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
113
+ *
114
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
115
+ */
116
+ type Name = keyof Metadata.Embedded;
117
+
118
+ /**
119
+ * Gets the collection name for an embedded document.
120
+ */
121
+ type CollectionNameOf<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionNameFor<
122
+ Metadata.Embedded,
123
+ CollectionName
124
+ >;
125
+
126
+ /**
127
+ * Gets the collection document for an embedded document.
128
+ */
129
+ // TODO(LukeAbby): There's a circularity. Should be `Document.Embedded.CollectionDocumentFor<Metadata.Embedded, CollectionName>`
130
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
131
+ type DocumentFor<CollectionName extends Embedded.CollectionName> = Document.Any;
132
+
133
+ /**
134
+ * Gets the collection for an embedded document.
135
+ */
136
+ type CollectionFor<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionFor<
137
+ // TODO(LukeAbby): This should be `TokenDocument.Implementation` but this causes a circularity.
138
+ Document.Any,
139
+ Metadata.Embedded,
140
+ CollectionName
141
+ >;
142
+
143
+ /**
144
+ * A valid name to refer to a collection embedded in this document. For example an `Actor`
145
+ * has the key `"items"` which contains `Item` instance which would make both `"Item" | "Items"`
146
+ * valid keys (amongst others).
147
+ */
148
+ type CollectionName = Document.Embedded.CollectionName<Metadata.Embedded>;
149
+ }
150
+
151
+ /**
152
+ * The name of the world or embedded collection this document can find itself in.
153
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
154
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
155
+ */
156
+ type ParentCollectionName = Metadata["collection"];
157
+
158
+ /**
159
+ * The world collection that contains this document type. Will be `never` if none exists.
160
+ */
161
+ type CollectionClass = never;
162
+
163
+ /**
164
+ * The world collection that contains this document type. Will be `never` if none exists.
165
+ */
166
+ type Collection = never;
167
+
168
+ /**
169
+ * An instance of `Region` that comes from the database but failed validation meaining that
170
+ * its `system` and `_source` could theoretically be anything.
171
+ */
172
+ interface Invalid extends Document.Invalid<RegionDocument.Implementation> {}
173
+
174
+ /**
175
+ * An instance of `Region` that comes from the database.
176
+ */
177
+ interface Stored extends Document.Stored<RegionDocument.Implementation> {}
178
+
179
+ /**
180
+ * The data put in {@link RegionDocument._source | `RegionDocument#_source`}. This data is what was
181
+ * persisted to the database and therefore it must be valid JSON.
182
+ *
183
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
184
+ * but initialized as a {@link Set | `Set`}.
185
+ */
186
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
187
+
188
+ /**
189
+ * @deprecated {@link RegionDocument.Source | `RegionDocument.Source`}
190
+ */
191
+ type PersistedData = Source;
192
+
193
+ /**
194
+ * The data necessary to create a document. Used in places like {@link RegionDocument.create | `RegionDocument.create`}
195
+ * and {@link RegionDocument | `new RegionDocument(...)`}.
196
+ *
197
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
198
+ * with the right values. This means you can pass a `Set` instance, an array of values,
199
+ * a generator, or any other iterable.
200
+ */
201
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
202
+
203
+ /**
204
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
205
+ * {@link RegionDocument.name | `RegionDocument#name`}.
206
+ *
207
+ * This is data transformed from {@link RegionDocument.Source | `RegionDocument.Source`} and turned into more
208
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
209
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
210
+ */
211
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
212
+
213
+ /**
214
+ * The data used to update a document, for example {@link RegionDocument.update | `RegionDocument#update`}.
215
+ * It is a distinct type from {@link RegionDocument.CreateData | `DeepPartial<RegionDocument.CreateData>`} because
216
+ * it has different rules for `null` and `undefined`.
217
+ */
218
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
219
+
220
+ /**
221
+ * The schema for {@link RegionDocument | `RegionDocument`}. This is the source of truth for how an Region document
222
+ * must be structured.
223
+ *
224
+ * Foundry uses this schema to validate the structure of the {@link RegionDocument | `RegionDocument`}. For example
225
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
226
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
227
+ * starting as an array in the database, initialized as a set, and allows updates with any
228
+ * iterable.
229
+ */
230
+ interface Schema extends DataSchema {
231
+ /**
232
+ * The Region _id which uniquely identifies it within its parent Scene
233
+ * @defaultValue `null`
234
+ */
235
+ _id: fields.DocumentIdField;
236
+
237
+ /**
238
+ * The name used to describe the Region
239
+ */
240
+ // FIXME: This field is `required` with no `initial`, so actually required for construction; Currently an AssignmentType override is required to enforce this
241
+ name: fields.StringField<{ required: true; blank: false; label: "Name"; textSearch: true }, string>;
242
+
243
+ /**
244
+ * The color used to highlight the Region
245
+ * @defaultValue `Color.fromHSV([Math.random(), 0.8, 0.8]).css`
246
+ */
247
+ color: fields.ColorField<{
248
+ required: true;
249
+ nullable: false;
250
+ initial: () => string;
251
+ label: "REGION.FIELDS.color.label";
252
+ hint: "REGION.FIELDS.color.hint";
253
+ }>;
254
+
255
+ /**
256
+ * The shapes that make up the Region
257
+ */
258
+ shapes: fields.ArrayField<
259
+ fields.TypedSchemaField<BaseShapeData.Types>,
260
+ { label: "REGION.FIELDS.shapes.label"; hint: "REGION.FIELDS.shapes.hint" }
261
+ >;
262
+
263
+ /**
264
+ * A RegionElevation object which defines the elevation levels where the Region takes effect
265
+ * @defaultValue see properties
266
+ */
267
+ elevation: fields.SchemaField<
268
+ {
269
+ /**
270
+ * The bottom elevation level where the Region begins to take effect
271
+ * @remarks if bottom is `null`, it is treated as `-Infinity`
272
+ * @defaultValue `null`
273
+ */
274
+ bottom: fields.NumberField<{
275
+ required: true;
276
+ label: "REGION.FIELDS.elevation.FIELDS.bottom.label";
277
+ hint: "REGION.FIELDS.elevation.FIELDS.bottom.hint";
278
+ }>;
15
279
 
16
- // Helpful aliases
17
- type ConstructorData = BaseRegion.ConstructorData;
18
- type UpdateData = BaseRegion.UpdateData;
19
- type Schema = BaseRegion.Schema;
20
- type Source = BaseRegion.Source;
280
+ /**
281
+ * The top elevation level where the Region's effect ends
282
+ * @remarks if top is `null`, it is treated as `Infinity`
283
+ * @defaultValue `null`
284
+ */
285
+ top: fields.NumberField<{
286
+ required: true;
287
+ label: "REGION.FIELDS.elevation.FIELDS.top.label";
288
+ hint: "REGION.FIELDS.elevation.FIELDS.top.hint";
289
+ }>;
290
+ },
291
+ {
292
+ label: "REGION.FIELDS.elevation.label";
293
+ hint: "REGION.FIELDS.elevation.hint";
294
+ validate: (d: unknown) => boolean;
295
+ validationError: "elevation.top may not be less than elevation.bottom";
296
+ }
297
+ >;
298
+
299
+ /**
300
+ * A collection of embedded RegionBehavior objects
301
+ */
302
+ behaviors: fields.EmbeddedCollectionField<
303
+ typeof foundry.documents.BaseRegionBehavior,
304
+ RegionDocument.Implementation,
305
+ { label: "REGION.FIELDS.behaviors.label"; hint: "REGION.FIELDS.behaviors.hint" }
306
+ >;
307
+
308
+ /** @defaultValue `CONST.REGION_VISIBILITY.LAYER` (`0`) */
309
+ visibility: fields.NumberField<
310
+ {
311
+ required: true;
312
+ initial: typeof CONST.REGION_VISIBILITY.LAYER;
313
+ choices: CONST.REGION_VISIBILITY[];
314
+ label: "REGION.FIELDS.visibility.label";
315
+ hint: "REGION.FIELDS.visibility.hint";
316
+ },
317
+ CONST.REGION_VISIBILITY | null | undefined,
318
+ CONST.REGION_VISIBILITY | null,
319
+ CONST.REGION_VISIBILITY | null
320
+ >;
321
+
322
+ /** @defaultValue `false` */
323
+ locked: fields.BooleanField;
324
+
325
+ /**
326
+ * An object of optional key/value flags
327
+ */
328
+ flags: fields.ObjectField.FlagsField<Name>;
329
+ }
330
+
331
+ namespace Database {
332
+ /** Options passed along in Get operations for Regions */
333
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<RegionDocument.Parent> {}
334
+
335
+ /** Options passed along in Create operations for Regions */
336
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
337
+ extends foundry.abstract.types.DatabaseCreateOperation<
338
+ RegionDocument.CreateData,
339
+ RegionDocument.Parent,
340
+ Temporary
341
+ > {}
342
+
343
+ /** Options passed along in Delete operations for Regions */
344
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<RegionDocument.Parent> {}
345
+
346
+ /** Options passed along in Update operations for Regions */
347
+ interface Update
348
+ extends foundry.abstract.types.DatabaseUpdateOperation<RegionDocument.UpdateData, RegionDocument.Parent> {}
349
+
350
+ /** Operation for {@link RegionDocument.createDocuments | `RegionDocument.createDocuments`} */
351
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
352
+ extends Document.Database.CreateOperation<RegionDocument.Database.Create<Temporary>> {}
353
+
354
+ /** Operation for {@link RegionDocument.updateDocuments | `RegionDocument.updateDocuments`} */
355
+ interface UpdateDocumentsOperation
356
+ extends Document.Database.UpdateDocumentsOperation<RegionDocument.Database.Update> {}
357
+
358
+ /** Operation for {@link RegionDocument.deleteDocuments | `RegionDocument.deleteDocuments`} */
359
+ interface DeleteDocumentsOperation
360
+ extends Document.Database.DeleteDocumentsOperation<RegionDocument.Database.Delete> {}
361
+
362
+ /** Operation for {@link RegionDocument.create | `RegionDocument.create`} */
363
+ interface CreateOperation<Temporary extends boolean | undefined>
364
+ extends Document.Database.CreateOperation<RegionDocument.Database.Create<Temporary>> {}
365
+
366
+ /** Operation for {@link RegionDocument.update | `RegionDocument#update`} */
367
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
368
+
369
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
370
+
371
+ /** Options for {@link RegionDocument.get | `RegionDocument.get`} */
372
+ interface GetOptions extends Document.Database.GetOptions {}
373
+
374
+ /** Options for {@link RegionDocument._preCreate | `RegionDocument#_preCreate`} */
375
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
376
+
377
+ /** Options for {@link RegionDocument._onCreate | `RegionDocument#_onCreate`} */
378
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
379
+
380
+ /** Operation for {@link RegionDocument._preCreateOperation | `RegionDocument._preCreateOperation`} */
381
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<RegionDocument.Database.Create> {}
382
+
383
+ /** Operation for {@link RegionDocument._onCreateOperation | `RegionDocument#_onCreateOperation`} */
384
+ interface OnCreateOperation extends RegionDocument.Database.Create {}
385
+
386
+ /** Options for {@link RegionDocument._preUpdate | `RegionDocument#_preUpdate`} */
387
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
388
+
389
+ /** Options for {@link RegionDocument._onUpdate | `RegionDocument#_onUpdate`} */
390
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
391
+
392
+ /** Operation for {@link RegionDocument._preUpdateOperation | `RegionDocument._preUpdateOperation`} */
393
+ interface PreUpdateOperation extends RegionDocument.Database.Update {}
394
+
395
+ /** Operation for {@link RegionDocument._onUpdateOperation | `RegionDocument._preUpdateOperation`} */
396
+ interface OnUpdateOperation extends RegionDocument.Database.Update {}
397
+
398
+ /** Options for {@link RegionDocument._preDelete | `RegionDocument#_preDelete`} */
399
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
400
+
401
+ /** Options for {@link RegionDocument._onDelete | `RegionDocument#_onDelete`} */
402
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
403
+
404
+ /** Options for {@link RegionDocument._preDeleteOperation | `RegionDocument#_preDeleteOperation`} */
405
+ interface PreDeleteOperation extends RegionDocument.Database.Delete {}
406
+
407
+ /** Options for {@link RegionDocument._onDeleteOperation | `RegionDocument#_onDeleteOperation`} */
408
+ interface OnDeleteOperation extends RegionDocument.Database.Delete {}
409
+
410
+ /** Context for {@link RegionDocument._onDeleteOperation | `RegionDocument._onDeleteOperation`} */
411
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<RegionDocument.Parent> {}
412
+
413
+ /** Context for {@link RegionDocument._onCreateDocuments | `RegionDocument._onCreateDocuments`} */
414
+ interface OnCreateDocumentsContext extends Document.ModificationContext<RegionDocument.Parent> {}
415
+
416
+ /** Context for {@link RegionDocument._onUpdateDocuments | `RegionDocument._onUpdateDocuments`} */
417
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<RegionDocument.Parent> {}
418
+
419
+ /**
420
+ * Options for {@link RegionDocument._preCreateDescendantDocuments | `RegionDocument#_preCreateDescendantDocuments`}
421
+ * and {@link RegionDocument._onCreateDescendantDocuments | `RegionDocument#_onCreateDescendantDocuments`}
422
+ */
423
+ interface CreateOptions extends Document.Database.CreateOptions<RegionDocument.Database.Create> {}
424
+
425
+ /**
426
+ * Options for {@link RegionDocument._preUpdateDescendantDocuments | `RegionDocument#_preUpdateDescendantDocuments`}
427
+ * and {@link RegionDocument._onUpdateDescendantDocuments | `RegionDocument#_onUpdateDescendantDocuments`}
428
+ */
429
+ interface UpdateOptions extends Document.Database.UpdateOptions<RegionDocument.Database.Update> {}
430
+
431
+ /**
432
+ * Options for {@link RegionDocument._preDeleteDescendantDocuments | `RegionDocument#_preDeleteDescendantDocuments`}
433
+ * and {@link RegionDocument._onDeleteDescendantDocuments | `RegionDocument#_onDeleteDescendantDocuments`}
434
+ */
435
+ interface DeleteOptions extends Document.Database.DeleteOptions<RegionDocument.Database.Delete> {}
436
+ }
437
+
438
+ /**
439
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
440
+ */
441
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
442
+
443
+ namespace Flags {
444
+ /**
445
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
446
+ */
447
+ type Scope = Document.FlagKeyOf<Flags>;
448
+
449
+ /**
450
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
451
+ */
452
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
453
+
454
+ /**
455
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
456
+ */
457
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
458
+ }
459
+
460
+ type PreCreateDescendantDocumentsArgs = Document.PreCreateDescendantDocumentsArgs<
461
+ RegionDocument.Stored,
462
+ RegionDocument.DirectDescendant,
463
+ RegionDocument.Metadata.Embedded
464
+ >;
465
+
466
+ type OnCreateDescendantDocumentsArgs = Document.OnCreateDescendantDocumentsArgs<
467
+ RegionDocument.Stored,
468
+ RegionDocument.DirectDescendant,
469
+ RegionDocument.Metadata.Embedded
470
+ >;
471
+
472
+ type PreUpdateDescendantDocumentsArgs = Document.PreUpdateDescendantDocumentsArgs<
473
+ RegionDocument.Stored,
474
+ RegionDocument.DirectDescendant,
475
+ RegionDocument.Metadata.Embedded
476
+ >;
477
+
478
+ type OnUpdateDescendantDocumentsArgs = Document.OnUpdateDescendantDocumentsArgs<
479
+ RegionDocument.Stored,
480
+ RegionDocument.DirectDescendant,
481
+ RegionDocument.Metadata.Embedded
482
+ >;
483
+
484
+ type PreDeleteDescendantDocumentsArgs = Document.PreDeleteDescendantDocumentsArgs<
485
+ RegionDocument.Stored,
486
+ RegionDocument.DirectDescendant,
487
+ RegionDocument.Metadata.Embedded
488
+ >;
489
+
490
+ type OnDeleteDescendantDocumentsArgs = Document.OnDeleteDescendantDocumentsArgs<
491
+ RegionDocument.Stored,
492
+ RegionDocument.DirectDescendant,
493
+ RegionDocument.Metadata.Embedded
494
+ >;
21
495
 
22
496
  interface RegionEvent {
23
497
  /** The name of the event */
@@ -27,10 +501,10 @@ declare global {
27
501
  data: object;
28
502
 
29
503
  /** The Region the event was triggered on */
30
- region: RegionDocument;
504
+ region: RegionDocument.Implementation;
31
505
 
32
506
  /** The User that triggered the event */
33
- user: User;
507
+ user: User.Implementation;
34
508
  }
35
509
 
36
510
  interface SocketRegionEvent {
@@ -66,7 +540,7 @@ declare global {
66
540
 
67
541
  type EventData =
68
542
  | {
69
- token: TokenDocument.ConfiguredInstance;
543
+ token: TokenDocument.Implementation;
70
544
  origin?: {
71
545
  x: number;
72
546
  y: number;
@@ -79,11 +553,11 @@ declare global {
79
553
  };
80
554
  teleport: boolean;
81
555
  forced: boolean;
82
- segments: Region.RegionMovementSegment[];
556
+ segments: Region.MovementSegment[];
83
557
  }
84
558
  | {
85
- token: TokenDocument.ConfiguredInstance;
86
- combatant: Combatant.ConfiguredInstance;
559
+ token: TokenDocument.Implementation;
560
+ combatant: Combatant.Implementation;
87
561
  }
88
562
  | _EventData;
89
563
 
@@ -91,15 +565,38 @@ declare global {
91
565
  interface _EventData {
92
566
  readonly [K: string]: Document.Any | _EventData | _EventData[];
93
567
  }
568
+
569
+ /**
570
+ * @deprecated {@link RegionDocument.Database | `RegionDocument.DatabaseOperation`}
571
+ */
572
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
573
+ interface DatabaseOperations extends Document.Database.Operations<RegionDocument.Implementation> {}
574
+
575
+ /**
576
+ * @deprecated {@link RegionDocument.CreateData | `RegionDocument.CreateData`}
577
+ */
578
+ interface ConstructorData extends RegionDocument.CreateData {}
579
+
580
+ /**
581
+ * @deprecated {@link RegionDocument.implementation | `RegionDocument.ImplementationClass`}
582
+ */
583
+ type ConfiguredClass = ImplementationClass;
584
+
585
+ /**
586
+ * @deprecated {@link RegionDocument.Implementation | `RegionDocument.Implementation`}
587
+ */
588
+ type ConfiguredInstance = Implementation;
94
589
  }
95
590
 
96
591
  /**
97
592
  * The client-side Region document which extends the common BaseRegion model.
98
593
  */
99
594
  class RegionDocument extends ClientDocumentMixin(foundry.documents.BaseRegion) {
100
- static override metadata: RegionDocument.Metadata;
101
-
102
- static get implementation(): RegionDocument.ConfiguredClass;
595
+ /**
596
+ * @param data - Initial data from which to construct the `RegionDocument`
597
+ * @param context - Construction context options
598
+ */
599
+ constructor(...args: RegionDocument.ConstructorArgs);
103
600
 
104
601
  /**
105
602
  * Activate the Socket event listeners.
@@ -118,20 +615,66 @@ declare global {
118
615
  * @internal
119
616
  */
120
617
  protected static _updateTokens(
121
- regions: RegionDocument[],
618
+ regions: RegionDocument.Implementation[],
122
619
  options?: InexactPartial<RegionDocument.UpdateTokenOptions>,
123
620
  ): Promise<void>;
124
621
 
125
- // TODO(Eon): Core overrides these three methods, but the override types are very complex so
126
- // I'm unsure if they are needed here, and if so how to type them.
127
- // There's also the 'DatabaseOperations' interface which may be for this?
128
- // So I'm leaving this for Luke/someone else
129
- // static override _onCreateOperation(documents, operation, user): Promise<void>;
130
- // static override _onUpdateOperation(documents, operation, user): Promise<void>;
131
- // static override _onDeleteOperation(documents, operation, user): Promise<void>;
622
+ /**
623
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
624
+ * this method must be overriden like so:
625
+ * ```typescript
626
+ * class GurpsRegionDocument extends RegionDocument {
627
+ * protected override _onCreateDescendantDocuments(...args: RegionDocument.OnCreateDescendantDocumentsArgs) {
628
+ * super._onCreateDescendantDocuments(...args);
629
+ *
630
+ * const [parent, collection, documents, data, options, userId] = args;
631
+ * if (collection === "behaviors") {
632
+ * options; // Will be narrowed.
633
+ * }
634
+ * }
635
+ * }
636
+ * ```
637
+ */
638
+ protected override _onCreateDescendantDocuments(...args: RegionDocument.OnCreateDescendantDocumentsArgs): void;
639
+
640
+ /**
641
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
642
+ * this method must be overriden like so:
643
+ * ```typescript
644
+ * class Ptr2eRegionDocument extends RegionDocument {
645
+ * protected override _onUpdateDescendantDocuments(...args: RegionDocument.OnUpdateDescendantDocumentsArgs) {
646
+ * super._onUpdateDescendantDocuments(...args);
647
+ *
648
+ * const [parent, collection, documents, changes, options, userId] = args;
649
+ * if (collection === "behaviors") {
650
+ * options; // Will be narrowed.
651
+ * }
652
+ * }
653
+ * }
654
+ * ```
655
+ */
656
+ protected override _onUpdateDescendantDocuments(...args: RegionDocument.OnUpdateDescendantDocumentsArgs): void;
657
+
658
+ /**
659
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
660
+ * this method must be overriden like so:
661
+ * ```typescript
662
+ * class BladesRegionDocument extends RegionDocument {
663
+ * protected override _onDeleteDescendantDocuments(...args: RegionDocument.OnUpdateDescendantDocuments) {
664
+ * super._onDeleteDescendantDocuments(...args);
665
+ *
666
+ * const [parent, collection, documents, ids, options, userId] = args;
667
+ * if (collection === "behaviors") {
668
+ * options; // Will be narrowed.
669
+ * }
670
+ * }
671
+ * }
672
+ * ```
673
+ */
674
+ protected override _onDeleteDescendantDocuments(...args: RegionDocument.OnDeleteDescendantDocumentsArgs): void;
132
675
 
133
676
  /** The tokens inside this region. */
134
- tokens: Set<TokenDocument>;
677
+ tokens: Set<TokenDocument.Implementation>;
135
678
 
136
679
  /**
137
680
  * Trigger the Region event.
@@ -150,11 +693,94 @@ declare global {
150
693
 
151
694
  /**
152
695
  * @privateRemarks _onCreate, _preUpdate, _onUpdate, _onDelete, preCreateOperation, _preUpdateOperation, _onCreateOperation,
153
- * _onUpdateOperation, _onDeleteOperation, _preCreateDescendantDocuments, _preUpdateDescendantDocuments, _preDeleteDescendantDocuments,
154
- * _onUpdateDescendantDocuments, and _onDeleteDescendantDocuments are all overridden but with no signature changes.
155
- * For type simplicity they are left off. These methods historically have been the source of a large amount of computation from tsc.
696
+ * _onUpdateOperation, _onDeleteOperation, are overridden from BaseRegion without signature changes.
156
697
  */
157
698
 
158
699
  #regionDocument: true;
700
+
701
+ /*
702
+ * After this point these are not really overridden methods.
703
+ * They are here because Foundry's documents are complex and have lots of edge cases.
704
+ * There are DRY ways of representing this but this ends up being harder to understand
705
+ * for end users extending these functions, especially for static methods. There are also a
706
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
707
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
708
+ * separate like this helps against circularities.
709
+ */
710
+
711
+ // ClientDocument overrides
712
+
713
+ /**
714
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
715
+ * this method must be overriden like so:
716
+ * ```typescript
717
+ * class SwadeRegionDocument extends RegionDocument {
718
+ * protected override _preCreateDescendantDocuments(...args: RegionDocument.PreCreateDescendantDocumentsArgs) {
719
+ * super._preCreateDescendantDocuments(...args);
720
+ *
721
+ * const [parent, collection, data, options, userId] = args;
722
+ * if (collection === "behaviors") {
723
+ * options; // Will be narrowed.
724
+ * }
725
+ * }
726
+ * }
727
+ * ```
728
+ */
729
+ protected override _preCreateDescendantDocuments(...args: RegionDocument.PreCreateDescendantDocumentsArgs): void;
730
+
731
+ /**
732
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
733
+ * this method must be overriden like so:
734
+ * ```typescript
735
+ * class LancerRegionDocument extends RegionDocument {
736
+ * protected override _preUpdateDescendantDocuments(...args: RegionDocument.OnUpdateDescendantDocuments) {
737
+ * super._preUpdateDescendantDocuments(...args);
738
+ *
739
+ * const [parent, collection, changes, options, userId] = args;
740
+ * if (collection === "behaviors") {
741
+ * options; // Will be narrowed.
742
+ * }
743
+ * }
744
+ * }
745
+ * ```
746
+ */
747
+ protected override _preUpdateDescendantDocuments(...args: RegionDocument.PreUpdateDescendantDocumentsArgs): void;
748
+
749
+ /**
750
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
751
+ * this method must be overriden like so:
752
+ * ```typescript
753
+ * class KultRegionDocument extends RegionDocument {
754
+ * protected override _preDeleteDescendantDocuments(...args: RegionDocument.PreDeleteDescendantDocumentsArgs) {
755
+ * super._preDeleteDescendantDocuments(...args);
756
+ *
757
+ * const [parent, collection, ids, options, userId] = args;
758
+ * if (collection === "behaviors") {
759
+ * options; // Will be narrowed.
760
+ * }
761
+ * }
762
+ * }
763
+ * ```
764
+ */
765
+ protected override _preDeleteDescendantDocuments(...args: RegionDocument.PreDeleteDescendantDocumentsArgs): void;
766
+
767
+ static override defaultName(
768
+ context: Document.DefaultNameContext<"base", NonNullable<RegionDocument.Parent>>,
769
+ ): string;
770
+
771
+ static override createDialog(
772
+ data: Document.CreateDialogData<RegionDocument.CreateData>,
773
+ context: Document.CreateDialogContext<string, NonNullable<RegionDocument.Parent>>,
774
+ ): Promise<RegionDocument.Stored | null | undefined>;
775
+
776
+ static override fromDropData(
777
+ data: Document.DropData<RegionDocument.Implementation>,
778
+ options?: Document.FromDropDataOptions,
779
+ ): Promise<RegionDocument.Implementation | undefined>;
780
+
781
+ static override fromImport(
782
+ source: RegionDocument.Source,
783
+ context?: Document.FromImportContext<RegionDocument.Parent>,
784
+ ): Promise<RegionDocument.Implementation>;
159
785
  }
160
786
  }