playlist-data-engine 1.1.0

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 (345) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +352 -0
  3. package/dist/__vite-browser-external-DYxpcVy9.js +4 -0
  4. package/dist/constants/DefaultClasses.d.ts +46 -0
  5. package/dist/constants/DefaultClasses.d.ts.map +1 -0
  6. package/dist/constants/DefaultEnchantments.d.ts +337 -0
  7. package/dist/constants/DefaultEnchantments.d.ts.map +1 -0
  8. package/dist/constants/DefaultEnemies.d.ts +83 -0
  9. package/dist/constants/DefaultEnemies.d.ts.map +1 -0
  10. package/dist/constants/DefaultEquipment.d.ts +23 -0
  11. package/dist/constants/DefaultEquipment.d.ts.map +1 -0
  12. package/dist/constants/DefaultFeatures.d.ts +22 -0
  13. package/dist/constants/DefaultFeatures.d.ts.map +1 -0
  14. package/dist/constants/DefaultRaces.d.ts +102 -0
  15. package/dist/constants/DefaultRaces.d.ts.map +1 -0
  16. package/dist/constants/DefaultSkills.d.ts +26 -0
  17. package/dist/constants/DefaultSkills.d.ts.map +1 -0
  18. package/dist/constants/DefaultSpells.d.ts +41 -0
  19. package/dist/constants/DefaultSpells.d.ts.map +1 -0
  20. package/dist/constants/EncounterBalance.d.ts +208 -0
  21. package/dist/constants/EncounterBalance.d.ts.map +1 -0
  22. package/dist/constants/EnemyEquipment.d.ts +71 -0
  23. package/dist/constants/EnemyEquipment.d.ts.map +1 -0
  24. package/dist/constants/EnemyRarity.d.ts +79 -0
  25. package/dist/constants/EnemyRarity.d.ts.map +1 -0
  26. package/dist/constants/EnemyTemplates/Construct.d.ts +63 -0
  27. package/dist/constants/EnemyTemplates/Construct.d.ts.map +1 -0
  28. package/dist/constants/EnemyTemplates/Dragon.d.ts +68 -0
  29. package/dist/constants/EnemyTemplates/Dragon.d.ts.map +1 -0
  30. package/dist/constants/EnemyTemplates/Elemental.d.ts +64 -0
  31. package/dist/constants/EnemyTemplates/Elemental.d.ts.map +1 -0
  32. package/dist/constants/EnemyTemplates/Fiend.d.ts +62 -0
  33. package/dist/constants/EnemyTemplates/Fiend.d.ts.map +1 -0
  34. package/dist/constants/EnemyTemplates/Monstrosity.d.ts +63 -0
  35. package/dist/constants/EnemyTemplates/Monstrosity.d.ts.map +1 -0
  36. package/dist/constants/EnemyTemplates/Undead.d.ts +61 -0
  37. package/dist/constants/EnemyTemplates/Undead.d.ts.map +1 -0
  38. package/dist/constants/ItemTemplates.d.ts +40 -0
  39. package/dist/constants/ItemTemplates.d.ts.map +1 -0
  40. package/dist/constants/MagicItems.d.ts +30 -0
  41. package/dist/constants/MagicItems.d.ts.map +1 -0
  42. package/dist/constants/SpellSlots.d.ts +30 -0
  43. package/dist/constants/SpellSlots.d.ts.map +1 -0
  44. package/dist/constants/StatScaling.d.ts +113 -0
  45. package/dist/constants/StatScaling.d.ts.map +1 -0
  46. package/dist/core/analysis/AudioAnalyzer.d.ts +599 -0
  47. package/dist/core/analysis/AudioAnalyzer.d.ts.map +1 -0
  48. package/dist/core/analysis/ColorExtractor.d.ts +64 -0
  49. package/dist/core/analysis/ColorExtractor.d.ts.map +1 -0
  50. package/dist/core/analysis/EssentiaPitchDetector.d.ts +282 -0
  51. package/dist/core/analysis/EssentiaPitchDetector.d.ts.map +1 -0
  52. package/dist/core/analysis/LevelSerializer.d.ts +265 -0
  53. package/dist/core/analysis/LevelSerializer.d.ts.map +1 -0
  54. package/dist/core/analysis/MelodyContourAnalyzer.d.ts +283 -0
  55. package/dist/core/analysis/MelodyContourAnalyzer.d.ts.map +1 -0
  56. package/dist/core/analysis/MultiBandAnalyzer.d.ts +214 -0
  57. package/dist/core/analysis/MultiBandAnalyzer.d.ts.map +1 -0
  58. package/dist/core/analysis/MusicClassifier.d.ts +524 -0
  59. package/dist/core/analysis/MusicClassifier.d.ts.map +1 -0
  60. package/dist/core/analysis/PitchAnalyzer.d.ts +266 -0
  61. package/dist/core/analysis/PitchAnalyzer.d.ts.map +1 -0
  62. package/dist/core/analysis/PitchDetector.d.ts +251 -0
  63. package/dist/core/analysis/PitchDetector.d.ts.map +1 -0
  64. package/dist/core/analysis/SpectrumScanner.d.ts +52 -0
  65. package/dist/core/analysis/SpectrumScanner.d.ts.map +1 -0
  66. package/dist/core/analysis/beat/BeatInterpolator.d.ts +477 -0
  67. package/dist/core/analysis/beat/BeatInterpolator.d.ts.map +1 -0
  68. package/dist/core/analysis/beat/BeatMapGenerator.d.ts +170 -0
  69. package/dist/core/analysis/beat/BeatMapGenerator.d.ts.map +1 -0
  70. package/dist/core/analysis/beat/BeatStream.d.ts +316 -0
  71. package/dist/core/analysis/beat/BeatStream.d.ts.map +1 -0
  72. package/dist/core/analysis/beat/BeatSubdivider.d.ts +205 -0
  73. package/dist/core/analysis/beat/BeatSubdivider.d.ts.map +1 -0
  74. package/dist/core/analysis/beat/BeatTracker.d.ts +137 -0
  75. package/dist/core/analysis/beat/BeatTracker.d.ts.map +1 -0
  76. package/dist/core/analysis/beat/CompositeStreamGenerator.d.ts +180 -0
  77. package/dist/core/analysis/beat/CompositeStreamGenerator.d.ts.map +1 -0
  78. package/dist/core/analysis/beat/DensityAnalyzer.d.ts +246 -0
  79. package/dist/core/analysis/beat/DensityAnalyzer.d.ts.map +1 -0
  80. package/dist/core/analysis/beat/DifficultyVariantGenerator.d.ts +1082 -0
  81. package/dist/core/analysis/beat/DifficultyVariantGenerator.d.ts.map +1 -0
  82. package/dist/core/analysis/beat/GrooveAnalyzer.d.ts +192 -0
  83. package/dist/core/analysis/beat/GrooveAnalyzer.d.ts.map +1 -0
  84. package/dist/core/analysis/beat/OnsetStrengthEnvelope.d.ts +133 -0
  85. package/dist/core/analysis/beat/OnsetStrengthEnvelope.d.ts.map +1 -0
  86. package/dist/core/analysis/beat/PhraseAnalyzer.d.ts +230 -0
  87. package/dist/core/analysis/beat/PhraseAnalyzer.d.ts.map +1 -0
  88. package/dist/core/analysis/beat/RhythmQuantizer.d.ts +399 -0
  89. package/dist/core/analysis/beat/RhythmQuantizer.d.ts.map +1 -0
  90. package/dist/core/analysis/beat/RhythmicBalancer.d.ts +262 -0
  91. package/dist/core/analysis/beat/RhythmicBalancer.d.ts.map +1 -0
  92. package/dist/core/analysis/beat/StreamScorer.d.ts +275 -0
  93. package/dist/core/analysis/beat/StreamScorer.d.ts.map +1 -0
  94. package/dist/core/analysis/beat/TempoAwareQuantizer.d.ts +256 -0
  95. package/dist/core/analysis/beat/TempoAwareQuantizer.d.ts.map +1 -0
  96. package/dist/core/analysis/beat/TempoDetector.d.ts +220 -0
  97. package/dist/core/analysis/beat/TempoDetector.d.ts.map +1 -0
  98. package/dist/core/analysis/beat/TransientDetector.d.ts +303 -0
  99. package/dist/core/analysis/beat/TransientDetector.d.ts.map +1 -0
  100. package/dist/core/analysis/beat/beatKeyHelpers.d.ts +180 -0
  101. package/dist/core/analysis/beat/beatKeyHelpers.d.ts.map +1 -0
  102. package/dist/core/analysis/beat/index.d.ts +41 -0
  103. package/dist/core/analysis/beat/index.d.ts.map +1 -0
  104. package/dist/core/analysis/beat/utils/audioUtils.d.ts +204 -0
  105. package/dist/core/analysis/beat/utils/audioUtils.d.ts.map +1 -0
  106. package/dist/core/analysis/beat/utils/beatInterpolationDebug.d.ts +404 -0
  107. package/dist/core/analysis/beat/utils/beatInterpolationDebug.d.ts.map +1 -0
  108. package/dist/core/analysis/beat/utils/subdivideBeatMap.d.ts +61 -0
  109. package/dist/core/analysis/beat/utils/subdivideBeatMap.d.ts.map +1 -0
  110. package/dist/core/analysis/beat/utils/unifyBeatMap.d.ts +33 -0
  111. package/dist/core/analysis/beat/utils/unifyBeatMap.d.ts.map +1 -0
  112. package/dist/core/analysis/index.d.ts +18 -0
  113. package/dist/core/analysis/index.d.ts.map +1 -0
  114. package/dist/core/combat/AI/AICombatRunner.d.ts +108 -0
  115. package/dist/core/combat/AI/AICombatRunner.d.ts.map +1 -0
  116. package/dist/core/combat/AI/CombatAI.d.ts +179 -0
  117. package/dist/core/combat/AI/CombatAI.d.ts.map +1 -0
  118. package/dist/core/combat/AI/CombatMetricsTracker.d.ts +30 -0
  119. package/dist/core/combat/AI/CombatMetricsTracker.d.ts.map +1 -0
  120. package/dist/core/combat/Analysis/BalanceValidator.d.ts +170 -0
  121. package/dist/core/combat/Analysis/BalanceValidator.d.ts.map +1 -0
  122. package/dist/core/combat/Analysis/ComparativeAnalyzer.d.ts +231 -0
  123. package/dist/core/combat/Analysis/ComparativeAnalyzer.d.ts.map +1 -0
  124. package/dist/core/combat/Analysis/DifficultyCalculator.d.ts +203 -0
  125. package/dist/core/combat/Analysis/DifficultyCalculator.d.ts.map +1 -0
  126. package/dist/core/combat/Analysis/ParameterSweep.d.ts +201 -0
  127. package/dist/core/combat/Analysis/ParameterSweep.d.ts.map +1 -0
  128. package/dist/core/combat/AttackResolver.d.ts +220 -0
  129. package/dist/core/combat/AttackResolver.d.ts.map +1 -0
  130. package/dist/core/combat/CombatEngine.d.ts +388 -0
  131. package/dist/core/combat/CombatEngine.d.ts.map +1 -0
  132. package/dist/core/combat/DiceRoller.d.ts +115 -0
  133. package/dist/core/combat/DiceRoller.d.ts.map +1 -0
  134. package/dist/core/combat/InitiativeRoller.d.ts +62 -0
  135. package/dist/core/combat/InitiativeRoller.d.ts.map +1 -0
  136. package/dist/core/combat/PartyAnalyzer.d.ts +215 -0
  137. package/dist/core/combat/PartyAnalyzer.d.ts.map +1 -0
  138. package/dist/core/combat/SeededDiceRoller.d.ts +120 -0
  139. package/dist/core/combat/SeededDiceRoller.d.ts.map +1 -0
  140. package/dist/core/combat/Simulation/CombatSimulator.d.ts +366 -0
  141. package/dist/core/combat/Simulation/CombatSimulator.d.ts.map +1 -0
  142. package/dist/core/combat/SpellCaster.d.ts +113 -0
  143. package/dist/core/combat/SpellCaster.d.ts.map +1 -0
  144. package/dist/core/config/index.d.ts +24 -0
  145. package/dist/core/config/index.d.ts.map +1 -0
  146. package/dist/core/config/progressionConfig.d.ts +73 -0
  147. package/dist/core/config/progressionConfig.d.ts.map +1 -0
  148. package/dist/core/config/sensorConfig.d.ts +134 -0
  149. package/dist/core/config/sensorConfig.d.ts.map +1 -0
  150. package/dist/core/equipment/BoxOpener.d.ts +175 -0
  151. package/dist/core/equipment/BoxOpener.d.ts.map +1 -0
  152. package/dist/core/equipment/EquipmentEffectApplier.d.ts +189 -0
  153. package/dist/core/equipment/EquipmentEffectApplier.d.ts.map +1 -0
  154. package/dist/core/equipment/EquipmentModifier.d.ts +327 -0
  155. package/dist/core/equipment/EquipmentModifier.d.ts.map +1 -0
  156. package/dist/core/equipment/EquipmentSpawnHelper.d.ts +246 -0
  157. package/dist/core/equipment/EquipmentSpawnHelper.d.ts.map +1 -0
  158. package/dist/core/equipment/EquipmentValidator.d.ts +173 -0
  159. package/dist/core/equipment/EquipmentValidator.d.ts.map +1 -0
  160. package/dist/core/extensions/ExtensionManager.d.ts +517 -0
  161. package/dist/core/extensions/ExtensionManager.d.ts.map +1 -0
  162. package/dist/core/extensions/WeightedSelector.d.ts +156 -0
  163. package/dist/core/extensions/WeightedSelector.d.ts.map +1 -0
  164. package/dist/core/extensions/index.d.ts +11 -0
  165. package/dist/core/extensions/index.d.ts.map +1 -0
  166. package/dist/core/extensions/initializeDefaults.d.ts +170 -0
  167. package/dist/core/extensions/initializeDefaults.d.ts.map +1 -0
  168. package/dist/core/features/FeatureEffectApplier.d.ts +102 -0
  169. package/dist/core/features/FeatureEffectApplier.d.ts.map +1 -0
  170. package/dist/core/features/FeatureQuery.d.ts +368 -0
  171. package/dist/core/features/FeatureQuery.d.ts.map +1 -0
  172. package/dist/core/features/FeatureTypes.d.ts +199 -0
  173. package/dist/core/features/FeatureTypes.d.ts.map +1 -0
  174. package/dist/core/features/FeatureValidator.d.ts +149 -0
  175. package/dist/core/features/FeatureValidator.d.ts.map +1 -0
  176. package/dist/core/features/index.d.ts +12 -0
  177. package/dist/core/features/index.d.ts.map +1 -0
  178. package/dist/core/generation/AbilityScoreCalculator.d.ts +83 -0
  179. package/dist/core/generation/AbilityScoreCalculator.d.ts.map +1 -0
  180. package/dist/core/generation/AppearanceGenerator.d.ts +32 -0
  181. package/dist/core/generation/AppearanceGenerator.d.ts.map +1 -0
  182. package/dist/core/generation/BeatConverter.d.ts +127 -0
  183. package/dist/core/generation/BeatConverter.d.ts.map +1 -0
  184. package/dist/core/generation/ButtonMapper.d.ts +346 -0
  185. package/dist/core/generation/ButtonMapper.d.ts.map +1 -0
  186. package/dist/core/generation/ButtonPatternLibrary.d.ts +92 -0
  187. package/dist/core/generation/ButtonPatternLibrary.d.ts.map +1 -0
  188. package/dist/core/generation/CRLevelConverter.d.ts +242 -0
  189. package/dist/core/generation/CRLevelConverter.d.ts.map +1 -0
  190. package/dist/core/generation/CharacterGenerator.d.ts +194 -0
  191. package/dist/core/generation/CharacterGenerator.d.ts.map +1 -0
  192. package/dist/core/generation/ClassSuggester.d.ts +184 -0
  193. package/dist/core/generation/ClassSuggester.d.ts.map +1 -0
  194. package/dist/core/generation/EnemyEquipmentGenerator.d.ts +151 -0
  195. package/dist/core/generation/EnemyEquipmentGenerator.d.ts.map +1 -0
  196. package/dist/core/generation/EnemyGenerator.d.ts +595 -0
  197. package/dist/core/generation/EnemyGenerator.d.ts.map +1 -0
  198. package/dist/core/generation/EquipmentGenerator.d.ts +204 -0
  199. package/dist/core/generation/EquipmentGenerator.d.ts.map +1 -0
  200. package/dist/core/generation/LegendaryGenerator.d.ts +213 -0
  201. package/dist/core/generation/LegendaryGenerator.d.ts.map +1 -0
  202. package/dist/core/generation/LevelGenerator.d.ts +390 -0
  203. package/dist/core/generation/LevelGenerator.d.ts.map +1 -0
  204. package/dist/core/generation/NamingEngine.d.ts +136 -0
  205. package/dist/core/generation/NamingEngine.d.ts.map +1 -0
  206. package/dist/core/generation/PitchBeatLinker.d.ts +150 -0
  207. package/dist/core/generation/PitchBeatLinker.d.ts.map +1 -0
  208. package/dist/core/generation/RaceSelector.d.ts +58 -0
  209. package/dist/core/generation/RaceSelector.d.ts.map +1 -0
  210. package/dist/core/generation/RhythmGenerator.d.ts +597 -0
  211. package/dist/core/generation/RhythmGenerator.d.ts.map +1 -0
  212. package/dist/core/generation/SkillAssigner.d.ts +78 -0
  213. package/dist/core/generation/SkillAssigner.d.ts.map +1 -0
  214. package/dist/core/generation/SpellManager.d.ts +132 -0
  215. package/dist/core/generation/SpellManager.d.ts.map +1 -0
  216. package/dist/core/generation/SpellcastingGenerator.d.ts +255 -0
  217. package/dist/core/generation/SpellcastingGenerator.d.ts.map +1 -0
  218. package/dist/core/generation/index.d.ts +41 -0
  219. package/dist/core/generation/index.d.ts.map +1 -0
  220. package/dist/core/parser/MetadataExtractor.d.ts +66 -0
  221. package/dist/core/parser/MetadataExtractor.d.ts.map +1 -0
  222. package/dist/core/parser/PlaylistParser.d.ts +45 -0
  223. package/dist/core/parser/PlaylistParser.d.ts.map +1 -0
  224. package/dist/core/playback/SubdivisionPlaybackController.d.ts +333 -0
  225. package/dist/core/playback/SubdivisionPlaybackController.d.ts.map +1 -0
  226. package/dist/core/playback/index.d.ts +5 -0
  227. package/dist/core/playback/index.d.ts.map +1 -0
  228. package/dist/core/progression/CharacterUpdater.d.ts +203 -0
  229. package/dist/core/progression/CharacterUpdater.d.ts.map +1 -0
  230. package/dist/core/progression/LevelUpProcessor.d.ts +234 -0
  231. package/dist/core/progression/LevelUpProcessor.d.ts.map +1 -0
  232. package/dist/core/progression/PrestigeSystem.d.ts +217 -0
  233. package/dist/core/progression/PrestigeSystem.d.ts.map +1 -0
  234. package/dist/core/progression/RhythmXPCalculator.d.ts +182 -0
  235. package/dist/core/progression/RhythmXPCalculator.d.ts.map +1 -0
  236. package/dist/core/progression/SessionTracker.d.ts +169 -0
  237. package/dist/core/progression/SessionTracker.d.ts.map +1 -0
  238. package/dist/core/progression/XPCalculator.d.ts +128 -0
  239. package/dist/core/progression/XPCalculator.d.ts.map +1 -0
  240. package/dist/core/progression/stat/StatIncreaseStrategy.d.ts +97 -0
  241. package/dist/core/progression/stat/StatIncreaseStrategy.d.ts.map +1 -0
  242. package/dist/core/progression/stat/StatManager.d.ts +179 -0
  243. package/dist/core/progression/stat/StatManager.d.ts.map +1 -0
  244. package/dist/core/sensors/EnvironmentalSensors.d.ts +301 -0
  245. package/dist/core/sensors/EnvironmentalSensors.d.ts.map +1 -0
  246. package/dist/core/sensors/GamingPlatformSensors.d.ts +162 -0
  247. package/dist/core/sensors/GamingPlatformSensors.d.ts.map +1 -0
  248. package/dist/core/sensors/GeolocationProvider.d.ts +156 -0
  249. package/dist/core/sensors/GeolocationProvider.d.ts.map +1 -0
  250. package/dist/core/sensors/MotionDetector.d.ts +58 -0
  251. package/dist/core/sensors/MotionDetector.d.ts.map +1 -0
  252. package/dist/core/sensors/SteamAPIClient.d.ts +108 -0
  253. package/dist/core/sensors/SteamAPIClient.d.ts.map +1 -0
  254. package/dist/core/sensors/WeatherAPIClient.d.ts +360 -0
  255. package/dist/core/sensors/WeatherAPIClient.d.ts.map +1 -0
  256. package/dist/core/sensors/schemas/weather.schema.d.ts +144 -0
  257. package/dist/core/sensors/schemas/weather.schema.d.ts.map +1 -0
  258. package/dist/core/skills/SkillQuery.d.ts +159 -0
  259. package/dist/core/skills/SkillQuery.d.ts.map +1 -0
  260. package/dist/core/skills/SkillTypes.d.ts +233 -0
  261. package/dist/core/skills/SkillTypes.d.ts.map +1 -0
  262. package/dist/core/skills/SkillValidator.d.ts +146 -0
  263. package/dist/core/skills/SkillValidator.d.ts.map +1 -0
  264. package/dist/core/skills/index.d.ts +11 -0
  265. package/dist/core/skills/index.d.ts.map +1 -0
  266. package/dist/core/spells/SpellQuery.d.ts +194 -0
  267. package/dist/core/spells/SpellQuery.d.ts.map +1 -0
  268. package/dist/core/spells/SpellTypes.d.ts +71 -0
  269. package/dist/core/spells/SpellTypes.d.ts.map +1 -0
  270. package/dist/core/spells/SpellValidator.d.ts +129 -0
  271. package/dist/core/spells/SpellValidator.d.ts.map +1 -0
  272. package/dist/core/spells/index.d.ts +11 -0
  273. package/dist/core/spells/index.d.ts.map +1 -0
  274. package/dist/core/types/AudioProfile.d.ts +143 -0
  275. package/dist/core/types/AudioProfile.d.ts.map +1 -0
  276. package/dist/core/types/BeatMap.d.ts +1825 -0
  277. package/dist/core/types/BeatMap.d.ts.map +1 -0
  278. package/dist/core/types/ButtonMapping.d.ts +345 -0
  279. package/dist/core/types/ButtonMapping.d.ts.map +1 -0
  280. package/dist/core/types/Character.d.ts +397 -0
  281. package/dist/core/types/Character.d.ts.map +1 -0
  282. package/dist/core/types/ChartedBeatMap.d.ts +169 -0
  283. package/dist/core/types/ChartedBeatMap.d.ts.map +1 -0
  284. package/dist/core/types/Combat.d.ts +268 -0
  285. package/dist/core/types/Combat.d.ts.map +1 -0
  286. package/dist/core/types/CombatAI.d.ts +143 -0
  287. package/dist/core/types/CombatAI.d.ts.map +1 -0
  288. package/dist/core/types/Enemy.d.ts +447 -0
  289. package/dist/core/types/Enemy.d.ts.map +1 -0
  290. package/dist/core/types/Environmental.d.ts +213 -0
  291. package/dist/core/types/Environmental.d.ts.map +1 -0
  292. package/dist/core/types/Equipment.d.ts +309 -0
  293. package/dist/core/types/Equipment.d.ts.map +1 -0
  294. package/dist/core/types/ISessionTracker.d.ts +48 -0
  295. package/dist/core/types/ISessionTracker.d.ts.map +1 -0
  296. package/dist/core/types/LevelExport.d.ts +366 -0
  297. package/dist/core/types/LevelExport.d.ts.map +1 -0
  298. package/dist/core/types/Playlist.d.ts +70 -0
  299. package/dist/core/types/Playlist.d.ts.map +1 -0
  300. package/dist/core/types/Prestige.d.ts +94 -0
  301. package/dist/core/types/Prestige.d.ts.map +1 -0
  302. package/dist/core/types/Progression.d.ts +214 -0
  303. package/dist/core/types/Progression.d.ts.map +1 -0
  304. package/dist/core/types/RhythmXP.d.ts +398 -0
  305. package/dist/core/types/RhythmXP.d.ts.map +1 -0
  306. package/dist/core/utils/AbilityConstants.d.ts +31 -0
  307. package/dist/core/utils/AbilityConstants.d.ts.map +1 -0
  308. package/dist/core/utils/EffectApplierUtils.d.ts +56 -0
  309. package/dist/core/utils/EffectApplierUtils.d.ts.map +1 -0
  310. package/dist/core/utils/ImageValidator.d.ts +66 -0
  311. package/dist/core/utils/ImageValidator.d.ts.map +1 -0
  312. package/dist/core/utils/PrerequisiteValidator.d.ts +88 -0
  313. package/dist/core/utils/PrerequisiteValidator.d.ts.map +1 -0
  314. package/dist/essentia-wasm.es-BUEnKUts.js +2990 -0
  315. package/dist/essentia.js-model.es-CGA0xotH.js +306 -0
  316. package/dist/index.d.ts +176 -0
  317. package/dist/index.d.ts.map +1 -0
  318. package/dist/playlist-data-engine.js +124 -0
  319. package/dist/playlist-data-engine.mjs +49251 -0
  320. package/dist/utils/EnchantmentLibrary.d.ts +378 -0
  321. package/dist/utils/EnchantmentLibrary.d.ts.map +1 -0
  322. package/dist/utils/arweaveGatewayManager.d.ts +485 -0
  323. package/dist/utils/arweaveGatewayManager.d.ts.map +1 -0
  324. package/dist/utils/arweaveUtils.d.ts +118 -0
  325. package/dist/utils/arweaveUtils.d.ts.map +1 -0
  326. package/dist/utils/constants.d.ts +439 -0
  327. package/dist/utils/constants.d.ts.map +1 -0
  328. package/dist/utils/equipmentConstants.d.ts +60 -0
  329. package/dist/utils/equipmentConstants.d.ts.map +1 -0
  330. package/dist/utils/hash.d.ts +33 -0
  331. package/dist/utils/hash.d.ts.map +1 -0
  332. package/dist/utils/logger.d.ts +192 -0
  333. package/dist/utils/logger.d.ts.map +1 -0
  334. package/dist/utils/magicItemExamples.d.ts +46 -0
  335. package/dist/utils/magicItemExamples.d.ts.map +1 -0
  336. package/dist/utils/playlistUtils.d.ts +149 -0
  337. package/dist/utils/playlistUtils.d.ts.map +1 -0
  338. package/dist/utils/random.d.ts +34 -0
  339. package/dist/utils/random.d.ts.map +1 -0
  340. package/dist/utils/sensorDashboard.d.ts +60 -0
  341. package/dist/utils/sensorDashboard.d.ts.map +1 -0
  342. package/dist/utils/validators.d.ts +189 -0
  343. package/dist/utils/validators.d.ts.map +1 -0
  344. package/dist/vite.svg +1 -0
  345. package/package.json +82 -0
