@league-of-foundry-developers/foundry-vtt-types 0.8.9-7 → 9.238.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/README.md +44 -27
  2. package/index-lenient.d.ts +10 -0
  3. package/index.d.ts +2 -2
  4. package/package.json +43 -15
  5. package/src/foundry/common/abstract/backend.mjs.d.ts +14 -15
  6. package/src/foundry/common/abstract/document.mjs.d.ts +30 -12
  7. package/src/foundry/common/config.mjs/index.d.ts +1 -0
  8. package/src/foundry/common/config.mjs/releaseData.d.ts +98 -0
  9. package/src/foundry/common/constants.mjs.d.ts +402 -213
  10. package/src/foundry/common/data/data.mjs/activeEffectData.d.ts +36 -29
  11. package/src/foundry/common/data/data.mjs/actorData.d.ts +32 -21
  12. package/src/foundry/common/data/data.mjs/adventureData.d.ts +165 -0
  13. package/src/foundry/common/data/data.mjs/ambientLightData.d.ts +45 -124
  14. package/src/foundry/common/data/data.mjs/ambientSoundData.d.ts +49 -77
  15. package/src/foundry/common/data/data.mjs/animationData.d.ts +17 -9
  16. package/src/foundry/common/data/data.mjs/cardData.d.ts +265 -0
  17. package/src/foundry/common/data/data.mjs/cardFaceData.d.ts +66 -0
  18. package/src/foundry/common/data/data.mjs/cardsData.d.ts +238 -0
  19. package/src/foundry/common/data/data.mjs/chatMessageData.d.ts +51 -39
  20. package/src/foundry/common/data/data.mjs/chatSpeakerData.d.ts +18 -11
  21. package/src/foundry/common/data/data.mjs/combatData.d.ts +51 -25
  22. package/src/foundry/common/data/data.mjs/combatantData.d.ts +48 -30
  23. package/src/foundry/common/data/data.mjs/darknessActivation.d.ts +8 -7
  24. package/src/foundry/common/data/data.mjs/drawingData.d.ts +68 -67
  25. package/src/foundry/common/data/data.mjs/effectChangeData.d.ts +21 -25
  26. package/src/foundry/common/data/data.mjs/effectDurationData.d.ts +24 -23
  27. package/src/foundry/common/data/data.mjs/fogExplorationData.d.ts +23 -16
  28. package/src/foundry/common/data/data.mjs/folderData.d.ts +28 -25
  29. package/src/foundry/common/data/data.mjs/index.d.ts +5 -0
  30. package/src/foundry/common/data/data.mjs/itemData.d.ts +26 -18
  31. package/src/foundry/common/data/data.mjs/journalEntryData.d.ts +21 -20
  32. package/src/foundry/common/data/data.mjs/lightData.d.ts +228 -0
  33. package/src/foundry/common/data/data.mjs/macroData.d.ts +52 -35
  34. package/src/foundry/common/data/data.mjs/measuredTemplateData.d.ts +41 -38
  35. package/src/foundry/common/data/data.mjs/noteData.d.ts +47 -37
  36. package/src/foundry/common/data/data.mjs/playlistData.d.ts +55 -26
  37. package/src/foundry/common/data/data.mjs/playlistSoundData.d.ts +32 -16
  38. package/src/foundry/common/data/data.mjs/prototypeTokenData.d.ts +7 -11
  39. package/src/foundry/common/data/data.mjs/rollTableData.d.ts +30 -24
  40. package/src/foundry/common/data/data.mjs/sceneData.d.ts +132 -111
  41. package/src/foundry/common/data/data.mjs/settingData.d.ts +11 -8
  42. package/src/foundry/common/data/data.mjs/tableResultData.d.ts +30 -26
  43. package/src/foundry/common/data/data.mjs/tileData.d.ts +43 -36
  44. package/src/foundry/common/data/data.mjs/tileOcclusion.d.ts +10 -9
  45. package/src/foundry/common/data/data.mjs/tokenBarData.d.ts +6 -3
  46. package/src/foundry/common/data/data.mjs/tokenData.d.ts +105 -157
  47. package/src/foundry/common/data/data.mjs/userData.d.ts +111 -33
  48. package/src/foundry/common/data/data.mjs/videoData.d.ts +9 -8
  49. package/src/foundry/common/data/data.mjs/wallData.d.ts +67 -39
  50. package/src/foundry/common/data/fields.mjs.d.ts +180 -83
  51. package/src/foundry/common/documents.mjs/baseActiveEffect.d.ts +9 -3
  52. package/src/foundry/common/documents.mjs/baseActor.d.ts +17 -45
  53. package/src/foundry/common/documents.mjs/baseAdventure.d.ts +38 -0
  54. package/src/foundry/common/documents.mjs/baseAmbientLight.d.ts +3 -0
  55. package/src/foundry/common/documents.mjs/baseAmbientSound.d.ts +3 -1
  56. package/src/foundry/common/documents.mjs/baseCard.d.ts +62 -0
  57. package/src/foundry/common/documents.mjs/baseCards.d.ts +39 -0
  58. package/src/foundry/common/documents.mjs/baseChatMessage.d.ts +3 -0
  59. package/src/foundry/common/documents.mjs/baseCombat.d.ts +5 -2
  60. package/src/foundry/common/documents.mjs/baseCombatant.d.ts +10 -1
  61. package/src/foundry/common/documents.mjs/baseDrawing.d.ts +11 -1
  62. package/src/foundry/common/documents.mjs/baseFogExploration.d.ts +4 -3
  63. package/src/foundry/common/documents.mjs/baseFolder.d.ts +10 -1
  64. package/src/foundry/common/documents.mjs/baseItem.d.ts +11 -29
  65. package/src/foundry/common/documents.mjs/baseJournalEntry.d.ts +3 -0
  66. package/src/foundry/common/documents.mjs/baseMacro.d.ts +16 -14
  67. package/src/foundry/common/documents.mjs/baseMeasuredTemplate.d.ts +4 -1
  68. package/src/foundry/common/documents.mjs/baseNote.d.ts +2 -2
  69. package/src/foundry/common/documents.mjs/basePlaylist.d.ts +1 -0
  70. package/src/foundry/common/documents.mjs/basePlaylistSound.d.ts +2 -1
  71. package/src/foundry/common/documents.mjs/baseRollTable.d.ts +3 -0
  72. package/src/foundry/common/documents.mjs/baseScene.d.ts +1 -0
  73. package/src/foundry/common/documents.mjs/baseSetting.d.ts +1 -0
  74. package/src/foundry/common/documents.mjs/baseTableResult.d.ts +10 -3
  75. package/src/foundry/common/documents.mjs/baseTile.d.ts +1 -0
  76. package/src/foundry/common/documents.mjs/baseToken.d.ts +3 -0
  77. package/src/foundry/common/documents.mjs/baseUser.d.ts +7 -1
  78. package/src/foundry/common/documents.mjs/baseWall.d.ts +7 -10
  79. package/src/foundry/common/documents.mjs/index.d.ts +3 -0
  80. package/src/foundry/common/module.mjs.d.ts +3 -0
  81. package/src/foundry/common/packages.mjs/moduleData.d.ts +12 -9
  82. package/src/foundry/common/packages.mjs/packageAuthorData.d.ts +24 -24
  83. package/src/foundry/common/packages.mjs/packageCompendiumData.d.ts +27 -21
  84. package/src/foundry/common/packages.mjs/packageData.d.ts +108 -82
  85. package/src/foundry/common/packages.mjs/packageDependencyData.d.ts +18 -11
  86. package/src/foundry/common/packages.mjs/packageLanguageData.d.ts +16 -15
  87. package/src/foundry/common/packages.mjs/systemData.d.ts +21 -20
  88. package/src/foundry/common/packages.mjs/tagPackageAvailability.d.ts +3 -3
  89. package/src/foundry/common/packages.mjs/worldData.d.ts +29 -18
  90. package/src/foundry/common/types.mjs.d.ts +100 -0
  91. package/src/foundry/common/utils/helpers.mjs.d.ts +27 -2
  92. package/src/foundry/common/utils/primitives.mjs.d.ts +99 -16
  93. package/src/foundry/foundry.js/application.d.ts +4 -7
  94. package/src/foundry/foundry.js/applications/cameraViews.d.ts +36 -31
  95. package/src/foundry/foundry.js/applications/compendium.d.ts +5 -2
  96. package/src/foundry/foundry.js/applications/filePicker.d.ts +116 -116
  97. package/src/foundry/foundry.js/applications/formApplication.d.ts +2 -2
  98. package/src/foundry/foundry.js/applications/formApplications/combatTrackerConfig.d.ts +20 -27
  99. package/src/foundry/foundry.js/applications/formApplications/defaultTokenConfig.d.ts +66 -0
  100. package/src/foundry/foundry.js/applications/formApplications/documentSheet.d.ts +1 -1
  101. package/src/foundry/foundry.js/applications/formApplications/documentSheets/activeEffectConfig.d.ts +2 -2
  102. package/src/foundry/foundry.js/applications/formApplications/documentSheets/actorSheet.d.ts +6 -3
  103. package/src/foundry/foundry.js/applications/formApplications/documentSheets/ambientLightConfig.d.ts +104 -0
  104. package/src/foundry/foundry.js/applications/formApplications/documentSheets/ambientSoundConfig.d.ts +1 -1
  105. package/src/foundry/foundry.js/applications/formApplications/{folderConfig.d.ts → documentSheets/folderConfig.d.ts} +3 -3
  106. package/src/foundry/foundry.js/applications/formApplications/documentSheets/index.d.ts +4 -0
  107. package/src/foundry/foundry.js/applications/formApplications/documentSheets/lightConfig.d.ts +5 -79
  108. package/src/foundry/foundry.js/applications/formApplications/documentSheets/measuredTemplateConfig.d.ts +60 -0
  109. package/src/foundry/foundry.js/applications/formApplications/documentSheets/noteConfig.d.ts +72 -0
  110. package/src/foundry/foundry.js/applications/formApplications/documentSheets/permissionControl.d.ts +5 -5
  111. package/src/foundry/foundry.js/applications/formApplications/documentSheets/playlistConfig.d.ts +1 -1
  112. package/src/foundry/foundry.js/applications/formApplications/documentSheets/rollTableConfig.d.ts +187 -148
  113. package/src/foundry/foundry.js/applications/formApplications/documentSheets/sceneConfig.d.ts +133 -110
  114. package/src/foundry/foundry.js/applications/formApplications/documentSheets/tileConfig.d.ts +1 -1
  115. package/src/foundry/foundry.js/applications/formApplications/drawingConfig.d.ts +93 -95
  116. package/src/foundry/foundry.js/applications/formApplications/entitySheetConfig.d.ts +163 -147
  117. package/src/foundry/foundry.js/applications/formApplications/gridConfig.d.ts +1 -1
  118. package/src/foundry/foundry.js/applications/formApplications/imagePopout.d.ts +1 -1
  119. package/src/foundry/foundry.js/applications/formApplications/index.d.ts +2 -3
  120. package/src/foundry/foundry.js/applications/formApplications/keybindingsConfig.d.ts +257 -0
  121. package/src/foundry/foundry.js/applications/formApplications/moduleManagement.d.ts +41 -23
  122. package/src/foundry/foundry.js/applications/formApplications/settingsConfig.d.ts +95 -86
  123. package/src/foundry/foundry.js/applications/formApplications/tokenConfig.d.ts +142 -155
  124. package/src/foundry/foundry.js/applications/formApplications/wallConfig.d.ts +60 -70
  125. package/src/foundry/foundry.js/applications/formApplications/worldConfig.d.ts +25 -17
  126. package/src/foundry/foundry.js/applications/hotbar.d.ts +5 -4
  127. package/src/foundry/foundry.js/applications/sceneNavigation.d.ts +90 -71
  128. package/src/foundry/foundry.js/applications/sidebarTab.d.ts +1 -1
  129. package/src/foundry/foundry.js/applications/sidebarTabs/chatLog.d.ts +7 -6
  130. package/src/foundry/foundry.js/applications/sidebarTabs/compendiumDirectory.d.ts +2 -2
  131. package/src/foundry/foundry.js/applications/sidebarTabs/sidebarDirectories/actorDirectory.d.ts +13 -56
  132. package/src/foundry/foundry.js/applications/sidebarTabs/sidebarDirectories/cardsDirectory.d.ts +7 -0
  133. package/src/foundry/foundry.js/applications/sidebarTabs/sidebarDirectories/index.d.ts +1 -0
  134. package/src/foundry/foundry.js/applications/sidebarTabs/sidebarDirectories/itemDirectory.d.ts +7 -30
  135. package/src/foundry/foundry.js/applications/sidebarTabs/sidebarDirectories/journalDirectory.d.ts +14 -34
  136. package/src/foundry/foundry.js/applications/sidebarTabs/sidebarDirectories/macroDirectory.d.ts +6 -52
  137. package/src/foundry/foundry.js/applications/sidebarTabs/sidebarDirectories/playlistDirectory.d.ts +2 -2
  138. package/src/foundry/foundry.js/applications/sidebarTabs/sidebarDirectories/sceneDirectory.d.ts +6 -23
  139. package/src/foundry/foundry.js/applications/sidebarTabs/sidebarDirectory.d.ts +4 -6
  140. package/src/foundry/foundry.js/avSettings.d.ts +7 -7
  141. package/src/foundry/foundry.js/cameraPopoutAppWrapper.d.ts +12 -7
  142. package/src/foundry/foundry.js/canvas.d.ts +150 -47
  143. package/src/foundry/foundry.js/canvasAnimation.d.ts +1 -1
  144. package/src/foundry/foundry.js/canvasDocumentMixin.d.ts +7 -0
  145. package/src/foundry/foundry.js/clientDatabaseBackend.d.ts +210 -0
  146. package/src/foundry/foundry.js/clientDocumentMixin.d.ts +45 -91
  147. package/src/foundry/foundry.js/clientDocuments/activeEffect.d.ts +3 -2
  148. package/src/foundry/foundry.js/clientDocuments/actor.d.ts +3 -7
  149. package/src/foundry/foundry.js/clientDocuments/canvasDocuments/ambientSoundDocument.d.ts +1 -6
  150. package/src/foundry/foundry.js/clientDocuments/canvasDocuments/tokenDocument.d.ts +1 -1
  151. package/src/foundry/foundry.js/clientDocuments/card.d.ts +133 -0
  152. package/src/foundry/foundry.js/clientDocuments/cards.d.ts +384 -0
  153. package/src/foundry/foundry.js/clientDocuments/chatMessage.d.ts +11 -10
  154. package/src/foundry/foundry.js/clientDocuments/combat.d.ts +4 -8
  155. package/src/foundry/foundry.js/clientDocuments/combatant.d.ts +1 -1
  156. package/src/foundry/foundry.js/clientDocuments/folder.d.ts +4 -6
  157. package/src/foundry/foundry.js/clientDocuments/index.d.ts +3 -0
  158. package/src/foundry/foundry.js/clientDocuments/item.d.ts +3 -4
  159. package/src/foundry/foundry.js/clientDocuments/playlist.d.ts +4 -3
  160. package/src/foundry/foundry.js/clientDocuments/prototypeToken.d.ts +15 -0
  161. package/src/foundry/foundry.js/clientDocuments/rollTable.d.ts +1 -1
  162. package/src/foundry/foundry.js/clientDocuments/scene.d.ts +30 -23
  163. package/src/foundry/foundry.js/clientKeybindings.d.ts +299 -0
  164. package/src/foundry/foundry.js/clientSettings.d.ts +21 -6
  165. package/src/foundry/foundry.js/collections/documentCollections/compendiumCollection.d.ts +45 -12
  166. package/src/foundry/foundry.js/collections/documentCollections/worldCollections/cardStacks.d.ts +9 -0
  167. package/src/foundry/foundry.js/collections/documentCollections/worldCollections/index.d.ts +1 -0
  168. package/src/foundry/foundry.js/collections/documentCollections/worldCollections/playlists.d.ts +3 -2
  169. package/src/foundry/foundry.js/config.d.ts +467 -881
  170. package/src/foundry/foundry.js/dragDrop.d.ts +17 -14
  171. package/src/foundry/foundry.js/game.d.ts +171 -50
  172. package/src/foundry/foundry.js/gamepadManager.d.ts +41 -0
  173. package/src/foundry/foundry.js/globalVariables.d.ts +7 -4
  174. package/src/foundry/foundry.js/handlebarsHelpers.d.ts +4 -4
  175. package/src/foundry/foundry.js/hooks.d.ts +57 -0
  176. package/src/foundry/foundry.js/keyboardManager.d.ts +165 -213
  177. package/src/foundry/foundry.js/mouseInteractionManager.d.ts +78 -34
  178. package/src/foundry/foundry.js/mouseManager.d.ts +18 -0
  179. package/src/foundry/foundry.js/newUserExperience.d.ts +34 -0
  180. package/src/foundry/foundry.js/pixi/containers/cachedContainer.d.ts +8 -0
  181. package/src/foundry/foundry.js/pixi/containers/cachedContainers/index.d.ts +1 -0
  182. package/src/foundry/foundry.js/pixi/containers/cachedContainers/primaryCanvasGroup.d.ts +42 -0
  183. package/src/foundry/foundry.js/pixi/containers/canvasLayers/gridLayer.d.ts +2 -2
  184. package/src/foundry/foundry.js/pixi/containers/canvasLayers/index.d.ts +1 -1
  185. package/src/foundry/foundry.js/pixi/containers/canvasLayers/placeablesLayer.d.ts +5 -17
  186. package/src/foundry/foundry.js/pixi/containers/canvasLayers/placeablesLayers/wallsLayer.d.ts +4 -4
  187. package/src/foundry/foundry.js/pixi/containers/canvasLayers/{effectsLayer.d.ts → weatherLayer.d.ts} +7 -7
  188. package/src/foundry/foundry.js/pixi/containers/effectsCanvasGroup.d.ts +29 -0
  189. package/src/foundry/foundry.js/pixi/containers/index.d.ts +3 -0
  190. package/src/foundry/foundry.js/pixi/containers/interfaceCanvasGroup.d.ts +27 -0
  191. package/src/foundry/foundry.js/pixi/containers/placeableObject.d.ts +4 -1
  192. package/src/foundry/foundry.js/pixi/containers/placeableObjects/token.d.ts +1 -1
  193. package/src/foundry/foundry.js/pixi/containers/placeableObjects/wall.d.ts +1 -1
  194. package/src/foundry/foundry.js/pointSource.d.ts +174 -86
  195. package/src/foundry/foundry.js/roll.d.ts +25 -36
  196. package/src/foundry/foundry.js/rollTerm.d.ts +7 -4
  197. package/src/foundry/foundry.js/rollTerms/diceTerm.d.ts +4 -22
  198. package/src/foundry/foundry.js/rollTerms/mathTerm.d.ts +3 -0
  199. package/src/foundry/foundry.js/rollTerms/parentheticalTerm.d.ts +3 -0
  200. package/src/foundry/foundry.js/rollTerms/poolTerm.d.ts +3 -5
  201. package/src/foundry/foundry.js/rollTerms/stringTerm.d.ts +4 -1
  202. package/src/foundry/foundry.js/searchFilter.d.ts +1 -1
  203. package/src/foundry/foundry.js/textEditor.d.ts +40 -9
  204. package/src/foundry/index.d.ts +5 -0
  205. package/src/types/utils.d.ts +11 -3
  206. package/src/foundry/foundry.js/applications/formApplications/measuredTemplateConfig.d.ts +0 -61
  207. package/src/foundry/foundry.js/applications/formApplications/noteConfig.d.ts +0 -77
