@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,24 +1,20 @@
1
- import type { ConstructorOf, InexactPartial } from "../../../../../types/utils.d.mts";
1
+ import type { Brand, Coalesce, Identity, InexactPartial, NullishProps } from "#utils";
2
2
  import type PointEffectSourceMixin from "../../../../client-esm/canvas/sources/point-effect-source.d.mts";
3
3
 
4
4
  declare global {
5
- interface PointSourcePolygonConfig extends PointSourcePolygon._Config {
6
- /** The type of polygon being computed */
7
- type: PointSourcePolygon.PolygonType;
8
- }
9
-
10
5
  /**
11
6
  * An extension of the default PIXI.Polygon which is used to represent the line of sight for a point source.
12
7
  */
13
8
  abstract class PointSourcePolygon extends PIXI.Polygon {
9
+ /**
10
+ * @remarks This is protected because `new PointSourcePolygon` does not sufficiently initialize the class; Use the static `create` method instead.
11
+ */
12
+ protected constructor(...args: ConstructorParameters<typeof PIXI.Polygon>);
13
+
14
14
  /**
15
15
  * Customize how wall direction of one-way walls is applied
16
16
  */
17
- static readonly WALL_DIRECTION_MODES: Readonly<{
18
- NORMAL: 0;
19
- REVERSED: 1;
20
- BOTH: 2;
21
- }>;
17
+ static WALL_DIRECTION_MODES: PointSourcePolygon.WallDirectionModes;
22
18
 
23
19
  /**
24
20
  * The rectangular bounds of this polygon
@@ -28,14 +24,15 @@ declare global {
28
24
 
29
25
  /**
30
26
  * The origin point of the source polygon.
27
+ * @remarks Not initialized to any value, but immediately set by `PointSourcePolygon#initialize`
31
28
  */
32
29
  origin: Canvas.Point;
33
30
 
34
31
  /**
35
32
  * The configuration of this polygon.
36
- * @defaultValue `{}`
33
+ * @remarks Initialized as `{}` but immediately filled by `PointSourcePolygon#initialize`
37
34
  */
38
- config: PointSourcePolygonConfig;
35
+ config: PointSourcePolygon.StoredConfig;
39
36
 
40
37
  /**
41
38
  * An indicator for whether this polygon is constrained by some boundary shape?
@@ -48,20 +45,18 @@ declare global {
48
45
  * @param origin - The origin point to benchmark
49
46
  * @param config - The polygon configuration to benchmark
50
47
  */
51
- static benchmark(iterations: number, origin: Canvas.Point, config: PointSourcePolygonConfig): Promise<void>;
48
+ static benchmark(iterations: number, origin: Canvas.Point, config: PointSourcePolygon.Config): Promise<void>;
52
49
 
53
50
  /**
54
51
  * Compute the polygon given a point origin and radius
55
52
  * @param origin - The origin source point
56
53
  * @param config - Configuration options which customize the polygon computation
57
- * (default: `{}`)
58
54
  * @returns The computed polygon instance
55
+ * @remarks Subclasses must implement a `.create` override to accurately type the return.
56
+ *
57
+ * Despite being a `={}` parameter, a `config` object with a valid `type` property must be passed
59
58
  */
60
- static create<T extends ConstructorOf<PointSourcePolygon>>(
61
- this: T,
62
- origin: Canvas.Point,
63
- config?: Parameters<InstanceType<NoInfer<T>>["initialize"]>[1],
64
- ): InstanceType<T>;
59
+ static create(origin: Canvas.Point, config: PointSourcePolygon.Config): unknown;
65
60
 
66
61
  /**
67
62
  * Create a clone of this polygon.
@@ -86,7 +81,7 @@ declare global {
86
81
  * @param origin - The provided polygon origin
87
82
  * @param config - The provided configuration object
88
83
  */
89
- initialize(origin: Canvas.Point, config: PointSourcePolygonConfig): void;
84
+ initialize(origin: Canvas.Point, config: PointSourcePolygon.Config): void;
90
85
 
91
86
  /**
92
87
  * Apply a constraining boundary shape to an existing PointSourcePolygon.
@@ -97,11 +92,18 @@ declare global {
97
92
  * @returns A new constrained polygon
98
93
  */
99
94
  applyConstraint(
100
- constraint: PIXI.Circle | PIXI.Rectangle | PIXI.Polygon,
101
- intersectionOptions?: Record<string, unknown>,
102
- ): PointSourcePolygon;
95
+ constraint: PIXI.Polygon,
96
+ intersectionOptions?: PIXI.Polygon.IntersectPolygonOptions, // not:null (property set on it via `??=`)
97
+ ): this;
98
+ applyConstraint(constraint: PIXI.Circle, intersectionOptions?: PIXI.Circle.WACIntersectPolygonOptions): this;
99
+ applyConstraint(constraint: PIXI.Circle, intersectionOptions?: PIXI.Circle.ClipperLibIntersectPolygonOptions): this;
100
+ applyConstraint(constraint: PIXI.Rectangle, intersectionOptions?: PIXI.Rectangle.WACIntersectPolygonOptions): this;
101
+ applyConstraint(
102
+ constraint: PIXI.Rectangle,
103
+ intersectionOptions?: PIXI.Rectangle.ClipperLibIntersectPolygonOptions,
104
+ ): this;
103
105
 
104
- contains(x: number, y: number): boolean;
106
+ override contains(x: number, y: number): boolean;
105
107
 
106
108
  /**
107
109
  * Constrain polygon points by applying boundary shapes.
@@ -117,27 +119,17 @@ declare global {
117
119
  * @param mode - The collision mode to test: "any", "all", or "closest"
118
120
  * (default: "all")
119
121
  * @returns The collision result depends on the mode of the test:
120
- * * any: returns a boolean for whether any collision occurred
121
- * * all: returns a sorted array of PolygonVertex instances
122
- * * closest: returns a PolygonVertex instance or null
122
+ * - any: returns a boolean for whether any collision occurred
123
+ * - all: returns a sorted array of PolygonVertex instances
124
+ * - closest: returns a PolygonVertex instance or null
125
+ * @remarks Despite being an `={}` parameter, `options` is required as it must be a valid
126
+ * `PointSourcePolygon.Config`, which has a required property (`type`)
123
127
  */
124
- static testCollision<Mode extends PointSourcePolygon.CollisionModes>(
128
+ static testCollision<Mode extends PointSourcePolygon.CollisionModes | undefined = undefined>(
125
129
  origin: Canvas.Point,
126
130
  destination: Canvas.Point,
127
- {
128
- mode,
129
- ...config
130
- }: {
131
- /**
132
- * The collision mode to test: "any", "all", or "closest"
133
- * (default: "all")
134
- */
135
- mode?: Mode;
136
-
137
- /** The configuration that defines a certain Polygon type */
138
- config?: PointSourcePolygonConfig;
139
- },
140
- ): PointSourcePolygon.TestCollision<Mode>;
131
+ { mode, ...config }: PointSourcePolygon.TestCollisionConfig<Mode>,
132
+ ): PointSourcePolygon.TestCollision<Coalesce<Mode, "all">>;
141
133
 
142
134
  /**
143
135
  * Determine the set of collisions which occurs for a Ray.
@@ -166,8 +158,9 @@ declare global {
166
158
  * Augment a PointSourcePolygon by adding additional coverage for shapes permitted by threshold walls.
167
159
  * @param polygon - The computed polygon
168
160
  * @returns The augmented polygon
161
+ * @remarks Mutates and returns the same reference it's passed, not a new polygon
169
162
  */
170
- static applyThresholdAttenuation(polygon: PointSourcePolygon): PointSourcePolygon;
163
+ static applyThresholdAttenuation<PolyType extends PointSourcePolygon>(polygon: PolyType): PolyType;
171
164
 
172
165
  /**
173
166
  * @deprecated since v11, will be removed in v13
@@ -180,22 +173,109 @@ declare global {
180
173
  }
181
174
 
182
175
  namespace PointSourcePolygon {
176
+ interface Any extends AnyPointSourcePolygon {}
177
+ interface AnyConstructor extends Identity<typeof AnyPointSourcePolygon> {}
178
+
179
+ type WALL_DIRECTION_MODES = Brand<number, "PointSourcePolygon.WALL_DIRECTION_MODES">;
180
+
181
+ interface WallDirectionModes {
182
+ readonly NORMAL: 0 & WALL_DIRECTION_MODES;
183
+ readonly REVERSED: 1 & WALL_DIRECTION_MODES;
184
+ readonly BOTH: 2 & WALL_DIRECTION_MODES;
185
+ }
186
+
183
187
  /** @internal */
184
- type _Config = InexactPartial<{
185
- /** The angle of emission, if limited */
186
- angle: number;
188
+ type _TestCollisionConfig<Mode> = InexactPartial<{
189
+ /**
190
+ * The collision mode to test: "any", "all", or "closest"
191
+ * @defaultValue `"all"`
192
+ * @remarks Can't be `null` as it only has a parameter default
193
+ */
194
+ mode: Mode;
195
+ }>;
187
196
 
188
- /** The desired density of padding rays, a number per PI */
189
- density: number;
197
+ interface TestCollisionConfig<Mode> extends _TestCollisionConfig<Mode>, Config {}
198
+
199
+ /**
200
+ * @internal
201
+ * @privateRemarks Properties of the config that get set in `#initialize` or elsewhere with no respect to their passed value
202
+ */
203
+ interface _ComputedConfig {
204
+ /**
205
+ * Does this polygon have a limited radius?
206
+ * @remarks `true` if `(cfg.radius > 0) && (cfg.radius < canvas.dimensions.maxR)`
207
+ */
208
+ hasLimitedRadius: boolean;
209
+
210
+ /**
211
+ * Does this polygon have a limited angle?
212
+ * @remarks `true` if `cfg.angle !== 360`
213
+ */
214
+ hasLimitedAngle: boolean;
215
+ }
216
+
217
+ /**
218
+ * @internal
219
+ * @privateRemarks Properties of the config that might be omitted but can't be explicitly `undefined`
220
+ */
221
+ interface _OptionalOnlyConfig {
222
+ /**
223
+ * The object (if any) that spawned this polygon.
224
+ * @remarks Not guaranteed by `PointSourcePolygon#initialize` but will exist in all configs created by `PointEffectSourceMixin` subclasses. No default provided
225
+ * @privateRemarks Foundry types this as `PointSource` which is neither a typedef nor a class, not even a mixin class name. The type here matches usage and tracks with what they probably meant.
226
+ */
227
+ source?: PointEffectSourceMixin.AnyMixed;
228
+
229
+ /**
230
+ * The external radius of the source
231
+ * @remarks Can't be `undefined` or `null` or its use in math would produce `NaN`s.
232
+ *
233
+ * Not guaranteed by `PointSourcePolygon#initialize` but will exist in all configs created by `PointEffectSourceMixin` subclasses.
234
+ */
235
+ externalRadius?: number;
236
+ }
190
237
 
191
- /** A limited radius of the resulting polygon */
238
+ /**
239
+ * @internal
240
+ * @privateRemarks Properties of the config that have defaults for nullish values in `#initialize`, and thus are guaranteed in the stored config
241
+ */
242
+ interface _BaseConfig {
243
+ /**
244
+ * A limited radius of the resulting polygon
245
+ * @defaultValue `canvas.dimensions.maxR`
246
+ */
192
247
  radius: number;
193
248
 
194
- /** The direction of facing, required if the angle is limited */
249
+ /**
250
+ * The desired density of padding rays, a number per PI
251
+ * @defaultValue `PIXI.Circle.approximateVertexDensity(cfg.radius)`
252
+ */
253
+ density: number;
254
+
255
+ /**
256
+ * The angle of emission, if limited
257
+ * @defaultValue `360`
258
+ */
259
+ angle: number;
260
+
261
+ /**
262
+ * The direction of facing, required if the angle is limited
263
+ * @defaultValue `0`
264
+ */
195
265
  rotation: number;
196
266
 
197
- /** Customize how wall direction of one-way walls is applied */
198
- wallDirectionMode: number;
267
+ /**
268
+ * Does this polygon use the Scene inner or outer bounding rectangle
269
+ * @defaultValue `true` if `type === "sight"` and the origin point is inside `canvas.dimensions.sceneRect` else `false`
270
+ * @remarks Computed if not provided or passed nullish.
271
+ */
272
+ useInnerBounds: boolean;
273
+
274
+ /**
275
+ * Customize how wall direction of one-way walls is applied
276
+ * @defaultValue `PointSourcePolygon.WALL_DIRECTION_MODES.NORMAL`
277
+ */
278
+ wallDirectionMode: PointSourcePolygon.WALL_DIRECTION_MODES;
199
279
 
200
280
  /**
201
281
  * Compute the polygon with threshold wall constraints applied
@@ -209,41 +289,56 @@ declare global {
209
289
  */
210
290
  includeDarkness: boolean;
211
291
 
212
- /** Priority when it comes to ignore edges from darkness sources */
213
- priority: number;
214
-
215
- /** Display debugging visualization and logging for the polygon */
216
- debug: boolean;
292
+ /**
293
+ * Limiting polygon boundary shapes
294
+ * @defaultValue `[]`
295
+ * @remarks Never passed in Foundry practice
296
+ */
297
+ boundaryShapes: Array<BoundaryShapes>;
217
298
 
218
- /** The object (if any) that spawned this polygon. */
219
- source: PointEffectSourceMixin.AnyMixed;
299
+ /**
300
+ * Display debugging visualization and logging for the polygon
301
+ * @remarks Overridden `true` if `CONFIG.debug.polygons` is truthy
302
+ */
303
+ debug?: boolean;
220
304
 
221
- /** Limiting polygon boundary shapes */
222
- boundaryShapes: Array<PIXI.Rectangle | PIXI.Circle | PIXI.Polygon>;
305
+ /**
306
+ * Priority when it comes to ignore edges from darkness sources
307
+ * @remarks This is listed in the typedef, but is not in use by Foundry in 12.331
308
+ */
309
+ priority?: number;
310
+ }
223
311
 
224
- /** Does this polygon use the Scene inner or outer bounding rectangle */
225
- readonly useInnerBounds: boolean;
312
+ /**
313
+ * @internal
314
+ * @privateRemarks The only property required in all configs
315
+ */
316
+ interface _RequiredConfig {
317
+ /** The type of polygon being computed */
318
+ type: PolygonType;
319
+ }
226
320
 
227
- /** Does this polygon have a limited radius? */
228
- readonly hasLimitedRadius: boolean;
321
+ interface StoredConfig extends _RequiredConfig, _BaseConfig, _OptionalOnlyConfig, _ComputedConfig {}
229
322
 
230
- /** Does this polygon have a limited angle? */
231
- readonly hasLimitedAngle: boolean;
323
+ interface Config extends _RequiredConfig, NullishProps<_BaseConfig>, _OptionalOnlyConfig {}
232
324
 
233
- /** The computed bounding box for the polygon */
234
- readonly boundingBox: PIXI.Rectangle;
235
- }>;
325
+ type BoundaryShapes = PIXI.Rectangle | PIXI.Circle | PIXI.Polygon;
236
326
 
237
327
  type PolygonType = "light" | "sight" | "sound" | "move" | "universal";
238
328
 
239
329
  type CollisionModes = "any" | "all" | "closest";
240
330
 
241
- interface CollisionTypes {
331
+ /** @internal */
332
+ interface _CollisionTypesReturnMap {
242
333
  any: boolean;
243
- closest: foundry.canvas.edges.PolygonVertex;
244
- all: foundry.canvas.edges.PolygonVertex[] | null;
334
+ closest: foundry.canvas.edges.PolygonVertex | null;
335
+ all: foundry.canvas.edges.PolygonVertex[];
245
336
  }
246
337
 
247
- type TestCollision<Mode extends CollisionModes> = CollisionTypes[Mode];
338
+ type TestCollision<Mode extends CollisionModes> = _CollisionTypesReturnMap[Mode];
248
339
  }
249
340
  }
