import { PlayerContext, Choice, Effect } from '../types'; import { IDifficultyScaler } from '../interfaces'; export interface DifficultyTier { name: 'easy' | 'normal' | 'hard' | 'legendary'; powerRange: [number, number]; rewardMultiplier: number; penaltyMultiplier: number; description: string; } export interface ScaledChoice extends Choice { originalEffect?: Effect; scalingFactors?: { rewardMultiplier: number; penaltyMultiplier: number; difficultyTier: string; }; } export interface DifficultyAnalysis { playerPowerLevel: number; recommendedTier: DifficultyTier; scalingFactors: { reward: number; penalty: number; challenge: number; }; adaptiveSuggestions: string[]; } export declare class DifficultyScaler implements IDifficultyScaler { private difficultyTiers; constructor(); /** * Calculate player's power level from context */ calculatePowerLevel(context: PlayerContext): number; /** * Determine difficulty tier based on power level */ calculateDifficultyTier(powerLevel: number): DifficultyTier; /** * Scale choice effects based on difficulty */ scaleEffectsForDifficulty(choices: Choice[], context: PlayerContext): ScaledChoice[]; /** * Scale a single effect based on difficulty tier */ private scaleEffect; /** * Analyze difficulty for a given context */ analyzeDifficulty(context: PlayerContext): DifficultyAnalysis; /** * Generate adaptive suggestions based on player power */ private generateAdaptiveSuggestions; /** * Adjust event weights based on player difficulty */ adjustWeightsForDifficulty(baseWeights: { [key: string]: number; }, context: PlayerContext): { [key: string]: number; }; /** * Get all difficulty tiers */ getDifficultyTiers(): DifficultyTier[]; /** * Add a custom difficulty tier */ addDifficultyTier(tier: DifficultyTier): void; /** * Remove a difficulty tier */ removeDifficultyTier(tierName: string): boolean; /** * Get difficulty statistics */ getStats(): { totalTiers: number; tierNames: string[]; powerLevelRanges: { [tier: string]: [number, number]; }; }; } //# sourceMappingURL=DifficultyScaler.d.ts.map