@@ -3,13 +3,13 @@ import * as fields from '../data/fields.mjs';
3
3
  import { PackageData, PackageDataConstructorData, PackageDataProperties, PackageDataSchema } from './packageData';
4
4
 
5
5
  interface WorldDataSchema extends Omit<PackageDataSchema, 'system'> {
6
- system: typeof fields.REQUIRED_STRING;
7
- background: typeof fields.STRING_FIELD;
8
- coreVersion: typeof fields.REQUIRED_STRING;
9
- nextSession: typeof fields.STRING_FIELD;
10
- resetKeys: typeof fields.BOOLEAN_FIELD;
11
- safeMode: typeof fields.BOOLEAN_FIELD;
12
- systemVersion: FieldReturnType<typeof fields.REQUIRED_STRING, { default: () => string }>;
6
+ system: fields.RequiredString;
7
+ background: fields.StringField;
8
+ coreVersion: fields.RequiredString;
9
+ nextSession: fields.StringField;
10
+ resetKeys: fields.BooleanField;
11
+ safeMode: fields.BooleanField;
12
+ systemVersion: FieldReturnType<fields.RequiredString, { default: () => string }>;
13
13
  }
14
14
 
15
15
  interface WorldDataProperties extends Omit<PackageDataProperties, 'system'> {
@@ -17,19 +17,24 @@ interface WorldDataProperties extends Omit<PackageDataProperties, 'system'> {
17
17
  system: string;
18
18
 
19
19
  /** A web URL or local file path which provides a background banner image */
20
- background?: string;
20
+ background: string | undefined;
21
21
 
22
22
  /** The version of the core software for which this world has been migrated */
23
23
  coreVersion: string;
24
24
 
25
25
  /** An ISO datetime string when the next game session is scheduled to occur */
26
- nextSession?: string;
26
+ nextSession: string | undefined;
27
27
 
28
+ /** @defaultValue `false` */
28
29
  resetKeys: boolean;
29
30
 
31
+ /** @defaultValue `false` */
30
32
  safeMode: boolean;
31
33
 
32
- /** The version of the game system for which this world has been migrated */
34
+ /**
35
+ * The version of the game system for which this world has been migrated
36
+ * @defaultValue `"0"`
37
+ */
33
38
  systemVersion: string;
34
39
  }
35
40
 
@@ -38,29 +43,35 @@ interface WorldDataConstructorData extends Omit<PackageDataConstructorData, 'sys
38
43
  system: string;
39
44
 
40
45
  /** A web URL or local file path which provides a background banner image */
41
- background?: string | null;
46
+ background?: string | null | undefined;
42
47
 
43
48
  /** The version of the core software for which this world has been migrated */
44
49
  coreVersion: string;
45
50
 
46
51
  /** An ISO datetime string when the next game session is scheduled to occur */
47
- nextSession?: string | null;
52
+ nextSession?: string | null | undefined;
48
53
 
49
- resetKeys?: boolean | null;
54
+ /** @defaultValue `false` */
55
+ resetKeys?: boolean | null | undefined;
50
56
 
51
- safeMode?: boolean | null;
57
+ /** @defaultValue `false` */
58
+ safeMode?: boolean | null | undefined;
52
59
 
53
- /** The version of the game system for which this world has been migrated */
54
- systemVersion?: string | null;
60
+ /**
61
+ * The version of the game system for which this world has been migrated
62
+ * @defaultValue `"0"`
63
+ */
64
+ systemVersion?: string | null | undefined;
55
65
  }
