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, GetTokenBalancesParams, GetTokenDefinitionsParams } from '../../../position/template/contract-position.template.types';
import { BondTellerErc20, SolaceContractFactory } from '../contracts';
export declare type SolaceBondDefinition = {
    address: string;
    suppliedTokenAddress: string;
    claimableTokenAddress: string;
};
export declare abstract class SolaceBondsContractPositionFetcher extends ContractPositionTemplatePositionFetcher<BondTellerErc20, DefaultDataProps, SolaceBondDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: SolaceContractFactory;
    abstract bondTellerAddresses: string[];
    constructor(appToolkit: IAppToolkit, contractFactory: SolaceContractFactory);
    getContract(address: string): BondTellerErc20;
    getDefinitions(): Promise<SolaceBondDefinition[]>;
    getTokenDefinitions({ definition }: GetTokenDefinitionsParams<BondTellerErc20, SolaceBondDefinition>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getLabel({ contract }: GetDisplayPropsParams<BondTellerErc20>): Promise<string>;
    getTokenBalancesPerPosition({ address, contract }: GetTokenBalancesParams<BondTellerErc20>): Promise<number[]>;
}
