import { Stance, Combatant } from './types'; import { Character } from '../Character/types'; import { Enemy } from '../Enemy/types'; import { ActiveEffect, Effect, EffectApplicationResult, EffectTier } from '../Effects/types'; import { EquipmentProcTrigger } from '../Items/types'; export interface CombatEffectTrigger { stance: Stance; action: 'attack' | 'defend'; tier: EffectTier; effectId: string; target: 'self' | 'opponent'; baseChance: number; intensityOverride?: number; durationOverride?: number; fumbleEffectId?: string; } export type ProcUnlocks = Partial>>>; export type ProcOverrides = Partial>>>; export declare function getEligibleTriggers(stance: Stance, action: 'attack' | 'defend', unlocks?: ProcUnlocks, overrides?: ProcOverrides, equipmentTriggers?: EquipmentProcTrigger[]): CombatEffectTrigger[]; export declare function calculateProcChance(trigger: CombatEffectTrigger, actor: Combatant): number; export interface ProcRollOutcome { trigger: CombatEffectTrigger; effect: Effect; decision: 'crit' | 'normal' | 'skipped'; intensityBonus: number; durationBonus: number; appliedTo: 'self' | 'opponent'; } export interface FumbleOutcome { effect: Effect; effectId: string; } export interface RollForCombatEffectsParams { actor: Combatant; stance: Stance; action: 'attack' | 'defend'; rawAttackRoll: number; unlocks?: ProcUnlocks; overrides?: ProcOverrides; equipmentTriggers?: EquipmentProcTrigger[]; rng?: () => number; } export declare function rollForCombatEffects(p: RollForCombatEffectsParams): { procs: ProcRollOutcome[]; fumble: FumbleOutcome | null; }; export declare function applyProcOutcome(outcome: ProcRollOutcome, actor: Character | Enemy, actorEffects: ActiveEffect[], opponent: Character | Enemy, opponentEffects: ActiveEffect[], round: number, attackerHeartBonus?: number): { actorEffects: ActiveEffect[]; opponentEffects: ActiveEffect[]; appliedTo: 'self' | 'opponent'; result: EffectApplicationResult; }; export declare function applyFumbleOutcome(fumble: FumbleOutcome, actorEffects: ActiveEffect[], round: number, actorId?: string): { actorEffects: ActiveEffect[]; result: EffectApplicationResult; }; export declare const combatEffectsLibrary: readonly CombatEffectTrigger[]; //# sourceMappingURL=combat-effects.d.ts.map