import { PMF } from "../pmf/pmf.js"; import type { DiceQuery } from "../pmf/query.js"; import type { ACBuilder } from "./ac.js"; import { AlwaysCritBuilder, AlwaysHitBuilder, RollBuilder } from "./roll.js"; import type { AttackResolution, CheckBuilder } from "./types.js"; type ActionEffect = RollBuilder; /** Clears the resolved-attack PMF cache (test/bench seam; mirrors {@link clearParserCache}). */ export declare function clearAttackCache(): void; export declare class AttackBuilder implements CheckBuilder { readonly check: ACBuilder | AlwaysHitBuilder | AlwaysCritBuilder; private readonly hitEffect?; private readonly critEffect?; private readonly missEffect?; constructor(check: ACBuilder | AlwaysHitBuilder | AlwaysCritBuilder, hitEffect?: ActionEffect | undefined, critEffect?: ActionEffect | null | undefined, missEffect?: ActionEffect | undefined); onCrit(val: number): AttackBuilder; onCrit(val: string): AttackBuilder; onCrit(val: RollBuilder): AttackBuilder; onCrit(count: number, die: RollBuilder): AttackBuilder; onCrit(count: number, sides: number): AttackBuilder; onCrit(count: number, die: RollBuilder, modifier: number): AttackBuilder; onCrit(count: number, sides: number, modifier: number): AttackBuilder; onMiss(val: number): AttackBuilder; onMiss(val: string): AttackBuilder; onMiss(val: RollBuilder): AttackBuilder; onMiss(count: number, die: RollBuilder): AttackBuilder; onMiss(count: number, sides: number): AttackBuilder; onMiss(count: number, die: RollBuilder, modifier: number): AttackBuilder; onMiss(count: number, sides: number, modifier: number): AttackBuilder; noCrit(): AttackBuilder; toExpression(): string; resolveProbabilities(check: ACBuilder | AlwaysHitBuilder | AlwaysCritBuilder, eps?: number): { pSuccess: number; pHit: number; pCrit: number; pMiss: number; }; resolve(eps?: number): AttackResolution; /** * A cheap, complete key for this attack's resolved PMF, or `null` when it can't be cached soundly (an * effect whose PMF isn't captured by its {@link RollConfig}s — see {@link RollBuilder.cacheKey}). Composed * from the check + hit/crit/miss effect keys + `eps`. `critEffect === null` (noCrit) and `undefined` * (auto-double the hit dice) are distinct crit states, encoded separately. */ private cacheKey; toPMF(eps?: number): PMF; get pmf(): PMF; toQuery(eps?: number): DiceQuery; } export {}; //# sourceMappingURL=attack.d.ts.map