/**
 * Combat Effects Utility
 *
 * CSS animation utilities and effect triggers for combat visualization.
 * Extracted from Trait Wars design-system.
 */
export declare const combatAnimations: {
    shake: string;
    flash: string;
    pulseRed: string;
    healGlow: string;
};
export declare const combatClasses: {
    shake: string;
    flash: string;
    pulseRed: string;
    healGlow: string;
    hit: string;
    defend: string;
    critical: string;
};
export interface CombatEffect {
    className: string;
    duration: number;
    sound?: string;
}
export declare const combatEffects: Record<string, CombatEffect>;
/**
 * Apply a temporary combat effect to an HTML element.
 *
 * Adds the effect's CSS class to the element and removes it after
 * the effect duration completes.
 *
 * @param {HTMLElement} element - The DOM element to apply the effect to
 * @param {CombatEffect} effect - The combat effect to apply
 * @param {() => void} [onComplete] - Optional callback when effect completes
 */
export declare function applyTemporaryEffect(element: HTMLElement, effect: CombatEffect, onComplete?: () => void): void;
export interface DamageResult {
    baseDamage: number;
    finalDamage: number;
    isCritical: boolean;
    isBlocked: boolean;
    damageReduction: number;
}
/**
 * Calculate combat damage with defense and critical hit mechanics.
 *
 * @param {number} attack - Attacker's attack power
 * @param {number} defense - Defender's defense power
 * @param {boolean} [isDefending] - Whether defender is in defend stance (doubles defense)
 * @param {number} [criticalChance] - Probability of critical hit (0-1, default 0.1)
 * @returns {DamageResult} Calculated damage with critical/block info
 */
export declare function calculateDamage(attack: number, defense: number, isDefending?: boolean, criticalChance?: number): DamageResult;
export type CombatEventType = 'attack' | 'critical' | 'defend' | 'heal' | 'defeat' | 'level_up' | 'state_change';
export interface CombatEventData {
    type: CombatEventType;
    sourceId: string;
    targetId?: string;
    value?: number;
    message: string;
}
export declare function generateCombatMessage(event: CombatEventData): string;