56
66
 
57
67
  /**
58
68
  * The data schema used to define World manifest files.
59
69
  * Extends the basic PackageData schema with some additional world-specific fields.
60
70
  */
61
- export declare class WorldData extends PackageData<WorldDataSchema, WorldDataProperties, WorldDataConstructorData> {
71
+ export class WorldData extends PackageData<WorldDataSchema, WorldDataProperties, WorldDataConstructorData> {
72
+ /** @override */
62
73
  static defineSchema(): WorldDataSchema;
63
74
  }
64
75
 
65
76
  // eslint-disable-next-line @typescript-eslint/no-empty-interface
66
- export declare interface WorldData extends WorldDataProperties {}
77
+ export interface WorldData extends WorldDataProperties {}
@@ -20,6 +20,101 @@ declare type Rectangle =
20
20
  height: number;
21
21
  };
22
22
 
23
+ /** A Client Keybinding Action Configuration */
24
+ declare interface KeybindingActionConfig {
25
+ /** The namespace within which the action was registered */
26
+ namespace?: string;
27
+
28
+ /** The human readable name */
29
+ name: string;
30
+
31
+ /** An additional human readable hint */
32
+ hint?: string;
33
+
34
+ /** The default bindings that can never be changed nor removed. */
35
+ uneditable?: KeybindingActionBinding[];
36
+
37
+ /** The default bindings that can be changed by the user. */
38
+ editable?: KeybindingActionBinding[];
39
+
40
+ /** A function to execute when a key down event occurs. If True is returned, the event is consumed and no further keybinds execute. */
41
+ onDown?: () => boolean | void;
42
+
43
+ /** A function to execute when a key up event occurs. If True is returned, the event is consumed and no further keybinds execute. */
44
+ onUp?: () => boolean | void;
45
+
46
+ /** If True, allows Repeat events to execute the Action's onDown. Defaults to false. */
47
+ repeat?: boolean;
48
+
49
+ /** If true, only a GM can edit and execute this Action */
50
+ restricted?: boolean;
51
+
52
+ /** Modifiers such as [ "CONTROL" ] that can be also pressed when executing this Action. Prevents using one of these modifiers as a Binding. */
53
+ reservedModifiers?: string[];
54
+
55
+ /** The preferred precedence of running this Keybinding Action */
56
+ precedence?: number; // TODO: KEYBINDING_PRECEDENCE?
57
+
58
+ /** The recorded registration order of the action */
59
+ order?: number;
60
+ }
61
+
62
+ /** A Client Keybinding Action Binding */
63
+ declare interface KeybindingActionBinding {
64
+ /** The KeyboardEvent#code value from https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values */
65
+ key: string;
66
+
67
+ /** An array of modifiers keys from KeyboardManager.MODIFIER_KEYS which are required for this binding to be activated */
68
+ modifiers?: string[];
69
+ }
70
+
71
+ declare interface KeybindingAction {
72
+ action: string;
73
+ key: string;
74
+ name: string;
75
+ requiredModifiers: string[];
76
+ optionalModifiers: string[];
77
+ onDown: Function;
78
+ onUp: Function;
79
+ repeat: boolean;
80
+ restricted: boolean;
81
+ precedence: number;
82
+ order: number;
83
+ }
84
+
85
+ /** Keyboard event context */
86
+ declare interface KeyboardEventContext {
87
+ /** The normalized string key, such as "A" */
88
+ key: string;
89
+
90
+ /** The originating keypress event */
91
+ event: KeyboardEvent;
92
+
93
+ /** Is the Shift modifier being pressed */
94
+ isShift: boolean;
95
+
96
+ /** Is the Control or Meta modifier being processed */
97
+ isControl: boolean;
98
+
99
+ /** Is the Alt modifier being pressed */
100
+ isAlt: boolean;
101
+
102
+ /** Are any of the modifiers being pressed */
103
+ hasModifier: boolean;
104
+
105
+ /** A list of string modifiers applied to this context, such as [ "CONTROL" ] */
106
+ modifiers: string[];
107
+
108
+ /** True if the Key is Up, else False if down */
109
+ up: boolean;
110
+
111
+ /** True if the given key is being held down such that it is automatically repeating. */
112
+ repeat: boolean;
113
+
114
+ /** The executing Keybinding Action. May be undefined until the action is known. */
115
+ action: string | undefined;
116
+ }
117
+
23
118
  type RequestData = object | object[] | string | string[];