341
+
342
+ declare abstract class AnyPointSourcePolygon extends PointSourcePolygon {
343
+ constructor(...args: never);
344
+ }
@@ -1,140 +1,143 @@
1
- import type { NullishProps } from "../../../../types/utils.d.mts";
1
+ import type { NullishProps } from "#utils";
2
2
  import type { LineCircleIntersection } from "../../../common/utils/geometry.d.mts";
3
+ import * as _PIXI from "pixi.js";
3
4
 
4
- declare module "pixi.js" {
5
- interface Circle {
6
- /**
7
- * Determine the center of the circle.
8
- * Trivial, but used to match center method for other shapes.
9
- */
10
- get center(): PIXI.Point;
11
-
12
- /**
13
- * Determine if a point is on or nearly on this circle.
14
- * @param point - Point to test
15
- * @param epsilon - Tolerated margin of error
16
- * (default: `1e-08`)
17
- * @returns Is the point on the circle within the allowed tolerance?
18
- */
19
- pointIsOn(point: Canvas.Point, epsilon: number): boolean;
20
-
21
- /**
22
- * Get all intersection points on this circle for a segment A|B
23
- * Intersections are sorted from A to B.
24
- * @param a - The first endpoint on segment A|B
25
- * @param b - The second endpoint on segment A|B
26
- * @returns Points where the segment A|B intersects the circle
27
- */
28
- segmentIntersections(a: Canvas.Point, b: Canvas.Point): LineCircleIntersection["intersections"];
29
-
30
- /**
31
- * Calculate an x,y point on this circle's circumference given an angle
32
- * 0: due east
33
- * π / 2: due south
34
- * π or -π: due west
35
- * -π/2: due north
36
- * @param angle - Angle of the point, in radians
37
- * @returns The point on the circle at the given angle
38
- */
39
- pointAtAngle(angle: number): Canvas.Point;
40
-
41
- /**
42
- * Get all the points for a polygon approximation of this circle between two points.
43
- * The two points can be anywhere in 2d space. The intersection of this circle with the line from this circle center
44
- * to the point will be used as the start or end point, respectively.
45
- * This is used to draw the portion of the circle (the arc) between two intersection points on this circle.
46
- * @param a - Point in 2d space representing the start point
47
- * @param b - Point in 2d space representing the end point
48
- * @param options - Options passed on to the pointsForArc method
49
- * @returns An array of points arranged clockwise from start to end
50
- */
51
- pointsBetween(a: Canvas.Point, b: Canvas.Point, options?: Circle.PointsForArcOptions): Canvas.Point[];
52
-
53
- /**
54
- * Get the points that would approximate a circular arc along this circle, given a starting and ending angle.
55
- * Points returned are clockwise. If from and to are the same, a full circle will be returned.
56
- * @param fromAngle - Starting angle, in radians. π is due north, π/2 is due east
57
- * @param toAngle - Ending angle, in radians
58
- * @param options - Options which affect how the circle is converted
59
- * @returns An array of points along the requested arc
60
- */
61
- pointsForArc(fromAngle: number, toAngle: number, options?: Circle.PointsForArcOptions): Canvas.Point[];
62
-
63
- /**
64
- * Approximate this PIXI.Circle as a PIXI.Polygon
65
- * @param options - Options forwarded on to the pointsForArc method
66
- * @returns The Circle expressed as a PIXI.Polygon
67
- */
68
- toPolygon(options?: Circle.PointsForArcOptions): PIXI.Polygon;
69
-
70
- /**
71
- * The recommended vertex density for the regular polygon approximation of a circle of a given radius.
72
- * Small radius circles have fewer vertices. The returned value will be rounded up to the nearest integer.
73
- * See the formula described at:
74
- * https://math.stackexchange.com/questions/4132060/compute-number-of-regular-polgy-sides-to-approximate-circle-to-defined-precision
75
- * @param radius - Circle radius
76
- * @param epsilon - The maximum tolerable distance between an approximated line segment and the true radius.
77
- * A larger epsilon results in fewer points for a given radius. (default: `1`)
78
- * @returns The number of points for the approximated polygon
79
- */
80
- approximateVertexDensity(radius: number, epsilon?: number): number;
81
-
82
- /**
83
- * Intersect this PIXI.Circle with a PIXI.Polygon.
84
- * @param polygon - A PIXI.Polygon
85
- * @param options - Options which configure how the intersection is computed
86
- * @returns The intersected polygon
87
- */
88
- intersectPolygon(polygon: PIXI.Polygon, options?: PIXI.Circle.WACIntersectPolygonOptions): PIXI.Polygon;
89
- intersectPolygon(polygon: PIXI.Polygon, options?: PIXI.Circle.ClipperLibIntersectPolygonOptions): PIXI.Polygon;
90
- intersectPolygon(polygon: PIXI.Polygon, options?: PIXI.Circle.IntersectClipperOptions): PIXI.Polygon;
91
-
92
- /**
93
- * Intersect this PIXI.Circle with an array of ClipperPoints.
94
- * Convert the circle to a Polygon approximation and use intersectPolygon.
95
- * In the future we may replace this with more specialized logic which uses the line-circle intersection formula.
96
- * @param clipperPoints - Array of ClipperPoints generated by PIXI.Polygon.toClipperPoints()
97
- * @param options - Options which configure how the intersection is computed
98
- * @returns The intersected polygon
99
- */
100
- intersectClipper(
101
- clipperPoints: PIXI.Polygon.ClipperPoint[],
102
- options?: PIXI.Circle.IntersectClipperOptions,
103
- ): PIXI.Polygon;
104
- }
5
+ declare global {
6
+ namespace PIXI {
7
+ interface Circle {
8
+ /**
9
+ * Determine the center of the circle.
10
+ * Trivial, but used to match center method for other shapes.
11
+ */
12
+ get center(): PIXI.Point;
105
13
 
106
- namespace Circle {
107
- interface WACIntersectPolygonOptions extends PIXI.Rectangle.WACIntersectPolygonOptions {}
14
+ /**
15
+ * Determine if a point is on or nearly on this circle.
16
+ * @param point - Point to test
17
+ * @param epsilon - Tolerated margin of error
18
+ * (default: `1e-08`)
19
+ * @returns Is the point on the circle within the allowed tolerance?
20
+ */
21
+ pointIsOn(point: Canvas.Point, epsilon?: number): boolean;
108
22
 
109
- /** @privateRemarks Property description intentionally omitted to avoid redundant intellisense on overloaded method */
110
- interface ClipperLibIntersectPolygonOptions extends PIXI.Rectangle.ClipperLibIntersectPolygonOptions {
111
- density: number;
112
- }
23
+ /**
24
+ * Get all intersection points on this circle for a segment A|B
25
+ * Intersections are sorted from A to B.
26
+ * @param a - The first endpoint on segment A|B
27
+ * @param b - The second endpoint on segment A|B
28
+ * @returns Points where the segment A|B intersects the circle
29
+ */
30
+ segmentIntersections(a: Canvas.Point, b: Canvas.Point): LineCircleIntersection["intersections"];
113
31
 
114
- /** @privateRemarks Property description intentionally omitted to avoid redundant intellisense on overloaded method */
115
- interface IntsectPolygonOptions extends PIXI.Rectangle.IntersectPolygonOptions {
116
- density: number;
117
- }
32
+ /**
33
+ * Calculate an x,y point on this circle's circumference given an angle
34
+ * 0: due east
35
+ * π / 2: due south
36
+ * π or -π: due west
37
+ * -π/2: due north
38
+ * @param angle - Angle of the point, in radians
39
+ * @returns The point on the circle at the given angle
40
+ */
41
+ pointAtAngle(angle: number): Canvas.Point;
118
42
 
119
- /** @internal Helper type to simplify use of optionality- and nullish-permissiveness-modifying helpers */
120
- type _PointsForArcOptions = NullishProps<{
121
43
  /**
122
- * The number of points which defines the density of approximation
123
- * @defaultValue `this.constructor.approximateVertexDensity(this.radius)`
44
+ * Get all the points for a polygon approximation of this circle between two points.
45
+ * The two points can be anywhere in 2d space. The intersection of this circle with the line from this circle center
46
+ * to the point will be used as the start or end point, respectively.
47
+ * This is used to draw the portion of the circle (the arc) between two intersection points on this circle.
48
+ * @param a - Point in 2d space representing the start point
49
+ * @param b - Point in 2d space representing the end point
50
+ * @param options - Options passed on to the pointsForArc method
51
+ * @returns An array of points arranged clockwise from start to end
124
52
  */
125
- density: number;
53
+ pointsBetween(a: Canvas.Point, b: Canvas.Point, options?: Circle.PointsForArcOptions): Canvas.Point[];
126
54
 
127
55
  /**
128
- * Whether to include points at the circle where the arc starts and ends
129
- * @defaultValue `true`
56
+ * Get the points that would approximate a circular arc along this circle, given a starting and ending angle.
57
+ * Points returned are clockwise. If from and to are the same, a full circle will be returned.
58
+ * @param fromAngle - Starting angle, in radians. π is due north, π/2 is due east
59
+ * @param toAngle - Ending angle, in radians
60
+ * @param options - Options which affect how the circle is converted
61
+ * @returns An array of points along the requested arc
130
62
  */
131
- includeEndpoints: boolean;
132
- }>;
63
+ pointsForArc(fromAngle: number, toAngle: number, options?: Circle.PointsForArcOptions): Canvas.Point[];
133
64
 
134
- interface PointsForArcOptions extends _PointsForArcOptions {}
65
+ /**
66
+ * Approximate this PIXI.Circle as a PIXI.Polygon
67
+ * @param options - Options forwarded on to the pointsForArc method
68
+ * @returns The Circle expressed as a PIXI.Polygon
69
+ */
70
+ toPolygon(options?: Circle.PointsForArcOptions): PIXI.Polygon;
135
71
 
136
- interface IntersectClipperOptions
137
- extends PIXI.Polygon.IntersectClipperOptions,
138
- Pick<PIXI.Circle.PointsForArcOptions, "density"> {}
72
+ /**
73
+ * Intersect this PIXI.Circle with a PIXI.Polygon.
74
+ * @param polygon - A PIXI.Polygon
75
+ * @param options - Options which configure how the intersection is computed
76
+ * @returns The intersected polygon
77
+ * @remarks Slightly bugged in v12; if `options.weilerAtherton` is falsey, it will not pass on `options.clipType` to `PIXI.Polygon#intersectPolygon`,
78
+ * forcing the default of `ClipperLib.ClipTypes.ctIntersection`
79
+ */
80
+ intersectPolygon(polygon: PIXI.Polygon, options?: PIXI.Circle.WACIntersectPolygonOptions): PIXI.Polygon;
81
+ intersectPolygon(polygon: PIXI.Polygon, options?: PIXI.Circle.ClipperLibIntersectPolygonOptions): PIXI.Polygon;
82
+
83
+ /**
84
+ * Intersect this PIXI.Circle with an array of ClipperPoints.
85
+ * Convert the circle to a Polygon approximation and use intersectPolygon.
86
+ * In the future we may replace this with more specialized logic which uses the line-circle intersection formula.
87
+ * @param clipperPoints - Array of ClipperPoints generated by PIXI.Polygon.toClipperPoints()
88
+ * @param options - Options which configure how the intersection is computed
89
+ * @returns The intersected polygon
90
+ */
91
+ intersectClipper(
92
+ clipperPoints: PIXI.Polygon.ClipperPoint[],
93
+ options?: PIXI.Circle.IntersectClipperOptions,
94
+ ): PIXI.Polygon;
95
+ }
96
+
97
+ namespace Circle {
98
+ /** @remarks The options for `intersectPolygon` when `weilerAtherton` is true (or not provided) */
99
+ interface WACIntersectPolygonOptions extends PIXI.Rectangle.WACIntersectPolygonOptions {}
100
+
101
+ /** @remarks The options for `intersectPolygon` when `weilerAtherton` is false. */
102
+ interface ClipperLibIntersectPolygonOptions
103
+ extends PIXI.Rectangle.ClipperLibIntersectPolygonOptions,
104
+ Pick<PIXI.Circle.PointsForArcOptions, "density"> {}
105
+
106
+ /** @internal Helper type to simplify use of optionality- and nullish-permissiveness-modifying helpers */
107
+ type _PointsForArcOptions = NullishProps<{
108
+ /**
109
+ * The number of points which defines the density of approximation
110
+ * @defaultValue `PIXI.Circle.approximateVertexDensity(this.radius)`
111
+ * @remarks Default provided by `??=` in `pointsForArc` function body
112
+ */
113
+ density: number;
114
+
115
+ /**
116
+ * Whether to include points at the circle where the arc starts and ends
117
+ * @defaultValue `true`
118
+ */
119
+ includeEndpoints: boolean;
120
+ }>;
121
+
122
+ interface PointsForArcOptions extends _PointsForArcOptions {}
123
+
124
+ interface IntersectClipperOptions
125
+ extends PIXI.Polygon.IntersectClipperOptions,
126
+ Pick<PIXI.Circle.PointsForArcOptions, "density"> {}
127
+ }
128
+
129
+ class Circle extends _PIXI.Circle {
130
+ /**
131
+ * The recommended vertex density for the regular polygon approximation of a circle of a given radius.
132
+ * Small radius circles have fewer vertices. The returned value will be rounded up to the nearest integer.
133
+ * See the formula described at:
134
+ * https://math.stackexchange.com/questions/4132060/compute-number-of-regular-polgy-sides-to-approximate-circle-to-defined-precision
135
+ * @param radius - Circle radius
136
+ * @param epsilon - The maximum tolerable distance between an approximated line segment and the true radius.
137
+ * A larger epsilon results in fewer points for a given radius. (default: `1`)
138
+ * @returns The number of points for the approximated polygon
139
+ */
140
+ static approximateVertexDensity(radius: number, epsilon?: number): number;
141
+ }
139
142
  }
140
143
  }
@@ -3,7 +3,9 @@ export {};
3
3
  declare global {
4
4
  namespace PIXI {
5
5
  namespace Graphics {
6
- type Path = [number[] | PIXI.IPointData[] | PIXI.Polygon] | Array<number | PIXI.IPointData>;
6
+ type Path =
7
+ | [points: number[] | PIXI.IPointData[] | PIXI.Polygon, smoothingFactor?: number]
8
+ | Array<number | PIXI.IPointData>;
7
9
  }
8
10
  }
9
11
  }
@@ -1,11 +1,11 @@
1
- import type { AnyObject } from "../../../../types/utils.d.mts";
1
+ import type { Identity } from "#utils";
2
2
 
3
3
  declare global {
4
4
  /**
5
5
  * A custom Transform class allowing to observe changes with a callback.
6
6
  * @privateRemarks Scope extends object is intentional; `"The scope bound to an ObservableTransform class must be a valid object/class."`
7
7
  */
8
- class ObservableTransform<CB extends (this: Scope) => unknown, Scope extends AnyObject> extends PIXI.Transform {
8
+ class ObservableTransform<CB extends (this: Scope) => unknown, Scope extends object> extends PIXI.Transform {
9
9
  /**
10
10
  *
11
11
  * @param callback - The callback called to observe changes.
@@ -28,10 +28,11 @@ declare global {
28
28
  protected override updateSkew(): void;
29
29
  }
30
30
  namespace ObservableTransform {
31
- type AnyConstructor = typeof AnyObservableTransform;
31
+ interface Any extends AnyObservableTransform {}
32
+ interface AnyConstructor extends Identity<typeof AnyObservableTransform> {}
32
33
  }
33
34
  }
34
35
 
35
36
  declare abstract class AnyObservableTransform extends ObservableTransform<any, any> {
36
- constructor(arg0: never, ...args: never[]);
37
+ constructor(...args: never);
37
38
  }