/** * Bounce odds — the "birthday problem" for bouncing damage dice (e.g. Chromatic * Orb): the probability that at least two of K dice with S faces show the same * value, which is what lets the spell jump to another target. * * Accounts for two modifiers: * - **Elemental Adept** (`minimumDieRoll >= 2`): rolls below the minimum are * bumped up to it, collapsing the low faces onto a single heavier value. * - **Empowered Spell** (`rerollDamageDice > 0`): a number of dice may be * rerolled once, giving a second chance at a match. * * The base and Elemental-Adept cases are computed exactly (see * {@link pAllDistinct}); the Empowered-Spell reroll is an explicit model layered * on the exact base match probability. */ /** Options that modify bounce odds via metamagic / feats. */ export interface BounceOddsOptions { /** Minimum die roll — e.g. 2 for Elemental Adept, 3 for Great Weapon Fighting 2024. */ minimumDieRoll?: number; /** Number of dice that may be rerolled once — e.g. CHA modifier for Empowered Spell. */ rerollDamageDice?: number; } /** * P(at least two of `diceCount` dice with `dieFaces` faces match), honoring * Elemental Adept and Empowered Spell. Returns a probability in [0, 1]. * * @param diceCount Number of dice rolled. * @param dieFaces Faces per die (e.g. 8 for d8). * @param options Optional metamagic / feat modifiers. */ export declare function calculateBounceOdds(diceCount: number, dieFaces: number, options?: BounceOddsOptions): number; //# sourceMappingURL=bounce.d.ts.map