import { BigNumberish } from 'ethers';
import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { GetMasterChefDataPropsParams, GetMasterChefTokenBalancesParams, MasterChefTemplateContractPositionFetcher } from '../../../position/template/master-chef.template.contract-position-fetcher';
import { QiDaoContractFactory, QiDaoMasterChefV3 } from '../contracts';
export declare abstract class QiDaoFarmV3ContractPositionFetcher extends MasterChefTemplateContractPositionFetcher<QiDaoMasterChefV3> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: QiDaoContractFactory;
    abstract chefAddresses: string[];
    chefAddress: string;
    constructor(appToolkit: IAppToolkit, contractFactory: QiDaoContractFactory);
    getDefinitions(): Promise<{
        address: string;
        poolIndex: number;
    }[]>;
    getContract(address: string): QiDaoMasterChefV3;
    getPoolLength(contract: QiDaoMasterChefV3): Promise<BigNumberish>;
    getStakedTokenAddress(contract: QiDaoMasterChefV3, poolIndex: number): Promise<string>;
    getRewardTokenAddress(contract: QiDaoMasterChefV3): Promise<string>;
    getTotalAllocPoints({ contract }: GetMasterChefDataPropsParams<QiDaoMasterChefV3>): Promise<import("ethers").BigNumber>;
    getTotalRewardRate({ contract }: GetMasterChefDataPropsParams<QiDaoMasterChefV3>): Promise<import("ethers").BigNumber>;
    getPoolAllocPoints({ contract, definition, }: GetMasterChefDataPropsParams<QiDaoMasterChefV3>): Promise<BigNumberish>;
    getStakedTokenBalance({ address, contract, contractPosition, }: GetMasterChefTokenBalancesParams<QiDaoMasterChefV3>): Promise<import("ethers").BigNumber>;
    getRewardTokenBalance({ address, contract, contractPosition, }: GetMasterChefTokenBalancesParams<QiDaoMasterChefV3>): Promise<BigNumberish | BigNumberish[]>;
}
