/** * Stats System * * Manages character statistics with support for: * - Setting/getting stat values * - Stat modifiers (buffs/debuffs) * - Min/max value clamping * - Stat calculations * - Event notifications */ import type { Stat, StatModifier, EventHandler } from './types'; /** * Stats system for managing character attributes */ export declare class StatsSystem { private stats; private eventHandlers; /** * Set a stat value */ setStat(name: string, value: number, maxValue?: number, minValue?: number): void; /** * Get a stat value */ getStat(name: string): number; /** * Get stat object */ getStatObject(name: string): Stat | undefined; /** * Modify a stat by delta */ modifyStat(name: string, delta: number): number; /** * Set base stat value (before modifiers) */ setBaseStat(name: string, baseValue: number): void; /** * Add a stat modifier */ addModifier(statName: string, modifier: Omit): string; /** * Remove a stat modifier */ removeModifier(statName: string, modifierId: string): boolean; /** * Remove all modifiers from a stat */ clearModifiers(statName: string): void; /** * Get all modifiers for a stat */ getModifiers(statName: string): StatModifier[]; /** * Update modifier durations (call each turn/tick) */ updateDurations(): void; /** * Calculate final stat value with modifiers */ private calculateStatValue; /** * Clamp value between min and max */ private clampValue; /** * Check if stat exists */ hasStat(name: string): boolean; /** * Get all stat names */ getStatNames(): string[]; /** * Get all stats */ getAllStats(): Map; /** * Remove a stat */ removeStat(name: string): boolean; /** * Clear all stats */ clear(): void; /** * Export stats state */ export(): Record; /** * Import stats state */ import(stats: Record): void; /** * Compare two stat values */ compare(name: string, operator: '>' | '>=' | '<' | '<=' | '==' | '!=', value: number): boolean; /** * Register event handler */ on(eventType: string, handler: EventHandler): void; /** * Unregister event handler */ off(eventType: string, handler: EventHandler): void; /** * Emit event */ private emit; } //# sourceMappingURL=StatsSystem.d.ts.map