24
119
 
25
120
  interface SocketRequest {
@@ -84,4 +179,9 @@ interface SocketResponse {
84
179
  * Data returned as a result of the request
85
180
  */
86
181
  data?: RequestData;
182
+
183
+ /**
184
+ * An Array of created data objects
185
+ */
186
+ result?: object[];
87
187
  }
@@ -2,8 +2,13 @@
2
2
  * Benchmark the performance of a function, calling it a requested number of iterations.
3
3
  * @param func - The function to benchmark
4
4
  * @param iterations - The number of iterations to test
5
+ * @param args - Additional arguments passed to the benchmarked function
5
6
  */
6
- export declare function benchmark(func: () => unknown, iterations: number): void;
7
+ export declare function benchmark<F extends (...args: any[]) => unknown>(
8
+ func: F,
9
+ iterations: number,
10
+ ...args: Parameters<F>
11
+ ): Promise<void>;
7
12
 
8
13
  /**
9
14
  * Wrap a callback in a debounced timeout.
@@ -22,9 +27,18 @@ export declare function debounce<T extends (...args: any[]) => unknown>(
22
27
  * This method DOES support recursive data structures containing inner objects or arrays.
23
28
  * This method DOES NOT support advanced object types like Set, Map, or other specialized classes.
24
29
  * @param original - Some sort of data
30
+ * @param options - Options to configure the behaviour of deepClone
25
31
  * @returns The clone of that data
26
32
  */
27
- export declare function deepClone<T>(original: T): T;
33
+ export declare function deepClone<T>(original: T, options?: DeepCloneOptions): T;
34
+
35
+ interface DeepCloneOptions {
36
+ /**
37
+ * Throw an Error if deepClone is unable to clone something instead of returning the original
38
+ * @defaultValue `false`
39
+ */
40
+ strict?: boolean;
41
+ }
28
42
 
29
43
  /**
30
44
  * Deeply difference an object against some other, returning the update keys and values
@@ -101,6 +115,17 @@ type InnerDuplicated<T> = T extends { toJSON(): infer U }
101
115
  */
102
116
  export type Duplicated<T> = T extends NonStringifiable ? never : InnerDuplicated<T>;
103
117
 
118
+ /**
119
+ * Test whether some class is a subclass of a parent.
120
+ * @param cls - The class to test
121
+ * @param parent - Some other class which may be a parent
122
+ * @returns Is the class a subclass of the parent?
123
+ */
124
+ export declare function isSubclass(
125
+ cls: new (...args: any[]) => unknown,
126
+ parent: new (...args: any[]) => unknown
127
+ ): boolean;
128
+
104
129
  /**
105
130
  * Encode a url-like string by replacing any characters which need encoding
106
131
  * @param path - A fully-qualified URL or url component (like a relative path)
@@ -1,4 +1,4 @@
1
- declare interface Math {
1
+ interface Math {
2
2
  /**
3
3
  * Bound a number between some minimum and maximum value, inclusively
4
4
  * @param num - The current value
@@ -44,7 +44,7 @@ declare interface Math {
44
44
  toRadians(angle: number): number;
45
45
  }
46
46
 
47
- declare interface Set<T> {
47
+ interface Set<T> {
48
48
  /**
49
49
  * Test whether this set is equal to some other set.
50
50
  * Sets are equal if they share the same members, independent of order
@@ -53,6 +53,26 @@ declare interface Set<T> {
53
53
  */
54
54
  equals(other: Set<T>): boolean;
55
55
 
56
+ /**
57
+ * Return the first value from the set.
58
+ * @returns The first element in the set, or undefined
59
+ */
60
+ first(): T | undefined;
61
+
62
+ /**
63
+ * Return the intersection of two sets.
64
+ * @param other - Some other set to compare against
65
+ * @returns The intersection of both sets
66
+ */
67
+ intersection(other: Set<T>): Set<T>;
68
+
69
+ /**
70
+ * Test whether this set has an intersection with another set.
71
+ * @param other - Another set to compare against
72
+ * @returns Do the sets intersect?
73
+ */
74
+ intersects(other: Set<T>): boolean;
75
+
56
76
  /**
57
77
  * Test whether this set is a subset of some other set.
58
78
  * A set is a subset if all its members are also present in the other set.
@@ -62,9 +82,15 @@ declare interface Set<T> {
62
82
  isSubset(other: Set<T>): boolean;
63
83
  }
64
84
 
65
- declare interface String {
85
+ interface String {
86
+ /**
87
+ * Capitalize a string, transforming it's first character to a capital letter
88
+ */
66
89
  capitalize<S extends string>(this: S): Capitalize<S>;
67
90
 
91
+ /**
92
+ * Convert a string to Title Case where the first letter of each word is capitalized
93
+ */
68
94
  titleCase<S extends string>(this: S): Titlecase<S>;
69
95
 
70
96
  /**
@@ -74,20 +100,59 @@ declare interface String {
74
100
 
75
101
  /**
76
102
  * Transform any string into a url-viable slug string
77
- * @param replacement - The replacement character to separate terms
78
- * (default: `'-'`)
79
- * @param strict - Replace all non-alphanumeric characters, or allow them?
80
- * (default: `false`)
103
+ * @param options - Optional arguments which customize how the slugify operation is performed
81
104
  * @returns The cleaned slug string
82
105
  */
83
- slugify({ replacement, strict }?: { replacement?: string; strict?: boolean }): string;
106
+ slugify(options?: String.SlugifyOptions): string;
107
+ }
108
+
109
+ declare namespace String {
110
+ interface SlugifyOptions {
111
+ /**
112
+ * The replacement character to separate terms
113
+ * @defaultValue `'-'`
114
+ */
115
+ replacement?: string;
116
+
117
+ /**
118
+ * Replace all non-alphanumeric characters, or allow them?
119
+ * @defaultValue `false`
120
+ */
121
+ strict?: boolean;
122
+ }
84
123
  }
