import { BigNumberish, Contract } from 'ethers';
import { MetaType } from '../../position/position.interface';
import { ContractPositionTemplatePositionFetcher } from '../../position/template/contract-position.template.position-fetcher';
import { GetDisplayPropsParams, GetTokenBalancesParams, GetTokenDefinitionsParams } from './contract-position.template.types';
export declare abstract class VotingEscrowWithRewardsTemplateContractPositionFetcher<T extends Contract, V extends Contract> extends ContractPositionTemplatePositionFetcher<T> {
    abstract veTokenAddress: string;
    abstract rewardAddress: string;
    abstract getEscrowContract(address: string): T;
    abstract getRewardContract(address: string): V;
    abstract getEscrowedTokenAddress(contract: T): Promise<string>;
    abstract getRewardTokenAddress(contract: V): Promise<string>;
    abstract getEscrowedTokenBalance(address: string, contract: T): Promise<BigNumberish>;
    abstract getRewardTokenBalance(address: string, contract: V): Promise<BigNumberish>;
    getContract(address: string): T;
    getDefinitions(): Promise<{
        address: string;
    }[]>;
    getTokenDefinitions({ multicall }: GetTokenDefinitionsParams<T>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../types").Network;
    }[]>;
    getLabel({ contractPosition }: GetDisplayPropsParams<T>): Promise<string>;
    getTokenBalancesPerPosition({ address, multicall }: GetTokenBalancesParams<T>): Promise<BigNumberish[]>;
}
