import { ContainerType, ValueOf } from "@chainsafe/ssz";
export declare const BlockRewardsType: ContainerType<{
    /** Proposer of the block, the proposer index who receives these rewards */
    proposerIndex: import("@chainsafe/ssz").UintNumberType;
    /** Total block reward, equal to attestations + sync_aggregate + proposer_slashings + attester_slashings */
    total: import("@chainsafe/ssz").UintNumberType;
    /** Block reward component due to included attestations */
    attestations: import("@chainsafe/ssz").UintNumberType;
    /** Block reward component due to included sync_aggregate */
    syncAggregate: import("@chainsafe/ssz").UintNumberType;
    /** Block reward component due to included proposer_slashings */
    proposerSlashings: import("@chainsafe/ssz").UintNumberType;
    /** Block reward component due to included attester_slashings */
    attesterSlashings: import("@chainsafe/ssz").UintNumberType;
}>;
export declare const AttestationsRewardType: ContainerType<{
    /** Reward for head vote. Could be negative to indicate penalty */
    head: import("@chainsafe/ssz").UintNumberType;
    /** Reward for target vote. Could be negative to indicate penalty */
    target: import("@chainsafe/ssz").UintNumberType;
    /** Reward for source vote. Could be negative to indicate penalty */
    source: import("@chainsafe/ssz").UintNumberType;
    /** Inclusion delay reward (phase0 only) */
    inclusionDelay: import("@chainsafe/ssz").UintNumberType;
    /** Inactivity penalty. Should be a negative number to indicate penalty */
    inactivity: import("@chainsafe/ssz").UintNumberType;
}>;
export declare const IdealAttestationsRewardsType: ContainerType<{
    /** Reward for head vote. Could be negative to indicate penalty */
    head: import("@chainsafe/ssz").UintNumberType;
    /** Reward for target vote. Could be negative to indicate penalty */
    target: import("@chainsafe/ssz").UintNumberType;
    /** Reward for source vote. Could be negative to indicate penalty */
    source: import("@chainsafe/ssz").UintNumberType;
    /** Inclusion delay reward (phase0 only) */
    inclusionDelay: import("@chainsafe/ssz").UintNumberType;
    /** Inactivity penalty. Should be a negative number to indicate penalty */
    inactivity: import("@chainsafe/ssz").UintNumberType;
    effectiveBalance: import("@chainsafe/ssz").UintNumberType;
}>;
export declare const TotalAttestationsRewardsType: ContainerType<{
    /** Reward for head vote. Could be negative to indicate penalty */
    head: import("@chainsafe/ssz").UintNumberType;
    /** Reward for target vote. Could be negative to indicate penalty */
    target: import("@chainsafe/ssz").UintNumberType;
    /** Reward for source vote. Could be negative to indicate penalty */
    source: import("@chainsafe/ssz").UintNumberType;
    /** Inclusion delay reward (phase0 only) */
    inclusionDelay: import("@chainsafe/ssz").UintNumberType;
    /** Inactivity penalty. Should be a negative number to indicate penalty */
    inactivity: import("@chainsafe/ssz").UintNumberType;
    validatorIndex: import("@chainsafe/ssz").UintNumberType;
}>;
export declare const AttestationsRewardsType: ContainerType<{
    idealRewards: import("@chainsafe/ssz").ArrayType<import("@chainsafe/ssz").Type<import("@chainsafe/ssz").ValueOfFields<{
        /** Reward for head vote. Could be negative to indicate penalty */
        head: import("@chainsafe/ssz").UintNumberType;
        /** Reward for target vote. Could be negative to indicate penalty */
        target: import("@chainsafe/ssz").UintNumberType;
        /** Reward for source vote. Could be negative to indicate penalty */
        source: import("@chainsafe/ssz").UintNumberType;
        /** Inclusion delay reward (phase0 only) */
        inclusionDelay: import("@chainsafe/ssz").UintNumberType;
        /** Inactivity penalty. Should be a negative number to indicate penalty */
        inactivity: import("@chainsafe/ssz").UintNumberType;
        effectiveBalance: import("@chainsafe/ssz").UintNumberType;
    }>>, unknown, unknown>;
    totalRewards: import("@chainsafe/ssz").ArrayType<import("@chainsafe/ssz").Type<import("@chainsafe/ssz").ValueOfFields<{
        /** Reward for head vote. Could be negative to indicate penalty */
        head: import("@chainsafe/ssz").UintNumberType;
        /** Reward for target vote. Could be negative to indicate penalty */
        target: import("@chainsafe/ssz").UintNumberType;
        /** Reward for source vote. Could be negative to indicate penalty */
        source: import("@chainsafe/ssz").UintNumberType;
        /** Inclusion delay reward (phase0 only) */
        inclusionDelay: import("@chainsafe/ssz").UintNumberType;
        /** Inactivity penalty. Should be a negative number to indicate penalty */
        inactivity: import("@chainsafe/ssz").UintNumberType;
        validatorIndex: import("@chainsafe/ssz").UintNumberType;
    }>>, unknown, unknown>;
}>;
export declare const SyncCommitteeRewardsType: import("@chainsafe/ssz").ArrayType<import("@chainsafe/ssz").Type<import("@chainsafe/ssz").ValueOfFields<{
    validatorIndex: import("@chainsafe/ssz").UintNumberType;
    reward: import("@chainsafe/ssz").UintNumberType;
}>>, unknown, unknown>;
/**
 * Rewards info for a single block. Every reward value is in Gwei.
 */
export type BlockRewards = ValueOf<typeof BlockRewardsType>;
/**
 * Rewards for a single set of (ideal or actual depending on usage) attestations. Reward value is in Gwei
 */
export type AttestationsReward = ValueOf<typeof AttestationsRewardType>;
/**
 * Rewards info for ideal attestations ie. Maximum rewards could be earned by making timely head, target and source vote.
 * `effectiveBalance` is in Gwei
 */
export type IdealAttestationsReward = ValueOf<typeof IdealAttestationsRewardsType>;
/**
 * Rewards info for actual attestations
 */
export type TotalAttestationsReward = ValueOf<typeof TotalAttestationsRewardsType>;
export type AttestationsRewards = ValueOf<typeof AttestationsRewardsType>;
/**
 * Rewards info for sync committee participation. Every reward value is in Gwei.
 * Note: In the case that block proposer is present in `SyncCommitteeRewards`, the reward value only reflects rewards for
 * participating in sync committee. Please refer to `BlockRewards.syncAggregate` for rewards of proposer including sync committee
 * outputs into their block
 */
export type SyncCommitteeRewards = ValueOf<typeof SyncCommitteeRewardsType>;
//# sourceMappingURL=rewards.d.ts.map