85
124
 
86
- declare interface Number {
125
+ interface Number {
126
+ /**
127
+ * Test for near-equivalence of two numbers within some permitted epsilon
128
+ * @param n - Some other number
129
+ * @param e - Some permitted epsilon, by default 1e-8
130
+ (default: `1e-8`)
131
+ * @returns Are the numbers almost equal?
132
+ */
133
+ almostEqual(n: number, e?: number): boolean;
134
+
135
+ /**
136
+ * Transform a number to an ordinal string representation. i.e.
137
+ * ```
138
+ * 1 => 1st
139
+ * 2 => 2nd
140
+ * 3 => 3rd
141
+ * ```
142
+ */
87
143
  ordinalString(): string;
88
144
 
145
+ /**
146
+ * Return a string front-padded by zeroes to reach a certain number of numeral characters
147
+ * @param digits - The number of characters desired
148
+ * @returns The zero-padded number
149
+ */
89
150
  paddedString(digits: number): string;
90
151
 
152
+ /**
153
+ * Return a string prefaced by the sign of the number (+) or (-)
154
+ * @returns The signed number as a string
155
+ */
91
156
  signedString(): string;
92
157
 
93
158
  /**
@@ -110,10 +175,15 @@ declare interface Number {
110
175
  */
111
176
  toNearest(interval?: number, method?: 'round' | 'ceil' | 'floor'): number;
112
177
 
178
+ /**
179
+ * A faster numeric between check which avoids type coercion to the Number object
180
+ * Since this avoids coercion, if non-numbers are passed in unpredictable results will occur. Use with caution.
181
+ * @param inclusive - (default: `true`)
182
+ */
113
183
  between(a: number, b: number, inclusive?: boolean): boolean;
114
184
  }
115
185
 
116
- declare interface NumberConstructor {
186
+ interface NumberConstructor {
117
187
  /**
118
188
  * A faster numeric between check which avoids type coercion to the Number object
119
189
  * Since this avoids coercion, if non-numbers are passed in unpredictable results will occur. Use with caution.
@@ -123,19 +193,27 @@ declare interface NumberConstructor {
123
193
 
124
194
  /**
125
195
  * Test whether a value is numeric
126
- * This is the highest performing algorithm currently available
127
- * https://jsperf.com/isnan-vs-typeof/5
196
+ * This is the highest performing algorithm currently available, per https://jsperf.com/isnan-vs-typeof/5
128
197
  * @param n - A value to test
129
198
  * @returns Is it a number?
130
199
  */
131
200
  isNumeric(n: unknown): n is number;
132
201
  }
133
202
 
134
- declare interface ArrayConstructor {
203
+ interface ArrayConstructor {
204
+ /**
205
+ * Create and initialize an array of length n with integers from 0 to n-1
206
+ * @param n - The desired array length
207
+ * @returns An array of integers from 0 to n
208
+ */
135
209
  fromRange(n: number): number[];
136
210
  }
137
211
 
138
- declare interface Array<T> {
212
+ interface Array<T> {
213
+ /**
214
+ * Flatten nested arrays by concatenating their contents
215
+ * @returns An array containing the concatenated inner values
216
+ */
139
217
  deepFlatten(): Array<Array.Flattened<T>>;
140
218
 
141
219
  /**
@@ -171,7 +249,7 @@ declare namespace Array {
171
249
  type Flattened<T> = T extends Array<infer U> ? Flattened<U> : T;
172
250
  }
173
251
 
174
- declare interface Date {
252
+ interface Date {
175
253
  /**
176
254
  * Test whether a Date instance is valid.
177
255
  * A valid date returns a number for its timestamp, and NaN otherwise.
@@ -192,6 +270,11 @@ declare interface Date {
192
270
  toTimeInputString(): string;
193
271
  }
194
272
 
195
- declare interface RegExpConstructor {
273
+ interface RegExpConstructor {
274
+ /**
275
+ * Escape a given input string, prefacing special characters with backslashes for use in a regular expression
276
+ * @param string - The un-escaped input string
277
+ * @returns The escaped string, suitable for use in regular expression
278
+ */
196
279
  escape(string: string): string;
197
280
  }
@@ -312,12 +312,9 @@ declare abstract class Application<Options extends Application.Options = Applica
312
312
  * Callback actions which occur when a dragged element is dropped on a target.
313
313
  * @param event - The originating DragEvent
314
314
  * (unused)
315
- * @remarks
316
- * The implementation in {@link Application} actually returns `void` but it is
317
- * typed as `unknown` to allow deriving methods to return whatever they want.
318
- * The returned value is not meant to be used.
315
+ * @internal
319
316
  */
320
- protected _onDrop(event: DragEvent): unknown;
317
+ protected _onDrop(event: DragEvent): void;
321
318
 
322
319
  /**
323
320
  * Bring the application to the top of the rendering stack
@@ -443,7 +440,7 @@ declare namespace Application {
443
440
 
444
441
  /**
445
442
  * The default CSS id to assign to the rendered HTML
446
- * @defaultValue `''`
443
+ * @defaultValue `""`
447
444
  */
448
445
  id: string;
449
446
 
@@ -455,7 +452,7 @@ declare namespace Application {
455
452
 
456
453
  /**
457
454
  * A default window title string (popOut only)
458
- * @defaultValue `''`
455
+ * @defaultValue `""`
459
456
  */
460
457
  title: string;
461
458
 
@@ -1,30 +1,24 @@
1
- // TODO: Remove when updating this class!!!
2
- // eslint-disable-next-line
3
- // @ts-nocheck
4
-
5
1
  /**
6
2
  * The Camera UI View that displays all the camera feeds as individual video elements.
7
- * @typeParam P - the type of the options object
3
+ * @typeParam Options - the type of the options object
4
+ * @typeParam Data - The data structure used to render the handlebars template.
8
5
  */
9
- declare class CameraViews<P extends Application.Options = Application.Options> extends Application<P> {
10
- /**
11
- * @param webrtc - The WebRTC Implementation to display
12
- * (unused)
13
- */
14
- constructor(webrtc?: any, options?: Partial<P>);
15
-
6
+ declare class CameraViews<
7
+ Options extends Application.Options = Application.Options,
8
+ Data extends object = CameraViews.Data
9
+ > extends Application<Options> {
16
10
  /**
17
11
  * @override
18
12
  * @defaultValue
19
13
  * ```typescript
20
- * mergeObject(super.defaultOptions, {
14
+ * return foundry.utils.mergeObject(super.defaultOptions, {
21
15
  * id: "camera-views",
22
16
  * template: "templates/hud/camera-views.html",
23
- * popOut: false
24
- * });
17
+ * popOut: false,
18
+ * })
25
19
  * ```
26
20
  */
27
- static get defaultOptions(): typeof Application['defaultOptions'];
21
+ static get defaultOptions(): Application.Options;
28
22
 
29
23
  /**
30
24
  * A reference to the master AV orchestrator instance
@@ -56,26 +50,29 @@ declare class CameraViews<P extends Application.Options = Application.Options> e
56
50
  * Extend the render logic to first check whether a render is necessary based on the context
57
51
  * If a specific context was provided, make sure an update to the navigation is necessary before rendering
58
52
  */
59
- render(force?: boolean, context?: Application.RenderOptions<P>): Application['render'];
53
+ render(force?: boolean, context?: Application.RenderOptions<Options>): this | void;
60
54
 
61
55
  /** @override */
62
- protected _render(force?: boolean, options?: Application.RenderOptions<P>): Promise<void>;
56
+ protected _render(force?: boolean, options?: Application.RenderOptions<Options>): Promise<void>;
63
57
 
64
58
  /**
65
59
  * @param options - (unused)
66
60
  * @override
67
61
  */
68
- getData(options?: Partial<P>): CameraViews.Data;
62
+ getData(options?: Partial<Options>): Data | Promise<Data>;
69
63
 
70
- maxZ: number;
64
+ /** @defaultValue `undefined` */
65
+ maxZ?: number;
71
66
 
72
67
  /**
73
68
  * Prepare rendering data for a single user
69
+ * @internal
74
70
  */
75
71
  protected _getDataForUser(userId: string, settings: AVSettings.UserSettings): CameraViews.Data.User | null;
76
72
 
77
73
  /**
78
74
  * A custom sorting function that orders/arranges the user display frames
75
+ * @internal
79
76
  */
80
77
  protected static _sortUsers(a: CameraViews.Data.User, b: CameraViews.Data.User): number;
81
78
 
@@ -85,30 +82,35 @@ declare class CameraViews<P extends Application.Options = Application.Options> e
85
82
  /**
86
83
  * On hover in a camera container, show/hide the controls.
87
84
  * @param event - The original mouseover or mouseout hover event
85
+ * @internal
88
86
  */
89
87
  protected _onCameraViewHover(event: JQuery.MouseEnterEvent | JQuery.MouseLeaveEvent): void;
90
88
 
91
89
  /**
92
90
  * On clicking on a toggle, disable/enable the audio or video stream.
93
91
  * @param event - The originating click event
92
+ * @internal
94
93
  */
95
94
  protected _onClickControl(event: JQuery.ClickEvent): Promise<void>;
96
95
 
97
96
  /**
98
97
  * Change volume control for a stream
99
98
  * @param event - The originating change event from interaction with the range input
99
+ * @internal
100
100
  */
101
101
  protected _onVolumeChange(event: JQuery.ChangeEvent): void;
102
102
 
103
103
  /**
104
104
  * Dynamically refresh the state of a single camera view
105
105
  * @param view - The view container div
106
+ * @internal
106
107
  */
107
108
  protected _refreshView(view: HTMLElement): void;
108
109
 
109
110
  /**
110
111
  * Render changes needed to the PlayerList ui.
111
112
  * Show/Hide players depending on option.
113
+ * @internal
112
114
  */
113
115
  protected _setPlayerListVisibility(): void;
114
116
 
@@ -119,8 +121,9 @@ declare class CameraViews<P extends Application.Options = Application.Options> e
119
121
  * @param action - The named av-control button action
120
122
  * @param state - The CURRENT action state.
121
123
  * @returns The icon that represents the NEXT action state.
124
+ * @internal
122
125
  */
123
- protected _getToggleIcon(action: string, state?: boolean): null;
126
+ protected _getToggleIcon(action: string, state: boolean): string | null;
124
127
 
125
128
  /**
126
129
  * Get the text title that should be used for various action buttons with different toggled states.
@@ -129,6 +132,7 @@ declare class CameraViews<P extends Application.Options = Application.Options> e
129
132
  * @param action - The named av-control button action
130
133
  * @param state - The CURRENT action state.
131
134
  * @returns The icon that represents the NEXT action state.
135
+ * @internal
132
136
  */
133
137
  protected _getToggleTooltip(action: string, state: boolean): string;
134
138
 
@@ -142,6 +146,7 @@ declare class CameraViews<P extends Application.Options = Application.Options> e
142
146
  * @param show - Whether to show or hide the controls
143
147
  * @param selector - Override selector to specify which controls to show or hide
144
148
  * (default: `'.control-bar'`)
149
+ * @internal
145
150
  */
146
151
  protected _toggleControlVisibility(container: HTMLElement, show: boolean, selector?: string): void;
147
152
  }
@@ -149,24 +154,24 @@ declare class CameraViews<P extends Application.Options = Application.Options> e
149
154
  declare namespace CameraViews {
150
155
  interface Data {
151
156
  self: Game['user'];
152
- users: CameraViews.Data.User[];
157
+ users: Data.User[];
153
158
  dockClass: string;
154
159
  muteAll: boolean;
155
160
  }
156
161
 
157
162
  namespace Data {
158
163
  interface User {
159
- user: globalThis.User;
160
- id: globalThis.User['id'];
161
- local: globalThis.User['isSelf'];
162
- name: globalThis.User['name'];
163
- color: globalThis.User['data']['color'];
164
- colorAlpha: ReturnType<typeof foundry.utils.hexToRGBAString>;
164
+ user: StoredDocument<globalThis.User>;
165
+ id: StoredDocument<globalThis.User>['id'];
166
+ local: StoredDocument<globalThis.User>['isSelf'];
167
+ name: StoredDocument<globalThis.User>['name'];
168
+ color: StoredDocument<globalThis.User>['data']['color'];
169
+ colorAlpha: `rgba(${number}, ${number}, ${number})`;
165
170
  charname: string;
166
- avatar: globalThis.User['avatar'];
171
+ avatar: StoredDocument<globalThis.User>['avatar'];
167
172
  settings: AVSettings.UserSettings;
168
- volume: ReturnType<typeof AudioHelper['volumeToInput']>;
169
- cameraViewClass: ReturnType<Array<string>['filterJoin']>;
173
+ volume: number;
174
+ cameraViewClass: string;
170
175
  }
171
176
  }
172
177
  }
@@ -67,8 +67,11 @@ declare class Compendium<
67
67
  /** @override */
68
68
  protected _onDragStart(event: DragEvent): void;
69
69
 
70
- /** @override */
71
- protected _onDrop(event: DragEvent): ReturnType<this['collection']['importDocument']> | false;
70
+ /**
71
+ * @override
72
+ * @internal
73
+ */
74
+ protected _onDrop(event: DragEvent): void;
72
75
 
73
76
  /**
74
77
  * Render the ContextMenu which applies to each compendium Document