import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { MetaType } from '../../../position/position.interface';
import { ContractPositionTemplatePositionFetcher } from '../../../position/template/contract-position.template.position-fetcher';
import { GetDisplayPropsParams, GetTokenBalancesParams, GetTokenDefinitionsParams } from '../../../position/template/contract-position.template.types';
import { SonneContractFactory } from '../contracts';
import { SonneStakedSonne } from '../contracts/ethers/SonneStakedSonne';
export declare type SonneStakingContractPositionDefinition = {
    address: string;
    underlyingTokenAddress: string;
    rewardTokenAddresses: string[];
};
export declare class OptimismSonneStakingContractPositionFetcher extends ContractPositionTemplatePositionFetcher<SonneStakedSonne> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: SonneContractFactory;
    groupLabel: string;
    constructor(appToolkit: IAppToolkit, contractFactory: SonneContractFactory);
    getContract(address: string): SonneStakedSonne;
    getDefinitions(): Promise<SonneStakingContractPositionDefinition[]>;
    getTokenDefinitions({ definition, }: GetTokenDefinitionsParams<SonneStakedSonne, SonneStakingContractPositionDefinition>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getLabel({ contract }: GetDisplayPropsParams<SonneStakedSonne>): Promise<string>;
    getTokenBalancesPerPosition({ address, contract, contractPosition }: GetTokenBalancesParams<SonneStakedSonne>): Promise<import("ethers").BigNumber[] | number[]>;
}
