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,397 @@
1
+ /**
2
+ * D&D 5e Character type definitions
3
+ */
4
+ import type { FeatureEffect } from '../features/FeatureTypes.js';
5
+ import type { EquipmentProperty, EquipmentFeature, EquipmentSkill, EquipmentSpell, EnhancedInventoryItem } from './Equipment.js';
6
+ import type { PrestigeLevel } from './Prestige.js';
7
+ import type { StatLevelOverrides } from './Enemy.js';
8
+ /**
9
+ * Branded type for extensible Race names
10
+ *
11
+ * This allows custom races to be registered via ExtensionManager while maintaining
12
+ * type safety. Use asRace() to convert a string to the Race type, and isValidRace()
13
+ * to validate at runtime.
14
+ *
15
+ * @example
16
+ * // Default D&D 5e races
17
+ * const defaultRace: Race = asRace('Human');
18
+ *
19
+ * // Custom race (must be registered via ExtensionManager first)
20
+ * const customRace: Race = asRace('Dragonkin');
21
+ * if (isValidRace(customRace)) {
22
+ * // Safe to use
23
+ * }
24
+ *
25
+ * // Type augmentation alternative (for user projects):
26
+ * // declare module 'playlist-data-engine' {
27
+ * // type Race = 'Human' | 'Elf' | ... | 'Tiefling' | 'Dragonkin';
28
+ * // }
29
+ */
30
+ export type Race = string & {
31
+ readonly __RaceBrand: unique symbol;
32
+ };
33
+ /**
34
+ * Cast a string to the Race type
35
+ *
36
+ * This function performs a type assertion to convert any string to the Race type.
37
+ * Use isValidRace() first if you need runtime validation.
38
+ *
39
+ * @param value - The race name string
40
+ * @returns The value cast to Race type
41
+ *
42
+ * @example
43
+ * const raceName = 'Dragonkin';
44
+ * if (isValidRace(raceName)) {
45
+ * const race: Race = asRace(raceName);
46
+ * }
47
+ */
48
+ export declare function asRace(value: string): Race;
49
+ /**
50
+ * Default D&D 5e races (pre-branded Race type values)
51
+ *
52
+ * These are the core races that are always available without needing ExtensionManager.
53
+ * Custom races can be added via ExtensionManager.register('races.data', [...]).
54
+ */
55
+ export declare const DEFAULT_RACES: readonly Race[];
56
+ /**
57
+ * Type guard to check if a string is a valid Race (default or custom)
58
+ *
59
+ * This checks against both default D&D 5e races and any custom races
60
+ * registered via ExtensionManager's 'races.data' category.
61
+ *
62
+ * @param value - The value to check
63
+ * @returns True if the value is a valid race name
64
+ *
65
+ * @example
66
+ * if (isValidRace('Dragonkin')) {
67
+ * // Safe to use as Race type
68
+ * const race: Race = asRace('Dragonkin');
69
+ * }
70
+ */
71
+ export declare function isValidRace(value: unknown): value is Race;
72
+ /**
73
+ * Branded type for extensible Class names
74
+ *
75
+ * This allows custom classes to be registered via ExtensionManager while maintaining
76
+ * type safety. Use asClass() to convert a string to the Class type, and isValidClass()
77
+ * to validate at runtime.
78
+ *
79
+ * @example
80
+ * // Default D&D 5e classes
81
+ * const defaultClass: Class = 'Wizard' as Class;
82
+ *
83
+ * // Custom class (must be registered via ExtensionManager first)
84
+ * const customClass: Class = asClass('Necromancer');
85
+ * if (isValidClass(customClass)) {
86
+ * // Safe to use
87
+ * }
88
+ *
89
+ * // Type augmentation alternative (for user projects):
90
+ * // declare module 'playlist-data-engine' {
91
+ * // type Class = 'Barbarian' | ... | 'Wizard' | 'Necromancer';
92
+ * // }
93
+ */
94
+ export type Class = string & {
95
+ readonly __ClassBrand: unique symbol;
96
+ };
97
+ /**
98
+ * Cast a string to the Class type
99
+ *
100
+ * This function performs a type assertion to convert any string to the Class type.
101
+ * Use isValidClass() first if you need runtime validation.
102
+ *
103
+ * @param value - The class name string
104
+ * @returns The value cast to Class type
105
+ *
106
+ * @example
107
+ * const className = 'Necromancer';
108
+ * if (isValidClass(className)) {
109
+ * const cls: Class = asClass(className);
110
+ * }
111
+ */
112
+ export declare function asClass(value: string): Class;
113
+ /**
114
+ * Default D&D 5e classes (pre-branded Class type values)
115
+ *
116
+ * These are the core classes that are always available without needing ExtensionManager.
117
+ * Custom classes can be added via ExtensionManager.register('classes.data', [...]).
118
+ */
119
+ export declare const DEFAULT_CLASSES: readonly Class[];
120
+ /**
121
+ * Type guard to check if a string is a valid Class (default or custom)
122
+ *
123
+ * This checks against both default D&D 5e classes and any custom classes
124
+ * registered via ExtensionManager's 'classes.data' category.
125
+ *
126
+ * @param value - The value to check
127
+ * @returns True if the value is a valid class name
128
+ *
129
+ * @example
130
+ * if (isValidClass('Necromancer')) {
131
+ * // Safe to use as Class type
132
+ * const cls: Class = 'Necromancer';
133
+ * }
134
+ */
135
+ export declare function isValidClass(value: unknown): value is Class;
136
+ export type Ability = 'STR' | 'DEX' | 'CON' | 'INT' | 'WIS' | 'CHA';
137
+ export type Skill = 'athletics' | 'acrobatics' | 'sleight_of_hand' | 'stealth' | 'arcana' | 'history' | 'investigation' | 'nature' | 'religion' | 'animal_handling' | 'insight' | 'medicine' | 'perception' | 'survival' | 'deception' | 'intimidation' | 'performance' | 'persuasion';
138
+ export type ProficiencyLevel = 'none' | 'proficient' | 'expertise';
139
+ /**
140
+ * Game mode for stat progression
141
+ * - standard: D&D 5e rules (stats capped at 20, increases at levels 4, 8, 12, 16, 19, max level 20)
142
+ * - uncapped: No stat limits, stat increases EVERY level (unlimited progression)
143
+ */
144
+ export type GameMode = 'standard' | 'uncapped';
145
+ /**
146
+ * Attack type for combat actions
147
+ */
148
+ export interface Attack {
149
+ name: string;
150
+ bonus?: number;
151
+ attack_bonus?: number;
152
+ damage?: string;
153
+ damage_dice?: string;
154
+ damage_type?: string;
155
+ type?: 'melee' | 'ranged' | 'spell';
156
+ range?: number;
157
+ /** Weapon properties (e.g., 'finesse', 'versatile', 'thrown', 'reach') */
158
+ properties?: string[];
159
+ }
160
+ /**
161
+ * Spell type for casting
162
+ *
163
+ * Unified spell interface that supports both player-facing spells (with
164
+ * damage_dice, damage_type, saving_throw) and enemy InnateSpell objects
165
+ * (with damage, damageType, save, tags, concentration, effect).
166
+ *
167
+ * SpellCaster checks both naming conventions so either field set works.
168
+ */
169
+ export interface Spell {
170
+ name: string;
171
+ level?: number;
172
+ school?: string;
173
+ casting_time?: string;
174
+ /** Range as a string (e.g., "30 feet") — player spells */
175
+ range?: string;
176
+ /** Range as a number (feet) — enemy InnateSpell. Either range or rangeFeet may be set. */
177
+ rangeFeet?: number;
178
+ duration?: string;
179
+ components?: string[];
180
+ description?: string;
181
+ damage_dice?: string;
182
+ damage_type?: string;
183
+ attack_roll?: boolean;
184
+ saving_throw?: string;
185
+ /** Unique spell identifier (used by enemy InnateSpell) */
186
+ id?: string;
187
+ /** Spell effect description (used by enemy InnateSpell, separate from description) */
188
+ effect?: string;
189
+ /** Whether spell requires concentration */
190
+ concentration?: boolean;
191
+ /** Tags for spell classification (damage, healing, buff, control, aoe, etc.) */
192
+ tags?: string[];
193
+ /** Damage dice (alias for damage_dice — used by enemy InnateSpell) */
194
+ damage?: string;
195
+ /** Save ability (alias for saving_throw — used by enemy InnateSpell, e.g., "DEX") */
196
+ save?: string;
197
+ /** Damage type (alias for damage_type — used by enemy InnateSpell) */
198
+ damageType?: string;
199
+ }
200
+ export interface AbilityScores {
201
+ STR: number;
202
+ DEX: number;
203
+ CON: number;
204
+ INT: number;
205
+ WIS: number;
206
+ CHA: number;
207
+ dexterity?: number;
208
+ strength?: number;
209
+ constitution?: number;
210
+ }
211
+ export interface CharacterSheet {
212
+ /** Character name */
213
+ name: string;
214
+ /** Race */
215
+ race: Race;
216
+ /** Subrace (e.g., 'High Elf', 'Hill Dwarf', 'Wood Elf') */
217
+ subrace?: string;
218
+ /** Class */
219
+ class: Class;
220
+ /** Current level (1-20) */
221
+ level: number;
222
+ /** Ability scores */
223
+ ability_scores: AbilityScores;
224
+ /** Ability modifiers (calculated from scores) */
225
+ ability_modifiers: AbilityScores;
226
+ /** Proficiency bonus (based on level) */
227
+ proficiency_bonus: number;
228
+ /** Hit points */
229
+ hp: {
230
+ current: number;
231
+ max: number;
232
+ temp: number;
233
+ };
234
+ /** Armor class */
235
+ armor_class: number;
236
+ /** Initiative bonus */
237
+ initiative: number;
238
+ /** Speed in feet */
239
+ speed: number;
240
+ /** Skill proficiencies */
241
+ skills: Record<string, ProficiencyLevel>;
242
+ /** Saving throw proficiencies */
243
+ saving_throws: Record<Ability, boolean>;
244
+ /** Racial traits */
245
+ racial_traits: string[];
246
+ /** Class features */
247
+ class_features: string[];
248
+ /** Spells (for spellcasters) */
249
+ spells?: {
250
+ spell_slots: Record<number, {
251
+ total: number;
252
+ used: number;
253
+ }>;
254
+ known_spells: string[];
255
+ cantrips: string[];
256
+ };
257
+ /** Combat-ready Spell objects for use by CombatEngine and SpellCaster.
258
+ * Populated from SpellcastingConfig during enemy generation.
259
+ * Contains the full InnateSpell objects (which extend Spell) with
260
+ * tags, damage, save, concentration, etc. — everything the AI needs
261
+ * to make intelligent casting decisions. */
262
+ combat_spells?: Spell[];
263
+ /** Equipment */
264
+ equipment?: {
265
+ weapons: EnhancedInventoryItem[];
266
+ armor: EnhancedInventoryItem[];
267
+ items: EnhancedInventoryItem[];
268
+ totalWeight: number;
269
+ equippedWeight: number;
270
+ };
271
+ /** Character appearance */
272
+ appearance?: {
273
+ /** Deterministic features from seed */
274
+ body_type: string;
275
+ skin_tone: string;
276
+ hair_style: string;
277
+ hair_color: string;
278
+ eye_color: string;
279
+ facial_features: string[];
280
+ /** Dynamic features from audio/visual */
281
+ primary_color?: string;
282
+ secondary_color?: string;
283
+ accent_color?: string;
284
+ aura_color?: string;
285
+ };
286
+ /** Experience points */
287
+ xp: {
288
+ current: number;
289
+ next_level: number;
290
+ };
291
+ /** Track seed this character was generated from */
292
+ seed: string;
293
+ /** Generation timestamp */
294
+ generated_at: string;
295
+ /** Game mode for stat progression (standard = capped at 20, uncapped = no limits) */
296
+ gameMode?: GameMode;
297
+ /** Number of pending stat increases awaiting manual selection (counter) */
298
+ pendingStatIncreases?: number;
299
+ /**
300
+ * Prestige level for track mastery (0-10, defaults to 0)
301
+ * Higher prestige levels require more plays and XP to master a track
302
+ * @see PrestigeLevel
303
+ */
304
+ prestige_level?: PrestigeLevel;
305
+ /**
306
+ * Feature effects applied to this character
307
+ * Stores effects from features and traits that modify character stats
308
+ *
309
+ * Effects include:
310
+ * - stat_bonus: Add to ability scores (e.g., +1 STR)
311
+ * - skill_proficiency: Grant proficiency or expertise in a skill
312
+ * - ability_unlock: Unlock new abilities (e.g., darkvision, flight)
313
+ * - passive_modifier: Add constant bonuses (e.g., +10 speed)
314
+ * - resource_grant: Grant resource pools (e.g., rage counts, ki points)
315
+ * - spell_slot_bonus: Grant additional spell slots
316
+ */
317
+ feature_effects?: FeatureEffect[];
318
+ /**
319
+ * Equipment-granted effects
320
+ * Tracks effects currently active from equipped items
321
+ * Separate from feature_effects to allow proper removal when unequipping
322
+ *
323
+ * STACKING: All equipment effects stack (e.g., two +1 STR items = +2 STR total)
324
+ */
325
+ equipment_effects?: {
326
+ /** Equipment name providing the effect */
327
+ source: string;
328
+ /** Instance ID for per-instance tracking */
329
+ instanceId?: string;
330
+ /** Effects from this equipment */
331
+ effects: EquipmentProperty[];
332
+ /** Features granted by this equipment (registry features or inline mini-features) */
333
+ features: EquipmentFeature[];
334
+ /** Skills granted by this equipment */
335
+ skills: EquipmentSkill[];
336
+ /** Spells granted by this equipment */
337
+ spells?: EquipmentSpell[];
338
+ }[];
339
+ /**
340
+ * Legendary configuration for boss-tier enemies
341
+ * Contains legendary actions, resistances, and lair action hints
342
+ */
343
+ legendary_config?: {
344
+ /** Number of legendary resistances per day (usually 3 for CR 1-10) */
345
+ resistances_per_day: number;
346
+ /** Legendary actions available to this boss */
347
+ actions: Array<{
348
+ /** Unique identifier for this action */
349
+ id: string;
350
+ /** Display name shown to players */
351
+ name: string;
352
+ /** Cost in legendary action points (1, 2, or 3) */
353
+ cost: number;
354
+ /** Effect description for combat system */
355
+ effect: string;
356
+ /** Damage dice if this action deals damage */
357
+ damage?: string;
358
+ /** Damage type for damaging actions */
359
+ damage_type?: string;
360
+ /** Detailed description of what the action does */
361
+ description?: string;
362
+ /** Tags for filtering and categorization (e.g., 'damage', 'heal', 'control') */
363
+ tags?: string[];
364
+ }>;
365
+ /** Optional lair action hint for encounter design */
366
+ lair_action_hint?: string;
367
+ };
368
+ /**
369
+ * Stat level overrides for enemy characters
370
+ *
371
+ * When set, indicates that HP/attack/defense were scaled at independent
372
+ * effective levels rather than the CR-derived level. Enables creative
373
+ * encounter designs like glass cannons or tanks.
374
+ *
375
+ * For player characters: undefined
376
+ * For enemies: only set when statLevels was provided to EnemyGenerator.generate()
377
+ *
378
+ * @see StatLevelOverrides
379
+ */
380
+ stat_levels?: StatLevelOverrides;
381
+ /**
382
+ * Challenge Rating for enemy characters
383
+ * Used by EnemyGenerator to track the CR that was used to generate this enemy.
384
+ * This enables frontend validation that CR → level mapping is correct.
385
+ *
386
+ * For enemies: `cr` is the Challenge Rating used during generation
387
+ * For player characters: `cr` is undefined
388
+ *
389
+ * @example
390
+ * // Frontend validation: verify CR maps to correct level
391
+ * const enemy = EnemyGenerator.generate({ seed: 'test', cr: 8, rarity: 'elite' });
392
+ * console.log(enemy.cr); // 8
393
+ * console.log(enemy.level); // 8 (CR ≈ level in D&D 5e)
394
+ */
395
+ cr?: number;
396
+ }
397
+ //# sourceMappingURL=Character.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Character.d.ts","sourceRoot":"","sources":["../../../src/core/types/Character.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Charted Beat Map Types
3
+ *
4
+ * Types for procedurally generated rhythm game charts that are compatible
5
+ * with BeatStream and the existing beat map infrastructure.
6
+ *
7
+ * Part of the Pitch Detection & Button Mapping pipeline - Phase 2.7
8
+ */
9
+ import type { Beat, DownbeatConfig, SubdivisionType } from './BeatMap.js';
10
+ import type { DifficultyLevel } from '../analysis/beat/DifficultyVariantGenerator.js';
11
+ import type { Band } from '../generation/RhythmGenerator.js';
12
+ /**
13
+ * A beat in a procedurally generated chart.
14
+ * Extends the base Beat interface with procedural-generation-specific fields.
15
+ */
16
+ export interface ChartedBeat extends Beat {
17
+ /** Index into the original UnifiedBeatMap.beats[] - which quarter note this belongs to */
18
+ quarterNoteIndex: number;
19
+ /** Position within that quarter note (0-3 for 16th, 0-2 for triplet) */
20
+ subdivisionPosition: number;
21
+ /** Whether this was detected from audio (true) or interpolated/generated (false) */
22
+ isDetected: boolean;
23
+ /** The subdivision type used for this beat */
24
+ subdivisionType: SubdivisionType;
25
+ /** Which frequency band this beat originated from */
26
+ sourceBand: Band;
27
+ /** Quantization error in milliseconds (how far from original transient) */
28
+ quantizationError?: number;
29
+ /** Whether this beat's button was derived from pitch detection or pattern library */
30
+ mappingSource?: 'pitch' | 'pattern';
31
+ /** ID of the pattern used for this beat (if mappingSource is 'pattern') */
32
+ patternId?: string;
33
+ }
34
+ /**
35
+ * Metadata about a procedurally generated chart
36
+ */
37
+ export interface ChartMetadata {
38
+ /** Which difficulty this chart represents */
39
+ difficulty: DifficultyLevel;
40
+ /** Keys used in this chart (e.g., ['up', 'down', 'left', 'right'] or ['1', '2', '3', '4', '5']) */
41
+ keysUsed: string[];
42
+ /** Number of beats with pitch-influenced keys */
43
+ pitchInfluencedBeats: number;
44
+ /** Button patterns used */
45
+ patternsUsed: string[];
46
+ /** Source rhythm metadata */
47
+ rhythmMetadata: RhythmMetadataSummary;
48
+ /** Pitch analysis metadata (if pitch detection was used) */
49
+ pitchMetadata: PitchMetadata | null;
50
+ /** Generation timestamp */
51
+ generatedAt: string;
52
+ /** Seed used for reproducibility */
53
+ seed?: string;
54
+ }
55
+ /**
56
+ * Summary of rhythm metadata for chart output
57
+ */
58
+ export interface RhythmMetadataSummary {
59
+ /** Difficulty preset used */
60
+ difficulty: string;
61
+ /** Bands that were analyzed */
62
+ bandsAnalyzed: Band[];
63
+ /** Total transients detected */
64
+ transientsDetected: number;
65
+ /** Average density across all bands */
66
+ averageDensity: number;
67
+ /** Natural difficulty of the composite */
68
+ naturalDifficulty: DifficultyLevel;
69
+ }
70
+ /**
71
+ * Metadata about pitch analysis used for chart generation
72
+ */
73
+ export interface PitchMetadata {
74
+ /** Melody range detected (min and max note names) */
75
+ melodyRange: {
76
+ min: string;
77
+ max: string;
78
+ } | null;
79
+ /** Direction statistics from melody contour analysis */
80
+ directionStats: {
81
+ up: number;
82
+ down: number;
83
+ stable: number;
84
+ none: number;
85
+ } | null;
86
+ /** Interval statistics from melody contour analysis */
87
+ intervalStats: {
88
+ unison: number;
89
+ small: number;
90
+ medium: number;
91
+ large: number;
92
+ very_large: number;
93
+ } | null;
94
+ }
95
+ /**
96
+ * A complete procedurally-generated chart ready for gameplay.
97
+ * Compatible with BeatStream and the existing beat map infrastructure.
98
+ */
99
+ export interface ChartedBeatMap {
100
+ /** Unique identifier for the audio source */
101
+ audioId: string;
102
+ /** Duration of the audio in seconds */
103
+ duration: number;
104
+ /** All beats with required keys assigned */
105
+ beats: ChartedBeat[];
106
+ /** Indices of beats that were originally detected from audio */
107
+ detectedBeatIndices: number[];
108
+ /** The downbeat configuration inherited from UnifiedBeatMap */
109
+ downbeatConfig: DownbeatConfig;
110
+ /** Quarter note interval in seconds (from UnifiedBeatMap) */
111
+ quarterNoteInterval: number;
112
+ /** Equivalent BPM (60 / quarterNoteInterval) */
113
+ bpm: number;
114
+ /** Chart metadata */
115
+ chartMetadata: ChartMetadata;
116
+ }
117
+ /**
118
+ * Options for converting a DifficultyVariant to ChartedBeatMap
119
+ */
120
+ export interface ChartConversionOptions {
121
+ /** The audio ID for the chart */
122
+ audioId: string;
123
+ /** Duration of the audio in seconds */
124
+ duration: number;
125
+ /** Quarter note interval in seconds */
126
+ quarterNoteInterval: number;
127
+ /** Downbeat configuration */
128
+ downbeatConfig: DownbeatConfig;
129
+ /** Map of beat index to required key (from ButtonMapper) */
130
+ keyAssignments: Map<number, string>;
131
+ /** Chart metadata */
132
+ metadata: Partial<ChartMetadata>;
133
+ }
134
+ /**
135
+ * Maps procedural grid types to SubdivisionType
136
+ *
137
+ * @param gridType - The procedural grid type
138
+ * @returns The corresponding SubdivisionType
139
+ */
140
+ export declare function mapGridToSubdivision(gridType: string): SubdivisionType;
141
+ /**
142
+ * Calculate beatInMeasure from grid position
143
+ *
144
+ * @param parentBeatInMeasure - The parent quarter note's beatInMeasure value
145
+ * @param gridPosition - Position within that quarter (0-3 for 16th, 0-2 for triplet)
146
+ * @param gridType - The grid type
147
+ * @returns Decimal beatInMeasure value
148
+ */
149
+ export declare function calculateBeatInMeasure(parentBeatInMeasure: number, gridPosition: number, gridType: string): number;
150
+ import type { BeatMap } from './BeatMap.js';
151
+ /**
152
+ * Convert a ChartedBeatMap to a BeatMap for use with BeatStream
153
+ *
154
+ * This adapter function creates a BeatMap-compatible object from a ChartedBeatMap,
155
+ * allowing procedurally generated charts to be used with the existing BeatStream
156
+ * infrastructure.
157
+ *
158
+ * @param chartedBeatMap - The ChartedBeatMap to convert
159
+ * @returns A BeatMap compatible with BeatStream
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * const chartedMap = beatConverter.convertToChartedBeatMap(variant, unifiedMap, keys, metadata);
164
+ * const beatMap = chartedBeatMapToBeatMap(chartedMap);
165
+ * const beatStream = new BeatStream(beatMap, audioContext);
166
+ * ```
167
+ */
168
+ export declare function chartedBeatMapToBeatMap(chartedBeatMap: ChartedBeatMap): BeatMap;
169
+ //# sourceMappingURL=ChartedBeatMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartedBeatMap.d.ts","sourceRoot":"","sources":["../../../src/core/types/ChartedBeatMap.ts"],"names":[],"mappings":"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"}