import { roll, validateNotation } from "@randsum/roller";
import { RollArgument, RollerRollResult, ValidationResult } from "@randsum/roller";
import { RollResult } from "@randsum/roller";
type DaggerheartAdvantageDisadvantage = "Advantage" | "Disadvantage";
interface DaggerheartRollArgument {
	modifier?: number;
	rollingWith?: DaggerheartAdvantageDisadvantage;
	amplifyHope?: boolean;
	amplifyFear?: boolean;
}
type DaggerheartRollResultType = "hope" | "fear" | "critical hope";
interface DaggerheartRollRecord {
	roll: number;
	amplified?: boolean;
}
interface DaggerheartRollResult {
	total: number;
	type: DaggerheartRollResultType;
	details: {
		hope: DaggerheartRollRecord
		fear: DaggerheartRollRecord
		modifier: number
		advantage: DaggerheartRollRecord | undefined
	};
}
declare function rollDaggerheart({ rollingWith, amplifyHope, amplifyFear, modifier }: DaggerheartRollArgument): RollResult<DaggerheartRollResult>;
export { validateNotation, rollDaggerheart, roll, ValidationResult, RollerRollResult, RollArgument, DaggerheartRollResultType, DaggerheartRollResult, DaggerheartRollArgument, DaggerheartAdvantageDisadvantage };
