import { Contract } from 'ethers';
import { IAppToolkit } from '../../app-toolkit/app-toolkit.interface';
import { DefaultDataProps } from '../../position/display.interface';
import { MetaType } from '../../position/position.interface';
import { ContractPositionTemplatePositionFetcher } from '../../position/template/contract-position.template.position-fetcher';
import { GetDisplayPropsParams, GetTokenDefinitionsParams } from './contract-position.template.types';
export declare type MerkleContractPositionDefinition = {
    address: string;
    rewardTokenAddress: string;
};
export declare abstract class MerkleTemplateContractPositionFetcher<T extends Contract> extends ContractPositionTemplatePositionFetcher<T, DefaultDataProps, MerkleContractPositionDefinition> {
    protected readonly appToolkit: IAppToolkit;
    constructor(appToolkit: IAppToolkit);
    abstract merkleAddress: string;
    abstract getRewardTokenAddresses(): Promise<string[]>;
    getDefinitions(): Promise<{
        address: string;
        rewardTokenAddress: string;
    }[]>;
    getTokenDefinitions({ definition }: GetTokenDefinitionsParams<T, MerkleContractPositionDefinition>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../types").Network;
    }[]>;
    getLabel({ contractPosition }: GetDisplayPropsParams<T>): Promise<string>;
}
