@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,56 +1,589 @@
1
- import type { SchemaField } from "../../../common/data/fields.d.mts";
2
- import type { BaseActor, BaseActorDelta } from "../../../common/documents/_module.d.mts";
3
- import type { DocumentDatabaseOperations } from "../../../common/abstract/document.d.mts";
1
+ import type { AnyObject, Identity, Merge, NullishProps, RequiredProps } from "#utils";
2
+ import type { DataSchema } from "../../../common/data/fields.d.mts";
3
+ import type { BaseActorDelta } from "../../../common/documents/_module.d.mts";
4
4
  import type Document from "../../../common/abstract/document.d.mts";
5
+ import type { fields } from "../../../common/data/module.d.mts";
6
+ import type { ConfiguredActorDelta } from "../../../../configuration/index.d.mts";
7
+ import type DataModel from "../../../common/abstract/data.d.mts";
5
8
 
6
9
  declare global {
7
10
  namespace ActorDelta {
8
- type Metadata = Document.MetadataFor<ActiveEffect>;
11
+ /**
12
+ * The document's name.
13
+ */
14
+ type Name = "ActorDelta";
15
+
16
+ /**
17
+ * The arguments to construct the document.
18
+ * @privateRemarks This is off-template, as ActorDelta throws if not provided a valid TokenDocument
19
+ * parent in the construction context for any construction, not just `.create`ion
20
+ */
21
+ interface ConstructorArgs
22
+ extends Identity<
23
+ [
24
+ data: CreateData | undefined,
25
+ context: RequiredProps<Document.ConstructionContext<TokenDocument.Implementation>, "parent">,
26
+ ]
27
+ > {}
28
+
29
+ /**
30
+ * The documents embedded within `ActorDelta`.
31
+ */
32
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
33
+
34
+ /**
35
+ * The implementation of the `ActorDelta` document instance configured through `CONFIG.ActorDelta.documentClass` in Foundry and
36
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredActorDelta | `fvtt-types/configuration/ConfiguredActorDelta`} in fvtt-types.
37
+ */
38
+ type Implementation = Document.ImplementationFor<Name>;
39
+
40
+ /**
41
+ * The implementation of the `ActorDelta` document configured through `CONFIG.ActorDelta.documentClass` in Foundry and
42
+ * {@link DocumentClassConfig | `DocumentClassConfig`} in fvtt-types.
43
+ */
44
+ type ImplementationClass = Document.ImplementationClassFor<Name>;
45
+
46
+ /**
47
+ * A document's metadata is special information about the document ranging anywhere from its name,
48
+ * whether it's indexed, or to the permissions a user has over it.
49
+ */
50
+ interface Metadata
51
+ extends Merge<
52
+ Document.Metadata.Default,
53
+ Readonly<{
54
+ name: "ActorDelta";
55
+ collection: "delta";
56
+ label: string;
57
+ labelPlural: string;
58
+ isEmbedded: true;
59
+ embedded: Metadata.Embedded;
60
+ schemaVersion: string;
61
+ }>
62
+ > {}
63
+
64
+ namespace Metadata {
65
+ /**
66
+ * The embedded metadata
67
+ */
68
+ interface Embedded {
69
+ Item: "items";
70
+ ActiveEffect: "effects";
71
+ }
72
+ }
73
+
74
+ /**
75
+ * Allowed subtypes of `ActorDelta`. Due to the implementation of the `ActorDelta` document,
76
+ * the SubType is the same as the `Actor`'s SubType.
77
+ *
78
+ * {@link Actor.SubType | `Actor.SubType`}
79
+ */
80
+ type SubType = Actor.SubType;
81
+
82
+ /**
83
+ * `ConfiguredSubTypes` represents the subtypes a user explicitly registered. This excludes
84
+ * subtypes like the Foundry builtin subtype `"base"` and the catch-all subtype for arbitrary
85
+ * module subtypes `${string}.${string}`.
86
+ *
87
+ * @see {@link ActorDelta.SubType | `ActorDelta.SubType`} for more information.
88
+ */
89
+ type ConfiguredSubTypes = Actor.SubType;
90
+
91
+ /**
92
+ * `Known` represents the types of `ActorDelta` that a user explicitly registered.
93
+ *
94
+ * @see {@link ConfiguredSubTypes} for more information.
95
+ */
96
+ type Known = ActorDelta.OfType<ActorDelta.ConfiguredSubTypes>;
97
+
98
+ /**
99
+ * `OfType` returns an instance of `ActorDelta` with the corresponding type. This works with both the
100
+ * builtin `ActorDelta` class or a custom subclass if that is set up in
101
+ * {@link ConfiguredActorDelta | `fvtt-types/configuration/ConfiguredActorDelta`}.
102
+ */
103
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types
104
+ type OfType<Type extends SubType> = Document.Internal.OfType<ConfiguredActorDelta<Type>, ActorDelta<Type>>;
105
+
106
+ /**
107
+ * `SystemOfType` returns the system property for a specific `ActorDelta` subtype.
108
+ */
109
+ type SystemOfType<Type extends SubType> = Document.Internal.SystemOfType<_SystemMap, Type>;
110
+
111
+ /**
112
+ * @internal
113
+ */
114
+ interface _SystemMap extends Document.Internal.SystemMap<"ActorDelta"> {}
115
+
116
+ /**
117
+ * A document's parent is something that can contain it.
118
+ * For example an `Item` can be contained by an `Actor` which makes `Actor` one of its possible parents.
119
+ */
120
+ type Parent = TokenDocument.Implementation | null;
121
+
122
+ /**
123
+ * A document's direct descendants are documents that are contained directly within its schema.
124
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
125
+ */
126
+ type DirectDescendant = Item.Stored | ActiveEffect.Stored;
127
+
128
+ /**
129
+ * A document's direct descendants are documents that are contained directly within its schema.
130
+ * This is a union of all such classes, or never if the document doesn't have any descendants.
131
+ */
132
+ type DirectDescendantClass = Item.ImplementationClass | ActiveEffect.ImplementationClass;
133
+
134
+ /**
135
+ * A document's descendants are any documents that are contained within, either within its schema
136
+ * or its descendant's schemas.
137
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
138
+ */
139
+ type Descendant = DirectDescendant | Item.Descendant;
140
+
141
+ /**
142
+ * A document's descendants are any child documents, grandchild documents, etc.
143
+ * This is a union of all classes, or never if the document doesn't have any descendants.
144
+ */
145
+ type DescendantClass = DirectDescendantClass | Item.DescendantClass;
146
+
147
+ /**
148
+ * Types of `CompendiumCollection` this document might be contained in.
149
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
150
+ */
151
+ // Note: Takes any document in the heritage chain (i.e. itself or any parent, transitive or not) that can be contained in a compendium.
152
+ type Pack = CompendiumCollection.ForDocument<"Scene">;
153
+
154
+ /**
155
+ * An embedded document is a document contained in another.
156
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
157
+ *
158
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
159
+ */
160
+ type Embedded = Document.ImplementationFor<Embedded.Name>;
161
+
162
+ namespace Embedded {
163
+ /**
164
+ * An embedded document is a document contained in another.
165
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
166
+ *
167
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
168
+ */
169
+ type Name = keyof Metadata.Embedded;
170
+
171
+ /**
172
+ * Gets the collection name for an embedded document.
173
+ */
174
+ type CollectionNameOf<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionNameFor<
175
+ Metadata.Embedded,
176
+ CollectionName
177
+ >;
178
+
179
+ /**
180
+ * Gets the collection document for an embedded document.
181
+ */
182
+ // TODO(LukeAbby): There's a circularity. Should be `Document.Embedded.CollectionDocumentFor<Metadata.Embedded, CollectionName>`
183
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
184
+ type DocumentFor<CollectionName extends Embedded.CollectionName> = Document.Any;
185
+
186
+ /**
187
+ * Gets the collection for an embedded document.
188
+ */
189
+ type CollectionFor<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionFor<
190
+ // TODO(LukeAbby): This should be `TokenDocument.Implementation` but this causes a circularity.
191
+ Document.Any,
192
+ Metadata.Embedded,
193
+ CollectionName
194
+ >;
195
+
196
+ /**
197
+ * A valid name to refer to a collection embedded in this document. For example an `Actor`
198
+ * has the key `"items"` which contains `Item` instance which would make both `"Item" | "Items"`
199
+ * valid keys (amongst others).
200
+ */
201
+ type CollectionName = Document.Embedded.CollectionName<Metadata.Embedded>;
202
+ }
203
+
204
+ /**
205
+ * The name of the world or embedded collection this document can find itself in.
206
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
207
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
208
+ */
209
+ type ParentCollectionName = Metadata["collection"];
210
+
211
+ /**
212
+ * The world collection that contains this document type. Will be `never` if none exists.
213
+ */
214
+ type CollectionClass = never;
215
+
216
+ /**
217
+ * The world collection that contains this document type. Will be `never` if none exists.
218
+ */
219
+ type Collection = never;
220
+
221
+ /**
222
+ * An instance of `ActorDelta` that comes from the database but failed validation meaning that
223
+ * its `system` and `_source` could theoretically be anything.
224
+ */
225
+ interface Invalid extends Document.Invalid<ActorDelta.Implementation> {}
226
+
227
+ /**
228
+ * An instance of `ActorDelta` that comes from the database.
229
+ */
230
+ interface Stored extends Document.Stored<ActorDelta.Implementation> {}
231
+
232
+ /**
233
+ * The data put in {@link ActorDelta._source | `ActorDelta#_source`}. This data is what was
234
+ * persisted to the database and therefore it must be valid JSON.
235
+ *
236
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
237
+ * but initialized as a {@link Set | `Set`}.
238
+ */
239
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
240
+
241
+ /**
242
+ * @deprecated {@link ActorDelta.Source | `ActorDelta.Source`}
243
+ */
244
+ type PersistedData = Source;
245
+
246
+ /**
247
+ * The data necessary to create a document. Used in places like {@link ActorDelta.create | `ActorDelta.create`}
248
+ * and {@link ActorDelta | `new ActorDelta(...)`}.
249
+ *
250
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
251
+ * with the right values. This means you can pass a `Set` instance, an array of values,
252
+ * a generator, or any other iterable.
253
+ */
254
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
255
+
256
+ /**
257
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
258
+ * {@link ActorDelta.name | `ActorDelta#name`}.
259
+ *
260
+ * This is data transformed from {@link ActorDelta.Source | `ActorDelta.Source`} and turned into more
261
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
262
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
263
+ */
264
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
265
+
266
+ /**
267
+ * The data used to update a document, for example {@link ActorDelta.update | `ActorDelta#update`}.
268
+ * It is a distinct type from {@link ActorDelta.CreateData | `DeepPartial<ActorDelta.CreateData>`} because
269
+ * it has different rules for `null` and `undefined`.
270
+ */
271
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
272
+
273
+ /**
274
+ * The schema for {@link ActorDelta | `ActorDelta`}. This is the source of truth for how an ActorDelta document
275
+ * must be structured.
276
+ *
277
+ * Foundry uses this schema to validate the structure of the {@link ActorDelta | `ActorDelta`}. For example
278
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
279
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
280
+ * starting as an array in the database, initialized as a set, and allows updates with any
281
+ * iterable.
282
+ */
283
+ interface Schema extends DataSchema {
284
+ /**
285
+ * The _id which uniquely identifies this ActorDelta document.
286
+ */
287
+ _id: fields.DocumentIdField;
288
+
289
+ /**
290
+ * The name override, if any.
291
+ * @defaultValue `null`
292
+ */
293
+ name: fields.StringField<{ required: false; nullable: true; initial: null }>;
294
+
295
+ /**
296
+ * The type override, if any.
297
+ * @defaultValue `null`
298
+ */
299
+ type: fields.StringField<{ required: false; nullable: true; initial: null }>;
300
+
301
+ /**
302
+ * The image override, if any.
303
+ * @defaultValue `null`
304
+ */
305
+ img: fields.FilePathField<{ categories: ["IMAGE"]; nullable: true; initial: null; required: false }>;
306
+
307
+ /**
308
+ * The system data model override.
309
+ */
310
+ system: fields.ObjectField;
311
+
312
+ /**
313
+ * An array of embedded item data overrides.
314
+ */
315
+ items: fields.EmbeddedCollectionDeltaField<typeof foundry.documents.BaseItem, ActorDelta.Implementation>;
316
+
317
+ /**
318
+ * An array of embedded active effect data overrides.
319
+ */
320
+ effects: fields.EmbeddedCollectionDeltaField<
321
+ typeof foundry.documents.BaseActiveEffect,
322
+ ActorDelta.Implementation
323
+ >;
324
+
325
+ /**
326
+ * Ownership overrides.
327
+ * @defaultValue `null`
328
+ */
329
+ ownership: fields.DocumentOwnershipField<{ required: false; nullable: true; initial: null }>;
330
+
331
+ /**
332
+ * An object of actor flag overrides.
333
+ */
334
+ flags: fields.ObjectField.FlagsField<"Actor">;
335
+ }
336
+
337
+ namespace Database {
338
+ /** Options passed along in Get operations for ActorDeltas */
339
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<ActorDelta.Parent> {}
340
+
341
+ /** Options passed along in Create operations for ActorDeltas */
342
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
343
+ extends foundry.abstract.types.DatabaseCreateOperation<ActorDelta.CreateData, ActorDelta.Parent, Temporary> {}
344
+
345
+ /** Options passed along in Delete operations for ActorDeltas */
346
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<ActorDelta.Parent> {}
347
+
348
+ /** Options passed along in Update operations for ActorDeltas */
349
+ interface Update
350
+ extends foundry.abstract.types.DatabaseUpdateOperation<ActorDelta.UpdateData, ActorDelta.Parent> {}
351
+
352
+ /** Operation for {@link ActorDelta.createDocuments | `ActorDelta.createDocuments`} */
353
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
354
+ extends Document.Database.CreateOperation<ActorDelta.Database.Create<Temporary>> {}
355
+
356
+ /** Operation for {@link ActorDelta.updateDocuments | `ActorDelta.updateDocuments`} */
357
+ interface UpdateDocumentsOperation
358
+ extends Document.Database.UpdateDocumentsOperation<ActorDelta.Database.Update> {}
359
+
360
+ /** Operation for {@link ActorDelta.deleteDocuments | `ActorDelta.deleteDocuments`} */
361
+ interface DeleteDocumentsOperation
362
+ extends Document.Database.DeleteDocumentsOperation<ActorDelta.Database.Delete> {}
363
+
364
+ /** Operation for {@link ActorDelta.create | `ActorDelta.create`} */
365
+ interface CreateOperation<Temporary extends boolean | undefined>
366
+ extends Document.Database.CreateOperation<ActorDelta.Database.Create<Temporary>> {}
367
+
368
+ /** Operation for {@link ActorDelta.update | `ActorDelta#update`} */
369
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
370
+
371
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
372
+
373
+ /** Options for {@link ActorDelta.get | `ActorDelta.get`} */
374
+ interface GetOptions extends Document.Database.GetOptions {}
375
+
376
+ /** Options for {@link ActorDelta._preCreate | `ActorDelta#_preCreate`} */
377
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
378
+
379
+ /** Options for {@link ActorDelta._onCreate | `ActorDelta#_onCreate`} */
380
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
381
+
382
+ /** Operation for {@link ActorDelta._preCreateOperation | `ActorDelta._preCreateOperation`} */
383
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<ActorDelta.Database.Create> {}
9
384
 
10
- type ConfiguredClass = Document.ConfiguredClassForName<"ActorDelta">;
11
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"ActorDelta">;
385
+ /** Operation for {@link ActorDelta._onCreateOperation | `ActorDelta#_onCreateOperation`} */
386
+ interface OnCreateOperation extends ActorDelta.Database.Create {}
12
387
 
13
- interface DatabaseOperations extends DocumentDatabaseOperations<ActorDelta> {}
388
+ /** Options for {@link ActorDelta._preUpdate | `ActorDelta#_preUpdate`} */
389
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
14
390
 
15
- // Helpful aliases
16
- type TypeNames = BaseActorDelta.TypeNames;
17
- type ConstructorData = BaseActorDelta.ConstructorData;
18
- type UpdateData = BaseActorDelta.UpdateData;
19
- type Schema = BaseActorDelta.Schema;
20
- type Source = BaseActorDelta.Source;
391
+ /** Options for {@link ActorDelta._onUpdate | `ActorDelta#_onUpdate`} */
392
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
393
+
394
+ /** Operation for {@link ActorDelta._preUpdateOperation | `ActorDelta._preUpdateOperation`} */
395
+ interface PreUpdateOperation extends ActorDelta.Database.Update {}
396
+
397
+ /** Operation for {@link ActorDelta._onUpdateOperation | `ActorDelta._preUpdateOperation`} */
398
+ interface OnUpdateOperation extends ActorDelta.Database.Update {}
399
+
400
+ /** Options for {@link ActorDelta._preDelete | `ActorDelta#_preDelete`} */
401
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
402
+
403
+ /** Options for {@link ActorDelta._onDelete | `ActorDelta#_onDelete`} */
404
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
405
+
406
+ /** Options for {@link ActorDelta._preDeleteOperation | `ActorDelta#_preDeleteOperation`} */
407
+ interface PreDeleteOperation extends ActorDelta.Database.Delete {}
408
+
409
+ /** Options for {@link ActorDelta._onDeleteOperation | `ActorDelta#_onDeleteOperation`} */
410
+ interface OnDeleteOperation extends ActorDelta.Database.Delete {}
411
+
412
+ /** Context for {@link ActorDelta._onDeleteOperation | `ActorDelta._onDeleteOperation`} */
413
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<ActorDelta.Parent> {}
414
+
415
+ /** Context for {@link ActorDelta._onCreateDocuments | `ActorDelta._onCreateDocuments`} */
416
+ interface OnCreateDocumentsContext extends Document.ModificationContext<ActorDelta.Parent> {}
417
+
418
+ /** Context for {@link ActorDelta._onUpdateDocuments | `ActorDelta._onUpdateDocuments`} */
419
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<ActorDelta.Parent> {}
420
+
421
+ /**
422
+ * Options for {@link ActorDelta._preCreateDescendantDocuments | `ActorDelta#_preCreateDescendantDocuments`}
423
+ * and {@link ActorDelta._onCreateDescendantDocuments | `ActorDelta#_onCreateDescendantDocuments`}
424
+ */
425
+ interface CreateOptions extends Document.Database.CreateOptions<ActorDelta.Database.Create> {}
426
+
427
+ /**
428
+ * Options for {@link ActorDelta._preUpdateDescendantDocuments | `ActorDelta#_preUpdateDescendantDocuments`}
429
+ * and {@link ActorDelta._onUpdateDescendantDocuments | `ActorDelta#_onUpdateDescendantDocuments`}
430
+ */
431
+ interface UpdateOptions extends Document.Database.UpdateOptions<ActorDelta.Database.Update> {}
432
+
433
+ /**
434
+ * Options for {@link ActorDelta._preDeleteDescendantDocuments | `ActorDelta#_preDeleteDescendantDocuments`}
435
+ * and {@link ActorDelta._onDeleteDescendantDocuments | `ActorDelta#_onDeleteDescendantDocuments`}
436
+ */
437
+ interface DeleteOptions extends Document.Database.DeleteOptions<ActorDelta.Database.Delete> {}
438
+ }
439
+
440
+ /**
441
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
442
+ */
443
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
444
+
445
+ namespace Flags {
446
+ /**
447
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
448
+ */
449
+ type Scope = Document.FlagKeyOf<Flags>;
450
+
451
+ /**
452
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
453
+ */
454
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
455
+
456
+ /**
457
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
458
+ */
459
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
460
+ }
461
+
462
+ type PreCreateDescendantDocumentsArgs =
463
+ | Document.PreCreateDescendantDocumentsArgs<
464
+ ActorDelta.Stored,
465
+ ActorDelta.DirectDescendant,
466
+ ActorDelta.Metadata.Embedded
467
+ >
468
+ | Item.PreCreateDescendantDocumentsArgs;
469
+
470
+ type OnCreateDescendantDocumentsArgs =
471
+ | Document.OnCreateDescendantDocumentsArgs<
472
+ ActorDelta.Stored,
473
+ ActorDelta.DirectDescendant,
474
+ ActorDelta.Metadata.Embedded
475
+ >
476
+ | Item.OnCreateDescendantDocumentsArgs;
477
+
478
+ type PreUpdateDescendantDocumentsArgs =
479
+ | Document.PreUpdateDescendantDocumentsArgs<
480
+ ActorDelta.Stored,
481
+ ActorDelta.DirectDescendant,
482
+ ActorDelta.Metadata.Embedded
483
+ >
484
+ | Item.PreUpdateDescendantDocumentsArgs;
485
+
486
+ type OnUpdateDescendantDocumentsArgs =
487
+ | Document.OnUpdateDescendantDocumentsArgs<
488
+ ActorDelta.Stored,
489
+ ActorDelta.DirectDescendant,
490
+ ActorDelta.Metadata.Embedded
491
+ >
492
+ | Item.OnUpdateDescendantDocumentsArgs;
493
+
494
+ type PreDeleteDescendantDocumentsArgs =
495
+ | Document.PreDeleteDescendantDocumentsArgs<
496
+ ActorDelta.Stored,
497
+ ActorDelta.DirectDescendant,
498
+ ActorDelta.Metadata.Embedded
499
+ >
500
+ | Item.PreDeleteDescendantDocumentsArgs;
501
+
502
+ type OnDeleteDescendantDocumentsArgs =
503
+ | Document.OnDeleteDescendantDocumentsArgs<
504
+ ActorDelta.Stored,
505
+ ActorDelta.DirectDescendant,
506
+ ActorDelta.Metadata.Embedded
507
+ >
508
+ | Item.OnDeleteDescendantDocumentsArgs;
509
+
510
+ /**
511
+ * @deprecated {@link ActorDelta.Database | `ActorDelta.DatabaseOperation`}
512
+ */
513
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
514
+ interface DatabaseOperations extends Document.Database.Operations<ActorDelta.Implementation> {}
515
+
516
+ /**
517
+ * @deprecated {@link ActorDelta.SubType | `ActorDelta.SubType`}
518
+ */
519
+ type TypeNames = ActorDelta.SubType;
520
+
521
+ /**
522
+ * @deprecated {@link ActorDelta.CreateData | `ActorDelta.CreateData`}
523
+ */
524
+ interface ConstructorData extends ActorDelta.CreateData {}
525
+
526
+ /**
527
+ * @deprecated {@link ActorDelta.implementation | `ActorDelta.ImplementationClass`}
528
+ */
529
+ type ConfiguredClass = ImplementationClass;
530
+
531
+ /**
532
+ * @deprecated {@link ActorDelta.Implementation | `ActorDelta.Implementation`}
533
+ */
534
+ type ConfiguredInstance = Implementation;
535
+
536
+ /** @internal */
537
+ type _InitializeOptions = NullishProps<{
538
+ /**
539
+ * @remarks Is this initialization part of a {@link Scene.reset | `Scene#reset`} call? (skips further initialization if truthy)
540
+ * @defaultValue `false`
541
+ */
542
+ sceneReset: boolean;
543
+ }>;
544
+
545
+ interface InitializeOptions extends Document.InitializeOptions, _InitializeOptions {}
21
546
  }
22
547
 
23
548
  /**
24
549
  * The client-side ActorDelta embedded document which extends the common BaseActorDelta document model.
25
- * @see {@link TokenDocument} The TokenDocument document type which contains ActorDelta embedded documents.
550
+ * @see {@link TokenDocument | `TokenDocument`} The TokenDocument document type which contains ActorDelta embedded documents.
26
551
  */
27
- class ActorDelta extends ClientDocumentMixin(foundry.documents.BaseActorDelta) {
28
- static override metadata: ActorDelta.Metadata;
552
+ class ActorDelta<out SubType extends ActorDelta.SubType = ActorDelta.SubType> extends ClientDocumentMixin(
553
+ BaseActorDelta,
554
+ )<SubType> {
555
+ /**
556
+ * @param data - Initial data from which to construct the `ActorDelta`
557
+ * @param context - Construction context options
558
+ */
559
+ constructor(...args: ActorDelta.ConstructorArgs);
29
560
 
30
- protected override _configure(options?: { pack?: string | null }): void;
561
+ // options: not null (parameter default only, destructured in super)
562
+ protected override _configure(options?: Document.ConfigureOptions): void;
31
563
 
32
- protected override _initialize(options?: any): void;
33
- protected override _initialize(): void;
564
+ // options: not null (destructured)
565
+ protected override _initialize(options?: ActorDelta.InitializeOptions): void;
34
566
 
35
567
  /** Pass-through the type from the synthetic Actor, if it exists. */
36
568
  _type: string;
37
569
 
38
- get type(): ActorDelta.TypeNames | Actor.TypeNames;
39
-
40
- set type(type: ActorDelta.TypeNames | Actor.TypeNames);
41
-
42
570
  /**
43
571
  * Apply this ActorDelta to the base Actor and return a synthetic Actor.
44
572
  * @param context - Context to supply to synthetic Actor instantiation.
573
+ * @remarks Forwards `context` to {@link BaseActorDelta.applyDelta | `this.constructor.applyDelta(this, this.parent.baseActor, context)`}
45
574
  */
46
- apply(context: unknown): Actor.ConfiguredInstance;
575
+ apply(context?: BaseActorDelta.ApplyDeltaContext | null): Actor.Implementation | null;
47
576
 
48
577
  /** @remarks `"The synthetic actor prepares its items in the appropriate context of an actor. The actor delta does not need to prepare its items, and would do so in the incorrect context."` */
49
578
  override prepareEmbeddedDocuments(): void;
50
579
 
580
+ // TODO: accurately type changes and return type
581
+ // changes, options: not null (parameter default only)
51
582
  override updateSource(
52
- changes?: SchemaField.InnerAssignmentType<BaseActor.Schema>,
53
- options?: { dryRun?: boolean; fallback?: boolean; recursive?: boolean },
583
+ // Note(LukeAbby): This must be valid for both `new ActorDelta.implementation(actorChanges, { parent: this.parent });` and `super.updateSource`.
584
+ // However it's likely the overlap between these two types is pretty high.
585
+ changes?: ActorDelta.Source,
586
+ options?: DataModel.UpdateOptions,
54
587
  ): object;
55
588
 
56
589
  override reset(): void;
@@ -76,7 +609,7 @@ declare global {
76
609
  * Restore this delta to empty, inheriting all its properties from the base actor.
77
610
  * @returns The restored synthetic Actor.
78
611
  */
79
- restore(): Promise<Actor.ConfiguredInstance>;
612
+ restore(): Promise<Actor.Implementation>;
80
613
 
81
614
  /**
82
615
  * Ensure that the embedded collection delta is managing any entries that have had their descendants updated.
@@ -84,10 +617,7 @@ declare global {
84
617
  */
85
618
  _handleDeltaCollectionUpdates(doc: Document.Any): void;
86
619
 
87
- /**
88
- * @privateRemarks _onUpdate and _onDelete are all overridden but with no signature changes.
89
- * For type simplicity they are left off. These methods historically have been the source of a large amount of computation from tsc.
90
- */
620
+ // _onUpdate and _onDelete are all overridden but with no signature changes from BaseActorDelta.
91
621
 
92
622
  protected override _dispatchDescendantDocumentEvents(
93
623
  event: ClientDocument.LifeCycleEventName,
@@ -95,5 +625,149 @@ declare global {
95
625
  args: unknown[],
96
626
  _parent: ClientDocument,
97
627
  ): void;
628
+
629
+ /*
630
+ * After this point these are not really overridden methods.
631
+ * They are here because Foundry's documents are complex and have lots of edge cases.
632
+ * There are DRY ways of representing this but this ends up being harder to understand
633
+ * for end users extending these functions, especially for static methods. There are also a
634
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
635
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
636
+ * separate like this helps against circularities.
637
+ */
638
+
639
+ // ClientDocument overrides
640
+
641
+ /**
642
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
643
+ * this method must be overridden like so:
644
+ * ```typescript
645
+ * class SwadeActorDelta extends ActorDelta {
646
+ * protected override _preCreateDescendantDocuments(...args: ActorDelta.PreCreateDescendantDocumentsArgs) {
647
+ * super._preCreateDescendantDocuments(...args);
648
+ *
649
+ * const [parent, collection, data, options, userId] = args;
650
+ * if (collection === "items") {
651
+ * options; // Will be narrowed.
652
+ * }
653
+ * }
654
+ * }
655
+ * ```
656
+ */
657
+ protected override _preCreateDescendantDocuments(...args: ActorDelta.PreCreateDescendantDocumentsArgs): void;
658
+
659
+ /**
660
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
661
+ * this method must be overridden like so:
662
+ * ```typescript
663
+ * class GurpsActorDelta extends ActorDelta {
664
+ * protected override _onCreateDescendantDocuments(...args: ActorDelta.OnCreateDescendantDocumentsArgs) {
665
+ * super._onCreateDescendantDocuments(...args);
666
+ *
667
+ * const [parent, collection, documents, data, options, userId] = args;
668
+ * if (collection === "items") {
669
+ * options; // Will be narrowed.
670
+ * }
671
+ * }
672
+ * }
673
+ * ```
674
+ */
675
+ protected override _onCreateDescendantDocuments(...args: ActorDelta.OnCreateDescendantDocumentsArgs): void;
676
+
677
+ /**
678
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
679
+ * this method must be overridden like so:
680
+ * ```typescript
681
+ * class LancerActorDelta extends ActorDelta {
682
+ * protected override _preUpdateDescendantDocuments(...args: ActorDelta.OnUpdateDescendantDocuments) {
683
+ * super._preUpdateDescendantDocuments(...args);
684
+ *
685
+ * const [parent, collection, changes, options, userId] = args;
686
+ * if (collection === "items") {
687
+ * options; // Will be narrowed.
688
+ * }
689
+ * }
690
+ * }
691
+ * ```
692
+ */
693
+ protected override _preUpdateDescendantDocuments(...args: ActorDelta.PreUpdateDescendantDocumentsArgs): void;
694
+
695
+ /**
696
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
697
+ * this method must be overridden like so:
698
+ * ```typescript
699
+ * class Ptr2eActorDelta extends ActorDelta {
700
+ * protected override _onUpdateDescendantDocuments(...args: ActorDelta.OnUpdateDescendantDocumentsArgs) {
701
+ * super._onUpdateDescendantDocuments(...args);
702
+ *
703
+ * const [parent, collection, documents, changes, options, userId] = args;
704
+ * if (collection === "items") {
705
+ * options; // Will be narrowed.
706
+ * }
707
+ * }
708
+ * }
709
+ * ```
710
+ */
711
+ protected override _onUpdateDescendantDocuments(...args: ActorDelta.OnUpdateDescendantDocumentsArgs): void;
712
+
713
+ /**
714
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
715
+ * this method must be overridden like so:
716
+ * ```typescript
717
+ * class KultActorDelta extends ActorDelta {
718
+ * protected override _preDeleteDescendantDocuments(...args: ActorDelta.PreDeleteDescendantDocumentsArgs) {
719
+ * super._preDeleteDescendantDocuments(...args);
720
+ *
721
+ * const [parent, collection, ids, options, userId] = args;
722
+ * if (collection === "items") {
723
+ * options; // Will be narrowed.
724
+ * }
725
+ * }
726
+ * }
727
+ * ```
728
+ */
729
+ protected override _preDeleteDescendantDocuments(...args: ActorDelta.PreDeleteDescendantDocumentsArgs): void;
730
+
731
+ /**
732
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
733
+ * this method must be overridden like so:
734
+ * ```typescript
735
+ * class BladesActorDelta extends ActorDelta {
736
+ * protected override _onDeleteDescendantDocuments(...args: ActorDelta.OnUpdateDescendantDocuments) {
737
+ * super._onDeleteDescendantDocuments(...args);
738
+ *
739
+ * const [parent, collection, documents, ids, options, userId] = args;
740
+ * if (collection === "items") {
741
+ * options; // Will be narrowed.
742
+ * }
743
+ * }
744
+ * }
745
+ * ```
746
+ */
747
+ protected override _onDeleteDescendantDocuments(...args: ActorDelta.OnDeleteDescendantDocumentsArgs): void;
748
+
749
+ // context: not null (destructured)
750
+ static override defaultName(
751
+ context?: Document.DefaultNameContext<"ActorDelta", NonNullable<ActorDelta.Parent>>,
752
+ ): string;
753
+
754
+ /** @remarks `context.parent` is required as creation requires one */
755
+ static override createDialog(
756
+ data: Document.CreateDialogData<ActorDelta.CreateData> | undefined,
757
+ context: Document.CreateDialogContext<"ActorDelta", NonNullable<ActorDelta.Parent>>,
758
+ ): Promise<ActorDelta.Stored | null | undefined>;
759
+
760
+ // options: not null (parameter default only)
761
+ static override fromDropData(
762
+ data: Document.DropData<ActorDelta.Implementation>,
763
+ options?: AnyObject,
764
+ ): Promise<ActorDelta.Implementation | undefined>;
765
+
766
+ static override fromImport(
767
+ source: ActorDelta.Source,
768
+ context?: Document.FromImportContext<ActorDelta.Parent> | null,
769
+ ): Promise<ActorDelta.Implementation>;
770
+
771
+ override _onClickDocumentLink(event: MouseEvent): ClientDocument.OnClickDocumentLinkReturn;
98
772
  }
99
773
  }