import type { Vector3 } from '@holoscript/core'; /** * CombatManager.ts * * Combat orchestration: hitbox/hurtbox, combo system, * cooldowns, targeting, and combat state. * * @module combat */ export interface HitBox { id: string; ownerId: string; position: [number, number, number]; size: Vector3; active: boolean; damage: number; damageType: string; knockback: number; } export interface HurtBox { id: string; ownerId: string; position: [number, number, number]; size: Vector3; active: boolean; } export interface ComboStep { name: string; input: string; damage: number; window: number; hitboxId?: string; } export interface ComboChain { id: string; steps: ComboStep[]; currentStep: number; timer: number; completed: boolean; } export interface Cooldown { abilityId: string; duration: number; remaining: number; } export interface CombatTarget { entityId: string; position: [number, number, number]; priority: number; distance: number; } export declare class CombatManager { private hitboxes; private hurtboxes; private combos; private cooldowns; private hitLog; addHitBox(hitbox: HitBox): void; addHurtBox(hurtbox: HurtBox): void; removeHitBox(id: string): void; removeHurtBox(id: string): void; setHitBoxActive(id: string, active: boolean): void; private toArr3; checkCollisions(): Array<{ hitbox: HitBox; hurtbox: HurtBox; }>; private aabbOverlap; registerCombo(id: string, steps: ComboStep[]): ComboChain; advanceCombo(comboId: string, input: string): { hit: boolean; completed: boolean; step: number; }; updateCombos(dt: number): void; resetCombo(comboId: string): void; startCooldown(abilityId: string, duration: number): void; isOnCooldown(abilityId: string): boolean; getCooldownRemaining(abilityId: string): number; updateCooldowns(dt: number): void; findTargets(position: [number, number, number] | { x: number; y: number; z: number; }, candidates: Array<{ entityId: string; position: [number, number, number]; priority?: number; }>, maxRange: number): CombatTarget[]; getHitLog(): typeof this.hitLog; getHitBoxCount(): number; getHurtBoxCount(): number; } //# sourceMappingURL=CombatManager.d.ts.map