import BigNumber from '../../../dependencies/src/bignumber.js-9.0.0/bignumber';
import { TezosBakingRewards, TezosBakingRight, TezosEndorsingRewards, TezosEndorsingRight, TezosNodeConstants, TezosProtocol, TezosRewards, TezosRewardsCalculations } from '../TezosProtocol';
export declare class TezosRewardsCalculationDefault implements TezosRewardsCalculations {
    protocol: TezosProtocol;
    protected tezosNodeConstants: TezosNodeConstants;
    constructor(protocol: TezosProtocol);
    protected getConstants(currentLevel: number, useHead: boolean): Promise<void>;
    calculateRewards(bakerAddress: string, cycle: number, breakdownRewards?: boolean, currentCycleIn?: number): Promise<TezosRewards>;
    private calculatePastRewards;
    private calculateFutureRewards;
    private fetchEndorsementOperations;
    private fetchFrozenBalances;
    protected computeBakingRewards(bakingRights: {
        level: number;
        priority: number;
    }[], isFutureCycle: boolean): Promise<TezosBakingRewards>;
    protected computeEndorsingRewards(endorsingRights: TezosEndorsingRight[], isFutureCycle: boolean): Promise<TezosEndorsingRewards>;
    protected specificEndorsingCalculation(priority: number, number_of_slots: number): BigNumber;
    private computeSnapshotBlockLevel;
    private fetchBakerInfo;
    private fetchBlocksForBaker;
    private blockLevelFieldNameMap;
    private fetchBlockLevelFieldPromise?;
    private fetchBlockLevelFieldName;
    protected fetchBakingRights(bakerAddress: string, cycle: number): Promise<TezosBakingRight[]>;
    protected fetchEndorsingRights(bakerAddress: string, cycle: number): Promise<TezosEndorsingRight[]>;
    protected fetchEndorsementOperationCountAndTotalFees(blockLevels: number[]): Promise<Map<number, {
        sum_number_of_slots: string;
        block_level: number;
        sum_fee: number;
    }>>;
    protected fetchBlockPriorities(blockLevels: number[]): Promise<{
        priority: number;
        level: number;
    }[]>;
    private cycleToBlockLevel;
}
