import { SeededRandom } from '../utils/random'; import { IEnvironmentalSystem } from '../interfaces'; export interface EnvironmentalContext { weather?: string; season?: string; timeOfDay?: string; location?: string; climate?: string; } export interface Modifier { id: string; type: 'weather' | 'season' | 'location' | 'time' | 'climate'; effects: { health_drain?: number; movement_penalty?: number; cold_modifier?: number; heat_modifier?: number; energy_bonus?: number; visibility?: number; encounter_rate?: number; }; text_modifiers: { atmosphere?: string; add_descriptors?: string[]; replace?: { [key: string]: string; }; append?: string; prepend?: string; }; registeredAt?: number; } export interface ModifiedEvent { id: string; title: string; description: string; choices: any[]; type: string; context: any; difficulty?: string; tags?: string[]; environmentalEffects?: { appliedModifiers: string[]; netEffects: { [key: string]: number; }; }; } export declare class EnvironmentalSystem implements IEnvironmentalSystem { private modifiers; private activeModifiers; private rng; constructor(rng?: SeededRandom); /** * Initialize built-in environmental modifiers */ private initializeBuiltInModifiers; /** * Set environmental context and activate appropriate modifiers */ setEnvironmentalContext(context: EnvironmentalContext): void; private normalizeWeather; private normalizeTimeOfDay; /** * Apply all active modifiers to an event */ applyModifiers(event: any): ModifiedEvent; /** * Apply a single modifier to an event */ private applySingleModifier; /** * Apply text modifications to event description */ private applyTextModifiers; /** * Register a custom environmental modifier */ registerModifier(modifierId: string, modifierConfig: Omit): void; /** * Unregister a custom modifier */ unregisterModifier(modifierId: string): boolean; /** * Get all registered modifiers */ getModifiers(): { [id: string]: Modifier; }; /** * Get currently active modifiers */ getActiveModifiers(): string[]; /** * Check if a modifier is active */ isModifierActive(modifierId: string): boolean; /** * Clear all active modifiers */ clearActiveModifiers(): void; /** * Get environmental system statistics */ getStats(): { totalModifiers: number; activeModifiers: number; modifierTypes: { [type: string]: number; }; }; } //# sourceMappingURL=EnvironmentalSystem.d.ts.map