import { PMF } from "../pmf/pmf.js"; import type { DiceQuery } from "../pmf/query.js"; import type { DCBuilder } from "./dc.js"; import { type RollBuilder } from "./roll.js"; import type { CheckBuilder, SaveResolution } from "./types.js"; export type SaveOutcome = "normal" | "half"; /** Clears the resolved-save PMF cache (test/bench seam; mirrors {@link clearAttackCache}). */ export declare function clearSaveCache(): void; export declare class SaveBuilder implements CheckBuilder { readonly check: DCBuilder; private readonly failureEffect?; private readonly saveOutcome; constructor(check: DCBuilder, failureEffect?: RollBuilder | undefined, saveOutcome?: SaveOutcome); saveHalf(): SaveBuilder; toExpression(): string; resolve(eps?: number): SaveResolution; /** * A cheap, complete key for this save's resolved PMF, or `null` when it can't be cached soundly. * {@link resolve} reads exactly three things: the DC check (via `resolveProbabilities`), the failure * effect's PMF, and the save outcome — so composing their keys pins it. A `ParsedRollBuilder` failure * effect returns `null`, which correctly forces this uncached. */ private cacheKey; toPMF(eps?: number): PMF; get pmf(): PMF; toQuery(eps?: number): DiceQuery; } //# sourceMappingURL=save.d.ts.map