import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { DisplayProps } from '../../../position/display.interface';
import { MetaType } from '../../../position/position.interface';
import { ContractPositionTemplatePositionFetcher } from '../../../position/template/contract-position.template.position-fetcher';
import { GetDisplayPropsParams, GetTokenBalancesParams, GetDefinitionsParams, GetTokenDefinitionsParams } from '../../../position/template/contract-position.template.types';
import { ImpermaxContractFactory, Borrowable } from '../contracts';
export declare abstract class ImpermaxBorrowContractPositionFetcher extends ContractPositionTemplatePositionFetcher<Borrowable> {
    readonly appToolkit: IAppToolkit;
    private readonly contractFactory;
    abstract factoryAddress: string;
    constructor(appToolkit: IAppToolkit, contractFactory: ImpermaxContractFactory);
    getContract(address: string): Borrowable;
    getDefinitions({ multicall }: GetDefinitionsParams): Promise<{
        address: string;
    }[]>;
    getTokenDefinitions({ contract }: GetTokenDefinitionsParams<Borrowable>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getLabel({ contractPosition }: GetDisplayPropsParams<Borrowable>): Promise<DisplayProps['label']>;
    getSecondaryLabel({ contractPosition, }: GetDisplayPropsParams<Borrowable>): Promise<DisplayProps['secondaryLabel']>;
    getTokenBalancesPerPosition({ address, contract }: GetTokenBalancesParams<Borrowable>): Promise<import("ethers").BigNumber[]>;
}
