import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { MakerContractFactory, MakerGemJoin } from '../../../apps/maker/contracts';
import { MetaType } from '../../../position/position.interface';
import { ContractPositionTemplatePositionFetcher } from '../../../position/template/contract-position.template.position-fetcher';
import { GetDefinitionsParams, GetTokenDefinitionsParams, GetDisplayPropsParams, GetDataPropsParams, GetTokenBalancesParams } from '../../../position/template/contract-position.template.types';
import { BProtocolContractFactory } from '../contracts';
export declare type BProtocolVaultDefinition = {
    address: string;
    ilk: string;
    ilkName: string;
    collateralTokenAddress: string;
};
export declare type BProtocolVaultDataProps = {
    ilk: string;
    ilkName: string;
    cRatio?: number;
    cdpId?: number;
};
export declare class EthereumBProtocolMakerVaultContractPositionFetcher extends ContractPositionTemplatePositionFetcher<MakerGemJoin, BProtocolVaultDataProps, BProtocolVaultDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly makerContractFactory: MakerContractFactory;
    protected readonly bProtocolContractFactory: BProtocolContractFactory;
    groupLabel: string;
    private readonly BCDP_MANGER;
    private readonly CDP_MANAGER;
    private readonly GET_CDPS;
    private readonly MCD_VAT;
    private readonly MCD_SPOT;
    private readonly PROXY_REGISTRY;
    private readonly JAR;
    constructor(appToolkit: IAppToolkit, makerContractFactory: MakerContractFactory, bProtocolContractFactory: BProtocolContractFactory);
    getContract(address: string): MakerGemJoin;
    getDefinitions({ multicall }: GetDefinitionsParams): Promise<BProtocolVaultDefinition[]>;
    getTokenDefinitions({ definition }: GetTokenDefinitionsParams<MakerGemJoin, BProtocolVaultDefinition>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getDataProps({ definition, }: GetDataPropsParams<MakerGemJoin, BProtocolVaultDataProps, BProtocolVaultDefinition>): Promise<{
        ilkName: string;
        ilk: string;
    }>;
    getLabel({ contractPosition, }: GetDisplayPropsParams<MakerGemJoin, BProtocolVaultDataProps, BProtocolVaultDefinition>): Promise<string>;
    getTokenBalancesPerPosition({ address, contractPosition, multicall, }: GetTokenBalancesParams<MakerGemJoin, BProtocolVaultDataProps>): Promise<string[]>;
}