@@ -0,0 +1,447 @@
1
+ /**
2
+ * Enemy Generation Type Definitions
3
+ *
4
+ * Defines types and interfaces for the enemy generation system.
5
+ * Enemies are generated as CharacterSheet instances with enemy-specific
6
+ * traits and abilities, supporting multiple rarity tiers and audio-influenced generation.
7
+ */
8
+ import type { AudioProfile } from './AudioProfile.js';
9
+ import type { AbilityScores, Attack } from './Character.js';
10
+ import type { DamageType } from './Combat.js';
11
+ import type { PlaylistTrack } from './Playlist.js';
12
+ /**
13
+ * Enemy categories for classification and filtering
14
+ */
15
+ export type EnemyCategory = 'humanoid' | 'beast' | 'undead' | 'dragon' | 'fiend' | 'construct' | 'elemental' | 'monstrosity';
16
+ /**
17
+ * Rarity tiers that determine enemy power scaling
18
+ *
19
+ * Each rarity increases stats, scales signature ability dice, and adds extra abilities
20
+ */
21
+ export type EnemyRarity = 'common' | 'uncommon' | 'elite' | 'boss';
22
+ /**
23
+ * Combat archetypes that define enemy role in battle
24
+ */
25
+ export type EnemyArchetype = 'brute' | 'archer' | 'support';
26
+ /**
27
+ * Enemy mix modes for encounter generation
28
+ */
29
+ export type EnemyMixMode = 'uniform' | 'custom' | 'category' | 'random';
30
+ /**
31
+ * Difficulty settings for party-based encounters
32
+ *
33
+ * Maps to D&D 5e encounter difficulty thresholds
34
+ */
35
+ export type EncounterDifficulty = 'easy' | 'medium' | 'hard' | 'deadly';
36
+ /**
37
+ * Signature ability - The unique ability shared across all rarities of an enemy type
38
+ *
39
+ * The damageDie scales by rarity: d6 (common) -> d8 (uncommon) -> d10 (elite) -> d12 (boss)
40
+ */
41
+ export interface SignatureAbility {
42
+ /** Unique identifier for this ability */
43
+ id: string;
44
+ /** Display name shown to players */
45
+ name: string;
46
+ /** Detailed description of what the ability does */
47
+ description: string;
48
+ /** Base damage die (scales by rarity: d6 -> d8 -> d10 -> d12) */
49
+ damageDie: string;
50
+ /** Type of damage dealt */
51
+ damageType: DamageType;
52
+ /** Attack type (melee, ranged, spell) */
53
+ attackType: 'melee' | 'ranged' | 'spell';
54
+ /** Range in feet (for ranged attacks) */
55
+ range?: number;
56
+ /** Any special properties (e.g., 'versatile', 'finesse') */
57
+ properties?: string[];
58
+ }
59
+ /**
60
+ * Audio preference weights for template selection
61
+ *
62
+ * Determines which templates are more likely to be selected
63
+ * based on audio profile characteristics
64
+ */
65
+ export interface AudioPreference {
66
+ /** Weight for bass-heavy audio (0.0 - 1.0) */
67
+ bass: number;
68
+ /** Weight for mid-range audio (0.0 - 1.0) */
69
+ mid: number;
70
+ /** Weight for treble-heavy audio (0.0 - 1.0) */
71
+ treble: number;
72
+ }
73
+ /**
74
+ * Enemy template - Base definition for an enemy type
75
+ *
76
+ * Templates define the foundation of an enemy that is then scaled
77
+ * by rarity tier and modified by audio profile
78
+ */
79
+ export interface EnemyTemplate {
80
+ /** Unique identifier (e.g., 'orc', 'goblin-archer', 'giant-spider') */
81
+ id: string;
82
+ /** Display name (used as enemy name when generated) */
83
+ name: string;
84
+ /** Category for classification and filtering */
85
+ category: EnemyCategory;
86
+ /** Combat role archetype */
87
+ archetype: EnemyArchetype;
88
+ /** Signature ability shared across all rarities */
89
+ signatureAbility: SignatureAbility;
90
+ /** Base ability scores before rarity scaling */
91
+ baseStats: AbilityScores;
92
+ /** Base hit points before rarity scaling */
93
+ baseHP: number;
94
+ /** Base armor class before DEX modifier */
95
+ baseAC: number;
96
+ /** Base speed in feet */
97
+ baseSpeed: number;
98
+ /** Audio preference weights for template selection */
99
+ audioPreference: AudioPreference;
100
+ /** Damage resistances/immunities for Elite+ rarity scaling */
101
+ resistances?: {
102
+ /** Damage types resisted (half damage) */
103
+ resistances?: DamageType[];
104
+ /** Damage types immune (zero damage) */
105
+ immunities?: DamageType[];
106
+ };
107
+ /** Optional icon URL for small UI display */
108
+ icon?: string;
109
+ /** Optional image URL for larger display */
110
+ image?: string;
111
+ }
112
+ /**
113
+ * Rarity configuration - Scaling factors per rarity tier
114
+ *
115
+ * Defines how enemies scale across rarity tiers
116
+ */
117
+ export interface RarityConfig {
118
+ /** Multiplier applied to base ability scores */
119
+ statMultiplier: number;
120
+ /** Multiplier applied to HP on top of stat scaling (separate for dramatic HP differences) */
121
+ hpMultiplier: number;
122
+ /** Die size for signature ability (6 = d6, 8 = d8, etc.) */
123
+ signatureDieSize: number;
124
+ /** Number of extra abilities from FeatureQuery pool */
125
+ extraAbilityCount: number;
126
+ /** Whether this rarity gains resistances from template */
127
+ hasResistances: boolean;
128
+ }
129
+ /**
130
+ * Options for generating a single enemy
131
+ *
132
+ * All generation is deterministic based on the provided seed
133
+ *
134
+ * ## CR vs Rarity Distinction
135
+ *
136
+ * **CR (Challenge Rating)** and **Rarity** are two INDEPENDENT axes:
137
+ *
138
+ * | Property | Determines | Examples |
139
+ * |----------|------------|----------|
140
+ * | **CR** | Power level (stats, HP, level, proficiency) | Weak beast vs. ancient dragon |
141
+ * | **Rarity** | Complexity (abilities, resistances, legendary actions) | Simple guard vs. complex spellcaster |
142
+ *
143
+ * **Any CR can combine with any rarity:**
144
+ * - CR 0.25 + Boss = Goblin chieftain (weak but complex)
145
+ * - CR 20 + Common = Ancient beast (powerful but simple)
146
+ *
147
+ * **CR is the primary power-scaling parameter.** Always provide `cr` for predictable enemy power.
148
+ * If omitted, CR is derived from rarity (deprecated behavior for backward compatibility).
149
+ */
150
+ export interface EnemyGenerationOptions {
151
+ /** Required - Seed for deterministic generation */
152
+ seed: string;
153
+ /**
154
+ * Challenge Rating for power scaling.
155
+ *
156
+ * **RECOMMENDED** - Always provide CR for predictable power scaling.
157
+ * Determines level, HP, and base stats. Fractional CRs (0.25, 0.5) create sub-level enemies
158
+ * with reduced stats (75%/85% respectively).
159
+ *
160
+ * If omitted, falls back to rarity-based CR (deprecated for backward compatibility).
161
+ *
162
+ * @example
163
+ * ```typescript
164
+ * // Generate a CR 5 elite enemy
165
+ * EnemyGenerator.generate({ seed: 'test', cr: 5, rarity: 'elite' });
166
+ *
167
+ * // Generate a weak but complex boss (CR 0.25 + boss)
168
+ * EnemyGenerator.generate({ seed: 'test', cr: 0.25, rarity: 'boss' });
169
+ * ```
170
+ */
171
+ cr?: number;
172
+ /**
173
+ * Optional level override. If provided, overrides CR-based level calculation.
174
+ * Default: derived from CR via CRLevelConverter (CR ≈ level in D&D 5e)
175
+ */
176
+ level?: number;
177
+ /** Optional - Force specific template by ID */
178
+ templateId?: string;
179
+ /**
180
+ * Rarity tier for complexity scaling.
181
+ * Affects ability count, resistances, and legendary actions - NOT power level.
182
+ * @default 'common'
183
+ */
184
+ rarity?: EnemyRarity;
185
+ /** Optional - Difficulty multiplier (default: 1.0) */
186
+ difficultyMultiplier?: number;
187
+ /** Optional - Audio profile for stat influence */
188
+ audioProfile?: AudioProfile;
189
+ /** Optional - Track data (required if audioProfile provided) */
190
+ track?: PlaylistTrack;
191
+ /**
192
+ * Optional - Override effective levels for HP, attack, and defense independently
193
+ *
194
+ * Allows each stat axis to scale at a different effective level than the CR-derived level.
195
+ * When not set, all stats use the CR-derived level (identical to current generation).
196
+ *
197
+ * @see StatLevelOverrides
198
+ * @example
199
+ * ```typescript
200
+ * // Glass cannon: high attack, low HP and defense
201
+ * EnemyGenerator.generate({
202
+ * seed: 'glass-cannon',
203
+ * cr: 5,
204
+ * rarity: 'elite',
205
+ * statLevels: { attackLevel: 15, hpLevel: 1, defenseLevel: 1 }
206
+ * });
207
+ * ```
208
+ */
209
+ statLevels?: StatLevelOverrides;
210
+ /** Optional - Enemy category for template selection */
211
+ category?: EnemyCategory;
212
+ /** Optional - Combat archetype for template selection */
213
+ archetype?: EnemyArchetype;
214
+ }
215
+ /**
216
+ * Options for generating an encounter (group of enemies)
217
+ *
218
+ * Supports two generation modes:
219
+ * 1. Party-based: Analyze party strength for balanced encounter
220
+ * 2. CR-based: Generate enemies matching target CR directly
221
+ *
222
+ * CR vs Rarity Distinction:
223
+ * - **CR (Challenge Rating)**: Determines power level (stats, HP, level, proficiency)
224
+ * - **Rarity**: Determines complexity (abilities, resistances, legendary actions)
225
+ *
226
+ * By default, rarity is **independent of CR**. Set `scaleRarityWithCR: true` to enable
227
+ * automatic rarity scaling based on CR tier (opt-in feature).
228
+ */
229
+ export interface EncounterGenerationOptions {
230
+ /** Required - Seed for deterministic generation */
231
+ seed: string;
232
+ /** Required - Number of enemies to generate */
233
+ count: number;
234
+ /** Optional - Difficulty for party-based encounters (default: 'medium') */
235
+ difficulty?: EncounterDifficulty;
236
+ /** Optional - Target CR for CR-based generation (no party needed) */
237
+ targetCR?: number;
238
+ /**
239
+ * Optional - Base rarity for all enemies (default: 'common')
240
+ *
241
+ * Rarity is independent of CR by default. Use `scaleRarityWithCR: true` to enable
242
+ * automatic rarity scaling based on CR tier.
243
+ */
244
+ baseRarity?: EnemyRarity;
245
+ /**
246
+ * Optional - Enable automatic rarity scaling based on CR (default: false)
247
+ *
248
+ * When enabled, rarities scale gradually with CR:
249
+ * - CR 0-2: all common
250
+ * - CR 3-5: one uncommon upgrade per party
251
+ * - CR 6-10: two uncommon upgrades
252
+ * - CR 11-15: three uncommon upgrades
253
+ * - CR 16-20: one elite + uncommon upgrades
254
+ * - CR 21-30: two elite + uncommon upgrades
255
+ * - CR 31+: all elite
256
+ *
257
+ * When disabled (default), uses explicit `baseRarity` for all enemies.
258
+ */
259
+ scaleRarityWithCR?: boolean;
260
+ /** Optional - Fine-tune difficulty multiplier (default: 1.0) */
261
+ difficultyMultiplier?: number;
262
+ /** Optional - Filter by category */
263
+ category?: EnemyCategory;
264
+ /** Optional - Filter by archetype */
265
+ archetype?: EnemyArchetype;
266
+ /** Optional - Force specific template for all enemies */
267
+ templateId?: string;
268
+ /** Optional - Enemy mix mode (default: 'uniform') */
269
+ enemyMix?: EnemyMixMode;
270
+ /** Optional - Template IDs for 'custom' mix mode */
271
+ templates?: string[];
272
+ /** Optional - Audio profile for template selection and stat influence */
273
+ audioProfile?: AudioProfile;
274
+ /** Optional - Track data (required if audioProfile provided) */
275
+ track?: PlaylistTrack;
276
+ /** Optional - Enable leader promotion for groups > 3 (default: true) */
277
+ enableLeaderPromotion?: boolean;
278
+ /** Optional - Allow mixing enemy categories in 'random' mode (default: false) */
279
+ allowMixedCategories?: boolean;
280
+ /** Optional - Include lair actions for boss enemies (default: false) */
281
+ lairFeatures?: boolean;
282
+ /** Optional - Force minimum rarity for all enemies */
283
+ minRarity?: EnemyRarity;
284
+ /** Optional - Cap maximum rarity for all enemies */
285
+ maxRarity?: EnemyRarity;
286
+ /** Optional - Override effective levels for HP, attack, and defense independently */
287
+ statLevels?: StatLevelOverrides;
288
+ }
289
+ /**
290
+ * Generated enemy metadata
291
+ *
292
+ * Tracks information about how an enemy was generated
293
+ */
294
+ export interface EnemyMetadata {
295
+ /** Template ID used for generation */
296
+ templateId: string;
297
+ /** Rarity tier of this enemy */
298
+ rarity: EnemyRarity;
299
+ /** Seed used for generation */
300
+ seed: string;
301
+ /** Whether leader promotion was applied */
302
+ isLeader?: boolean;
303
+ /** Audio profile used (if any) */
304
+ audioProfile?: AudioProfile;
305
+ }
306
+ /**
307
+ * Feature type for enemy abilities
308
+ *
309
+ * Reuses ClassFeature structure but simplified for enemy use
310
+ * Enemies don't have classes, so features are standalone abilities
311
+ */
312
+ export interface EnemyFeature {
313
+ /** Unique identifier */
314
+ id: string;
315
+ /** Display name */
316
+ name: string;
317
+ /** Description of ability */
318
+ description: string;
319
+ /** Type: passive, active, resource, trigger */
320
+ type: 'passive' | 'active' | 'resource' | 'trigger';
321
+ /** Attack data if this is an attack ability */
322
+ attack?: Attack;
323
+ /** Tags for filtering (e.g., ['melee', 'damage', 'control']) */
324
+ tags?: string[];
325
+ /** Rarity level this feature appears at */
326
+ minRarity?: EnemyRarity;
327
+ }
328
+ /**
329
+ * Type guard to check if a value is a valid EnemyCategory
330
+ */
331
+ export declare function isValidEnemyCategory(value: unknown): value is EnemyCategory;
332
+ /**
333
+ * Type guard to check if a value is a valid EnemyRarity
334
+ */
335
+ export declare function isValidEnemyRarity(value: unknown): value is EnemyRarity;
336
+ /**
337
+ * Type guard to check if a value is a valid EnemyArchetype
338
+ */
339
+ export declare function isValidEnemyArchetype(value: unknown): value is EnemyArchetype;
340
+ /**
341
+ * Stat Level Overrides — Allow HP, attack, and defense to scale independently
342
+ *
343
+ * Normally all enemy stats scale together as a unit determined by CR + rarity.
344
+ * StatLevelOverrides allows each axis to be independently set to a different
345
+ * effective level, enabling creative encounter designs:
346
+ * - **Tank**: high HP level, normal attack, high defense
347
+ * - **Glass cannon**: low HP, high attack, low defense
348
+ * - **Brute**: high HP, high attack, low defense
349
+ * - **Standard**: all at CR level (default, no overrides needed)
350
+ *
351
+ * When all three levels match CR, output is identical to current generation
352
+ * (backward compatible). The AI and simulator don't need to know about this —
353
+ * they read the final CharacterSheet stats. This is purely a generation-layer
354
+ * feature.
355
+ */
356
+ export interface StatLevelOverrides {
357
+ /** Override HP to this effective level (default: CR-derived level) */
358
+ hpLevel?: number;
359
+ /** Override attack scaling to this effective level (damage die + modifier + attack bonus) */
360
+ attackLevel?: number;
361
+ /** Override defense scaling to this effective level (AC) */
362
+ defenseLevel?: number;
363
+ }
364
+ /**
365
+ * Equipment template for enemy generation
366
+ *
367
+ * Defines equipment options for enemies based on archetype and rarity.
368
+ * Used by EquipmentGenerator to select appropriate weapons/armor for enemies.
369
+ */
370
+ export interface EquipmentTemplate {
371
+ /** Unique identifier for this equipment template */
372
+ id: string;
373
+ /** Display name of the equipment */
374
+ name: string;
375
+ /** Equipment type: weapon, armor, or shield */
376
+ type: 'weapon' | 'armor' | 'shield';
377
+ /** Archetypes that can use this equipment */
378
+ archetypes: EnemyArchetype[];
379
+ /** Rarity tiers that can spawn this equipment */
380
+ rarities: EnemyRarity[];
381
+ /** Damage dice (for weapons) */
382
+ damage?: string;
383
+ /** AC bonus (for armor/shields) */
384
+ acBonus?: number;
385
+ /** Weapon properties (e.g., ['reach', 'two-handed']) */
386
+ properties?: string[];
387
+ }
388
+ /**
389
+ * Equipment configuration for generated enemies
390
+ *
391
+ * Contains the equipment assigned to an enemy during generation.
392
+ */
393
+ export interface EquipmentConfig {
394
+ /** Primary weapon (if any) */
395
+ weapon?: EquipmentTemplate;
396
+ /** Armor (if any) */
397
+ armor?: EquipmentTemplate;
398
+ /** Shield (if any) */
399
+ shield?: EquipmentTemplate;
400
+ }
401
+ /**
402
+ * Type guard to check if a value is a valid EncounterDifficulty
403
+ */
404
+ export declare function isValidEncounterDifficulty(value: unknown): value is EncounterDifficulty;
405
+ /**
406
+ * Legendary action for boss enemies
407
+ *
408
+ * Legendary actions are special abilities that boss enemies can use at the end
409
+ * of another creature's turn, spending legendary action points.
410
+ */
411
+ export interface LegendaryAction {
412
+ /** Unique identifier for this action */
413
+ id: string;
414
+ /** Display name shown to players */
415
+ name: string;
416
+ /** Detailed description of what the action does */
417
+ description: string;
418
+ /** Cost in legendary action points (1, 2, or 3) */
419
+ cost: number;
420
+ /** Effect description for combat system */
421
+ effect: string;
422
+ /** Damage dice if this action deals damage */
423
+ damage?: string;
424
+ /** Damage type for damaging actions */
425
+ damageType?: string;
426
+ /** Archetypes this action is appropriate for */
427
+ archetypes: EnemyArchetype[];
428
+ /** Tags for filtering and categorization */
429
+ tags?: string[];
430
+ }
431
+ /**
432
+ * Legendary configuration for boss-tier enemies
433
+ *
434
+ * Contains all legendary-specific data for a boss enemy,
435
+ * including legendary resistances per day and available legendary actions.
436
+ */
437
+ export interface LegendaryConfig {
438
+ /** Number of legendary resistances per day */
439
+ resistances: number;
440
+ /** Legendary actions available to this boss */
441
+ actions: LegendaryAction[];
442
+ /** Optional lair action hint for encounter design */
443
+ lairActionHint?: string;
444
+ }
445
+ export type { LegendaryAction as LegendaryActionFromGenerator, LegendaryConfig as LegendaryConfigFromGenerator } from '../generation/LegendaryGenerator.js';
446
+ export type { InnateSpell, SpellcastingConfig } from '../generation/SpellcastingGenerator.js';
447
+ //# sourceMappingURL=Enemy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Enemy.d.ts","sourceRoot":"","sources":["../../../src/core/types/Enemy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,213 @@
1
+ export type SensorType = 'geolocation' | 'motion' | 'weather';
2
+ /**
3
+ * Performance metrics for API calls
4
+ */
5
+ export interface PerformanceMetrics {
6
+ /** Number of successful API calls */
7
+ successCount: number;
8
+ /** Number of failed API calls */
9
+ errorCount: number;
10
+ /** Total time spent on successful API calls (milliseconds) */
11
+ totalTime: number;
12
+ /** Time of the fastest API call (milliseconds) */
13
+ minTime: number;
14
+ /** Time of the slowest API call (milliseconds) */
15
+ maxTime: number;
16
+ /** Timestamp of the last API call */
17
+ lastCallTimestamp: number | null;
18
+ }
19
+ /**
20
+ * Detailed performance statistics derived from metrics
21
+ */
22
+ export interface PerformanceStatistics {
23
+ /** Average API call time in milliseconds */
24
+ average: number;
25
+ /** Minimum API call time in milliseconds */
26
+ min: number;
27
+ /** Maximum API call time in milliseconds */
28
+ max: number;
29
+ /** Total number of API calls */
30
+ totalCalls: number;
31
+ /** Success rate as percentage (0-100) */
32
+ successRate: number;
33
+ }
34
+ export interface SensorPermission {
35
+ type: SensorType;
36
+ granted: boolean;
37
+ timestamp: number;
38
+ }
39
+ /**
40
+ * Health status of a sensor
41
+ */
42
+ export type SensorHealthStatus = 'healthy' | 'degraded' | 'failed' | 'unknown';
43
+ /**
44
+ * Status information for a single sensor
45
+ */
46
+ export interface SensorStatus {
47
+ type: SensorType;
48
+ health: SensorHealthStatus;
49
+ lastSuccessTimestamp: number | null;
50
+ lastFailureTimestamp: number | null;
51
+ consecutiveFailures: number;
52
+ totalFailures: number;
53
+ lastError: string | null;
54
+ isRetrying: boolean;
55
+ }
56
+ /**
57
+ * Log entry for a sensor failure event
58
+ */
59
+ export interface SensorFailureLog {
60
+ sensorType: SensorType;
61
+ timestamp: number;
62
+ error: string;
63
+ retryAttempt: number;
64
+ willRetry: boolean;
65
+ }
66
+ /**
67
+ * Configuration for sensor retry behavior
68
+ */
69
+ export interface SensorRetryConfig {
70
+ maxRetries: number;
71
+ initialDelayMs: number;
72
+ maxDelayMs: number;
73
+ backoffMultiplier: number;
74
+ }
75
+ /**
76
+ * Notification callback for sensor recovery events
77
+ */
78
+ export interface SensorRecoveryNotification {
79
+ sensorType: SensorType;
80
+ previousStatus: SensorHealthStatus;
81
+ newStatus: SensorHealthStatus;
82
+ timestamp: number;
83
+ message: string;
84
+ }
85
+ export interface GeolocationData {
86
+ latitude: number;
87
+ longitude: number;
88
+ altitude: number | null;
89
+ accuracy: number;
90
+ heading: number | null;
91
+ speed: number | null;
92
+ timestamp: number;
93
+ }
94
+ export interface MotionData {
95
+ acceleration: {
96
+ x: number | null;
97
+ y: number | null;
98
+ z: number | null;
99
+ };
100
+ accelerationIncludingGravity: {
101
+ x: number;
102
+ y: number;
103
+ z: number;
104
+ };
105
+ rotationRate: {
106
+ alpha: number | null;
107
+ beta: number | null;
108
+ gamma: number | null;
109
+ };
110
+ interval: number;
111
+ timestamp: number;
112
+ }
113
+ export interface WeatherData {
114
+ temperature: number;
115
+ humidity: number;
116
+ pressure: number;
117
+ weatherType: string;
118
+ windSpeed: number;
119
+ windDirection: number;
120
+ isNight: boolean;
121
+ moonPhase: number;
122
+ timestamp: number;
123
+ }
124
+ export interface ForecastData {
125
+ temperature: number;
126
+ humidity: number;
127
+ pressure: number;
128
+ weatherType: string;
129
+ windSpeed: number;
130
+ windDirection: number;
131
+ timestamp: number;
132
+ forecastTime: Date;
133
+ probabilityOfPrecipitation: number;
134
+ }
135
+ /**
136
+ * Day stage categories based on sun position
137
+ */
138
+ export type DayStage = 'night' | 'dawn' | 'day' | 'dusk';
139
+ /**
140
+ * Twilight type definitions (based on sun angle below horizon)
141
+ * - civil: Sun 6° below horizon (brightest stars visible)
142
+ * - nautical: Sun 12° below horizon (horizon visible at sea)
143
+ * - astronomical: Sun 18° below horizon (full darkness)
144
+ */
145
+ export type TwilightType = 'astronomical' | 'nautical' | 'civil';
146
+ /**
147
+ * Solar information including sunrise, sunset, and day stage.
148
+ * Works without API key using astronomical calculations.
149
+ */
150
+ export interface SolarInfo {
151
+ /** Current time */
152
+ currentTime: Date;
153
+ /** Current day stage */
154
+ stage: DayStage;
155
+ /** Sunrise time (when sun first appears above horizon) */
156
+ sunrise: Date;
157
+ /** Sunset time (when sun last appears above horizon) */
158
+ sunset: Date;
159
+ /** Solar noon (when sun is at highest point) */
160
+ solarNoon: Date;
161
+ /** Civil dawn time (sun 6° below horizon, approaching sunrise) */
162
+ civilDawn?: Date;
163
+ /** Civil dusk time (sun 6° below horizon, after sunset) */
164
+ civilDusk?: Date;
165
+ /** Current sun altitude in degrees (negative = below horizon) */
166
+ sunAltitude: number;
167
+ /** Current sun azimuth in degrees (0-360, North = 0) */
168
+ sunAzimuth: number;
169
+ /** Day length in hours */
170
+ dayLengthHours: number;
171
+ /** Whether data came from API (true) or calculated astronomically (false) */
172
+ fromApi: boolean;
173
+ /** Timestamp when this data was generated */
174
+ timestamp: number;
175
+ }
176
+ export type BiomeType = 'urban' | 'forest' | 'desert' | 'mountain' | 'valley' | 'water' | 'tundra' | 'plains' | 'jungle' | 'swamp' | 'taiga' | 'savanna';
177
+ export interface EnvironmentalContext {
178
+ geolocation?: GeolocationData;
179
+ motion?: MotionData;
180
+ weather?: WeatherData;
181
+ biome?: BiomeType;
182
+ timestamp: number;
183
+ environmental_xp_modifier?: number;
184
+ }
185
+ /**
186
+ * A single source of XP bonus
187
+ */
188
+ export interface XPBonusSource {
189
+ /** Unique identifier for this bonus type */
190
+ id: string;
191
+ /** Human-readable label for display */
192
+ label: string;
193
+ /** Emoji icon for UI display */
194
+ icon: string;
195
+ /** The bonus multiplier value (e.g., 0.25 for +25%) */
196
+ bonus: number;
197
+ /** Whether this bonus is currently active */
198
+ active: boolean;
199
+ }
200
+ /**
201
+ * Detailed breakdown of the XP modifier calculation
202
+ */
203
+ export interface XpModifierBreakdown {
204
+ /** Final computed modifier (1.0 - 3.0) */
205
+ total: number;
206
+ /** Base value, always 1.0 */
207
+ baseValue: number;
208
+ /** All possible bonus sources with their active state */
209
+ sources: XPBonusSource[];
210
+ /** Only the currently active bonuses (convenience) */
211
+ activeBonuses: XPBonusSource[];
212
+ }
213
+ //# sourceMappingURL=Environmental.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Environmental.d.ts","sourceRoot":"","sources":["../../../src/core/types/Environmental.ts"],"names":[],"mappings":"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"}