import { BigNumberish } from 'ethers';
import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { IMulticallWrapper } from '../../../multicall';
import { GetDataPropsParams, GetTokenBalancesParams } from '../../../position/template/contract-position.template.types';
import { GetMasterChefV2ExtraRewardTokenBalancesParams, GetMasterChefV2ExtraRewardTokenRewardRates, MasterChefV2ContractPositionDataProps, MasterChefV2TemplateContractPositionFetcher } from '../../../position/template/master-chef-v2.template.contract-position-fetcher';
import { GetMasterChefDataPropsParams, MasterChefContractPositionDataProps, MasterChefContractPositionDefinition, RewardRateUnit } from '../../../position/template/master-chef.template.contract-position-fetcher';
import { VectorFinanceContractFactory, VectorFinanceMasterChef, VectorFinanceMasterChefRewarder } from '../contracts';
export declare class VectorFinanceFarmContractPositionFetcher extends MasterChefV2TemplateContractPositionFetcher<VectorFinanceMasterChef, VectorFinanceMasterChefRewarder> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: VectorFinanceContractFactory;
    groupLabel: string;
    chefAddress: string;
    rewardRateUnit: RewardRateUnit;
    constructor(appToolkit: IAppToolkit, contractFactory: VectorFinanceContractFactory);
    getContract(address: string): VectorFinanceMasterChef;
    getExtraRewarderContract(address: string): VectorFinanceMasterChefRewarder;
    getPoolLength(contract: VectorFinanceMasterChef): Promise<import("ethers").BigNumber>;
    getStakedTokenAddress(contract: VectorFinanceMasterChef, poolIndex: number, multicall: IMulticallWrapper): Promise<string>;
    getRewardTokenAddress(contract: VectorFinanceMasterChef): Promise<string>;
    getExtraRewarder(contract: VectorFinanceMasterChef, poolIndex: number): Promise<string>;
    getExtraRewardTokenAddresses(contract: VectorFinanceMasterChefRewarder): Promise<string[]>;
    getReserve({ contract, contractPosition, definition, }: GetDataPropsParams<VectorFinanceMasterChef, MasterChefV2ContractPositionDataProps, MasterChefContractPositionDefinition>): Promise<number>;
    getTotalAllocPoints({ contract }: GetMasterChefDataPropsParams<VectorFinanceMasterChef>): Promise<import("ethers").BigNumber>;
    getTotalRewardRate({ contract }: GetMasterChefDataPropsParams<VectorFinanceMasterChef>): Promise<import("ethers").BigNumber>;
    getPoolAllocPoints({ contract, definition }: GetMasterChefDataPropsParams<VectorFinanceMasterChef>): Promise<import("ethers").BigNumber>;
    getExtraRewardTokenRewardRates({ contractPosition, }: GetMasterChefV2ExtraRewardTokenRewardRates<VectorFinanceMasterChef, VectorFinanceMasterChefRewarder>): Promise<number[]>;
    getStakedTokenBalance({ address, contract, contractPosition, }: GetTokenBalancesParams<VectorFinanceMasterChef, MasterChefContractPositionDataProps>): Promise<BigNumberish>;
    getRewardTokenBalance({ address, contract, contractPosition, }: GetTokenBalancesParams<VectorFinanceMasterChef, MasterChefContractPositionDataProps>): Promise<BigNumberish>;
    getExtraRewardTokenBalances({ address, contractPosition, rewarderContract, }: GetMasterChefV2ExtraRewardTokenBalancesParams<VectorFinanceMasterChef, VectorFinanceMasterChefRewarder>): Promise<import("ethers").BigNumber[]>;
}
