import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { ContractPositionBalance } from '../../../position/position-balance.interface';
import { MetaType } from '../../../position/position.interface';
import { GetTokenDefinitionsParams, GetDisplayPropsParams, GetTokenBalancesParams, GetDataPropsParams } from '../../../position/template/contract-position.template.types';
import { CustomContractPositionTemplatePositionFetcher } from '../../../position/template/custom-contract-position.template.position-fetcher';
import { PolygonStakingContractFactory } from '../contracts';
import { PolygonStakeManager } from '../contracts/ethers/PolygonStakeManager';
declare type ValidatorsResponse = {
    result: {
        id: number;
        name: string;
        description: string;
        logoUrl: string | null;
        owner: string;
        signer: string;
        commissionPercent: number;
        signerPublicKey: string;
        selfStake: number;
        delegatedStake: number;
        isInAuction: boolean;
        auctionAmount: number;
        claimedReward: number;
        activationEpoch: 1;
        totalStaked: number;
        deactivationEpoch: number;
        jailEndEpoch: number;
        status: string;
        contractAddress: string;
        uptimePercent: number;
        delegationEnabled: boolean;
        missedLatestCheckpointcount: number;
    }[];
};
declare type PolygonStakingDepositDefinition = {
    address: string;
    validatorId: number;
    validatorName: string;
    validatorShareAddress: string;
};
declare type PolygonStakingDepositDataProps = {
    validatorId: number;
    validatorName: string;
    validatorShareAddress: string;
    positionKey: string;
};
export declare class EthereumPolygonStakingContractPositionFetcher extends CustomContractPositionTemplatePositionFetcher<PolygonStakeManager, PolygonStakingDepositDataProps, PolygonStakingDepositDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: PolygonStakingContractFactory;
    groupLabel: string;
    constructor(appToolkit: IAppToolkit, contractFactory: PolygonStakingContractFactory);
    getValidators(): Promise<ValidatorsResponse>;
    getContract(address: string): PolygonStakeManager;
    getDefinitions(): Promise<{
        address: string;
        validatorId: number;
        validatorName: string;
        validatorShareAddress: string;
    }[]>;
    getTokenDefinitions(_params: GetTokenDefinitionsParams<PolygonStakeManager>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getDataProps({ definition, }: GetDataPropsParams<PolygonStakeManager, PolygonStakingDepositDataProps, PolygonStakingDepositDefinition>): Promise<{
        validatorId: number;
        validatorName: string;
        validatorShareAddress: string;
        positionKey: string;
    }>;
    getLabel({ contractPosition }: GetDisplayPropsParams<PolygonStakeManager, PolygonStakingDepositDataProps>): Promise<string>;
    getImages({ contractPosition }: GetDisplayPropsParams<PolygonStakeManager>): Promise<string[]>;
    getTokenBalancesPerPosition(_params: GetTokenBalancesParams<PolygonStakeManager>): Promise<void>;
    getBalances(address: string): Promise<ContractPositionBalance<PolygonStakingDepositDataProps>[]>;
}
export {};
