import { BigNumberish } 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, GetTokenBalancesParams } from '../../../position/template/contract-position.template.types';
import { Network } from '../../../types/network.interface';
import { SynthetixContractFactory, SynthetixLoan } from '../contracts';
export declare type SynthetixLoanContractPositionHelperParams = {
    loanContractAddress: string;
    network: Network;
};
export declare abstract class SynthetixLoanContractPositionFetcher extends ContractPositionTemplatePositionFetcher<SynthetixLoan> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: SynthetixContractFactory;
    abstract loanAddress: string;
    abstract sUSDAddress: string;
    abstract sETHAddress: string;
    abstract subgraphUrl: string;
    constructor(appToolkit: IAppToolkit, contractFactory: SynthetixContractFactory);
    getContract(address: string): SynthetixLoan;
    getDefinitions(): Promise<{
        address: string;
    }[]>;
    getTokenDefinitions(): Promise<{
        metaType: MetaType;
        address: string;
        network: Network;
    }[]>;
    getLabel({ contractPosition }: GetDisplayPropsParams<SynthetixLoan>): Promise<string>;
    getTokenBalancesPerPosition({ address, contractPosition, }: GetTokenBalancesParams<SynthetixLoan, DefaultDataProps>): Promise<BigNumberish[]>;
}
