import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types'; import { type L1RollupConstants } from '../epoch-helpers/index.js'; import type { SlasherConfig } from '../interfaces/slasher.js'; import { type Offense, OffenseType } from './types.js'; /** Returns the voting round number and voting slot within the round for a given L2 slot. */ export declare function getRoundForSlot(slot: SlotNumber, constants: { slashingRoundSize: number; }): { round: bigint; votingSlot: SlotNumber; }; /** Returns the voting round(s) lower and upper bounds (inclusive) covered by the given epoch */ export declare function getRoundsForEpoch(epoch: EpochNumber, constants: { slashingRoundSize: number; epochDuration: number; }): [bigint, bigint]; /** Returns the epochs spanned during a given slashing round */ export declare function getEpochsForRound(round: bigint, constants: { slashingRoundSize: number; epochDuration: number; }): EpochNumber[]; /** Reads the configured penalty for a given offense type from a slasher config struct */ export declare function getPenaltyForOffense(offense: OffenseType, config: Pick): bigint; /** Returns whether the `epochOrSlot` field for an offense references an epoch or a slot */ export declare function getTimeUnitForOffense(offense: OffenseType): 'epoch' | 'slot'; /** Returns the slot for a given offense. If the offense references an epoch, returns the first slot of the epoch. */ export declare function getSlotForOffense(offense: Pick, constants: Pick): SlotNumber; /** Returns the epoch for a given offense. If the offense type or epoch is not defined, returns undefined. */ export declare function getEpochForOffense(offense: Pick, constants: Pick): bigint; export declare function getEpochForOffense(offense: Partial>, constants: Pick): bigint | undefined; /** Returns the slashing round in which a given offense occurred. */ export declare function getRoundForOffense(offense: Pick, constants: { slashingRoundSize: number; epochDuration: number; }): bigint; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NsYXNoaW5nL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsS0FBSyxpQkFBaUIsRUFBd0MsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RyxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXZELDRGQUE0RjtBQUM1Rix3QkFBZ0IsZUFBZSxDQUM3QixJQUFJLEVBQUUsVUFBVSxFQUNoQixTQUFTLEVBQUU7SUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUE7Q0FBRSxHQUN2QztJQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7SUFBQyxVQUFVLEVBQUUsVUFBVSxDQUFBO0NBQUUsQ0FNM0M7QUFFRCxnR0FBZ0c7QUFDaEcsd0JBQWdCLGlCQUFpQixDQUMvQixLQUFLLEVBQUUsV0FBVyxFQUNsQixTQUFTLEVBQUU7SUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFBQyxhQUFhLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDOUQsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBS2xCO0FBRUQsK0RBQStEO0FBQy9ELHdCQUFnQixpQkFBaUIsQ0FDL0IsS0FBSyxFQUFFLE1BQU0sRUFDYixTQUFTLEVBQUU7SUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFBQyxhQUFhLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDOUQsV0FBVyxFQUFFLENBVWY7QUFFRCx5RkFBeUY7QUFDekYsd0JBQWdCLG9CQUFvQixDQUNsQyxPQUFPLEVBQUUsV0FBVyxFQUNwQixNQUFNLEVBQUUsSUFBSSxDQUNWLGFBQWEsRUFDWCx1Q0FBdUMsR0FDdkMscUNBQXFDLEdBQ3JDLCtCQUErQixHQUMvQixrQ0FBa0MsR0FDbEMsbUJBQW1CLEdBQ25CLDZCQUE2QixHQUM3QixxQkFBcUIsR0FDckIsd0JBQXdCLEdBQ3hCLHdDQUF3QyxDQUMzQyxVQTJCRjtBQUVELDJGQUEyRjtBQUMzRix3QkFBZ0IscUJBQXFCLENBQUMsT0FBTyxFQUFFLFdBQVcsR0FBRyxPQUFPLEdBQUcsTUFBTSxDQW1CNUU7QUFFRCxxSEFBcUg7QUFDckgsd0JBQWdCLGlCQUFpQixDQUMvQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLEdBQUcsYUFBYSxDQUFDLEVBQ3JELFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLEdBQ2xELFVBQVUsQ0FLWjtBQUVELDZHQUE2RztBQUM3Ryx3QkFBZ0Isa0JBQWtCLENBQ2hDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsR0FBRyxhQUFhLENBQUMsRUFDckQsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsR0FDbEQsTUFBTSxDQUFDO0FBQ1Ysd0JBQWdCLGtCQUFrQixDQUNoQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxHQUFHLGFBQWEsQ0FBQyxDQUFDLEVBQzlELFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLEdBQ2xELE1BQU0sR0FBRyxTQUFTLENBQUM7QUFZdEIsb0VBQW9FO0FBQ3BFLHdCQUFnQixrQkFBa0IsQ0FDaEMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxHQUFHLGFBQWEsQ0FBQyxFQUNyRCxTQUFTLEVBQUU7SUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFBQyxhQUFhLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDOUQsTUFBTSxDQUdSIn0=