import { AccountingSDK } from '../accounting-sdk/index.js';
import { CsmSDKModule } from '../common/class-primitives/csm-sdk-module.js';
import { NodeOperatorId, RewardProof } from '../common/index.js';
import { EventsSDK } from '../events-sdk/events-sdk.js';
import { FrameSDK } from '../frame-sdk/frame-sdk.js';
import { KeysWithStatusSDK } from '../keys-with-status-sdk/keys-with-status-sdk.js';
import { ModuleSDK } from '../module-sdk/module-sdk.js';
import { ParametersSDK } from '../parameters-sdk/index.js';
import { OperatorRewards, OperatorRewardsHistory } from './types.js';
export declare class RewardsSDK extends CsmSDKModule<{
    accounting: AccountingSDK;
    events: EventsSDK;
    parameters: ParametersSDK;
    frame: FrameSDK;
    keysWithStatus: KeysWithStatusSDK;
    module: ModuleSDK;
}> {
    private get distributorContract();
    getProofTreeUrls(cid: string): string[];
    getReportUrls(cid: string): string[];
    private getHistoryCount;
    getReportConfig(number: bigint): Promise<{
        refSlot: bigint;
        treeRoot: `0x${string}`;
        treeCid: string;
        logCid: string;
        distributed: bigint;
        rebate: bigint;
    }>;
    getLastReportConfig(): Promise<{
        refSlot: bigint;
        treeRoot: `0x${string}`;
        treeCid: string;
        logCid: string;
        distributed: bigint;
        rebate: bigint;
    } | null>;
    getProofTree(): Promise<import("@openzeppelin/merkle-tree").StandardMerkleTree<[bigint, bigint]> | null>;
    getProof(nodeOperatorId: NodeOperatorId): Promise<RewardProof>;
    getAvailable(nodeOperatorId: NodeOperatorId, { proof, shares }: RewardProof): Promise<bigint>;
    getRewards(nodeOperatorId: NodeOperatorId): Promise<{
        available: bigint;
        shares: bigint;
        proof: import("../common/types.js").Proof;
    }>;
    getReportByCid(cid: string): Promise<void | {
        blockstamp: {
            block_hash: string;
            block_number: bigint;
            block_timestamp: number;
            ref_epoch: bigint;
            ref_slot: bigint;
            slot_number: bigint;
            state_root: string;
        };
        distributable: bigint;
        frame: [number, number];
        threshold: number;
        operators: Record<`${bigint}`, {
            distributed: bigint;
            validators: Record<`${bigint}`, {
                perf: {
                    assigned: number;
                    included: number;
                };
                slashed: boolean;
            }>;
        }>;
    } | {
        blockstamp: {
            block_hash: string;
            block_number: bigint;
            block_timestamp: number;
            ref_epoch: bigint;
            ref_slot: bigint;
            slot_number: bigint;
            state_root: string;
        };
        distributable: bigint;
        distributed_rewards: bigint;
        rebate_to_protocol: bigint;
        frame: [number, number];
        operators: Record<`${bigint}`, {
            distributed_rewards: bigint;
            performance_coefficients: {
                attestations_weight: number;
                blocks_weight: number;
                sync_weight: number;
            };
            validators: Record<`${bigint}`, {
                attestation_duty: {
                    assigned: number;
                    included: number;
                };
                distributed_rewards: bigint;
                performance: number;
                proposal_duty: {
                    assigned: number;
                    included: number;
                };
                rewards_share: number;
                slashed: boolean;
                strikes: number;
                sync_duty: {
                    assigned: number;
                    included: number;
                };
                threshold: number;
            }>;
        }>;
    } | {
        blockstamp: {
            block_hash: string;
            block_number: bigint;
            block_timestamp: number;
            ref_epoch: bigint;
            ref_slot: bigint;
            slot_number: bigint;
            state_root: string;
        };
        distributable: bigint;
        distributed_rewards: bigint;
        rebate_to_protocol: bigint;
        frame: [number, number];
        operators: Record<`${bigint}`, {
            distributed_rewards: bigint;
            performance_coefficients: {
                attestations_weight: number;
                blocks_weight: number;
                sync_weight: number;
            };
            validators: Record<`${bigint}`, {
                attestation_duty: {
                    assigned: number;
                    included: number;
                };
                distributed_rewards: bigint;
                performance: number;
                proposal_duty: {
                    assigned: number;
                    included: number;
                };
                rewards_share: number;
                slashed: boolean;
                strikes: number;
                sync_duty: {
                    assigned: number;
                    included: number;
                };
                threshold: number;
            }>;
        }>;
    }[]>;
    getLastReport(): Promise<void | {
        blockstamp: {
            block_hash: string;
            block_number: bigint;
            block_timestamp: number;
            ref_epoch: bigint;
            ref_slot: bigint;
            slot_number: bigint;
            state_root: string;
        };
        distributable: bigint;
        frame: [number, number];
        threshold: number;
        operators: Record<`${bigint}`, {
            distributed: bigint;
            validators: Record<`${bigint}`, {
                perf: {
                    assigned: number;
                    included: number;
                };
                slashed: boolean;
            }>;
        }>;
    } | {
        blockstamp: {
            block_hash: string;
            block_number: bigint;
            block_timestamp: number;
            ref_epoch: bigint;
            ref_slot: bigint;
            slot_number: bigint;
            state_root: string;
        };
        distributable: bigint;
        distributed_rewards: bigint;
        rebate_to_protocol: bigint;
        frame: [number, number];
        operators: Record<`${bigint}`, {
            distributed_rewards: bigint;
            performance_coefficients: {
                attestations_weight: number;
                blocks_weight: number;
                sync_weight: number;
            };
            validators: Record<`${bigint}`, {
                attestation_duty: {
                    assigned: number;
                    included: number;
                };
                distributed_rewards: bigint;
                performance: number;
                proposal_duty: {
                    assigned: number;
                    included: number;
                };
                rewards_share: number;
                slashed: boolean;
                strikes: number;
                sync_duty: {
                    assigned: number;
                    included: number;
                };
                threshold: number;
            }>;
        }>;
    }>;
    getOperatorRewardsInLastReport(nodeOperatorId: NodeOperatorId): Promise<OperatorRewards | undefined>;
    getLastReportTransactionHash(): Promise<`0x${string}` | undefined>;
    getAllReports(): Promise<({
        blockstamp: {
            block_hash: string;
            block_number: bigint;
            block_timestamp: number;
            ref_epoch: bigint;
            ref_slot: bigint;
            slot_number: bigint;
            state_root: string;
        };
        distributable: bigint;
        frame: [number, number];
        threshold: number;
        operators: Record<`${bigint}`, {
            distributed: bigint;
            validators: Record<`${bigint}`, {
                perf: {
                    assigned: number;
                    included: number;
                };
                slashed: boolean;
            }>;
        }>;
    } | {
        blockstamp: {
            block_hash: string;
            block_number: bigint;
            block_timestamp: number;
            ref_epoch: bigint;
            ref_slot: bigint;
            slot_number: bigint;
            state_root: string;
        };
        distributable: bigint;
        distributed_rewards: bigint;
        rebate_to_protocol: bigint;
        frame: [number, number];
        operators: Record<`${bigint}`, {
            distributed_rewards: bigint;
            performance_coefficients: {
                attestations_weight: number;
                blocks_weight: number;
                sync_weight: number;
            };
            validators: Record<`${bigint}`, {
                attestation_duty: {
                    assigned: number;
                    included: number;
                };
                distributed_rewards: bigint;
                performance: number;
                proposal_duty: {
                    assigned: number;
                    included: number;
                };
                rewards_share: number;
                slashed: boolean;
                strikes: number;
                sync_duty: {
                    assigned: number;
                    included: number;
                };
                threshold: number;
            }>;
        }>;
    })[]>;
    getOperatorRewardsHistory(nodeOperatorId: NodeOperatorId): Promise<OperatorRewardsHistory>;
}
//# sourceMappingURL=rewards-sdk.d.ts.map