/** * Keep/drop modifier implementations for dice pools. * * @module evaluator/modifiers/keep-drop */ import type { DieResult, KeepDropSpec } from '../../types.js'; /** * Records into `droppedMask` every pool slot that `kind` / `selector` / * `count` drops. * * Nothing is cloned and no flag is written. The caller owns the merge, so a * chain like `4d6kh3dl1` runs one pass per spec over the same mask and then * rewrites each die's slot flags exactly once — where the previous * clone-per-spec appliers rebuilt the whole pool for every spec only to have * their flags read back and discarded. * * Dice already carrying `'dropped'` (reroll intermediates, meta dice, a * preceding chain's losers) are ineligible for selection and stay dropped. */ export declare function markDroppedIndices(dice: DieResult[], count: number, kind: KeepDropSpec['kind'], selector: KeepDropSpec['selector'], droppedMask: Uint8Array, hasVersusDc: boolean): void; /** * Sums the dice a keep/drop pass left standing. * * @param hasVersusDc - Shared env flag; skips the DC exclusion when no `vs` has * tagged anything */ export declare function sumKeptDice(dice: DieResult[], hasVersusDc: boolean): number; //# sourceMappingURL=keep-drop.d.ts.map