/** 项目战斗模块统一导出 */ export type { IBattleService } from './IBattleService'; export { BattleService } from './BattleService'; export { createBattleRuntime } from './runtime/BattleRuntime'; export type { ProjectBattleHandle } from './runtime/BattleRuntime'; export type { BattleStartParams, BattleDeployParams, IBattleRuntimeHandle, ProjectBattleMode, } from './types/ProjectBattleTypes'; export { BattleMapSpec, applyMonsterFootOffset, MONSTER_VISUAL_OFFSET_Y_CELLS, cellToWorld, worldToCell } from './map/BattleMapSpec'; export { CocosBattleMapHost } from './map/CocosBattleMapHost'; export { CocosBattleMonsterPresenter } from './view/CocosBattleMonsterPresenter'; export { CocosBagBoardView } from './view/CocosBagBoardView'; export { TextGrid, TowerQueryService, type TextGridEntityData, type TextGridData, type TextGridLocation, type TileEntitySnapshot, type TowerRuntimeSnapshot, type TowerCombatStats, } from './view/TextGrid'; export { buildTextGridEntityData } from './combat/TowerQueryService'; export { deriveTowerSetupStats, resolveAtkLevelCoef } from './combat/TowerStatResolver'; export type { TowerConfigSnapshot, TileQueryResult } from './combat/TowerQueryTypes'; export { BattleBagSession } from './bag/BattleBagSession'; export { TableBattleConfigProvider } from './config/TableBattleConfigProvider'; export { ChapterLevelBuilder } from './config/ChapterLevelBuilder'; export { MonsterWaveParser } from './config/MonsterWaveParser'; export { BattleUiPauseGate } from './BattleUiPauseGate';