import { BigNumberish } from 'ethers';
import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { DefaultDataProps } from '../../../position/display.interface';
import { ContractPositionBalance } from '../../../position/position-balance.interface';
import { MetaType } from '../../../position/position.interface';
import { GetDisplayPropsParams, GetTokenDefinitionsParams } from '../../../position/template/contract-position.template.types';
import { CustomContractPositionTemplatePositionFetcher } from '../../../position/template/custom-contract-position.template.position-fetcher';
import { AngleApiHelper } from '../common/angle.api';
import { AngleContractFactory, AngleVaultManager } from '../contracts';
export declare type AngleVaultDefinition = {
    address: string;
    collateral: string;
    stablecoin: string;
};
export declare class EthereumAngleVaultsContractPositionFetcher extends CustomContractPositionTemplatePositionFetcher<AngleVaultManager, DefaultDataProps, AngleVaultDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: AngleContractFactory;
    protected readonly angleApiHelper: AngleApiHelper;
    groupLabel: string;
    constructor(appToolkit: IAppToolkit, contractFactory: AngleContractFactory, angleApiHelper: AngleApiHelper);
    getContract(address: string): AngleVaultManager;
    getDefinitions(): Promise<{
        address: string;
        borrowFee: number;
        collateral: string;
        collateralHasPermit: boolean;
        collateralPermitVersion: string;
        decimals: number;
        dust: number;
        liquidationPenalty: number;
        maxLTV: number;
        minCollateralRatio: number;
        rate: number;
        stabilityFee: number;
        stablecoin: string;
        swapper: string;
        symbol: string;
        totalCollateral: number;
        totalDebt: number;
        treasury: string;
    }[]>;
    getTokenDefinitions({ definition }: GetTokenDefinitionsParams<AngleVaultManager, AngleVaultDefinition>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getLabel({ contractPosition, }: GetDisplayPropsParams<AngleVaultManager, DefaultDataProps, AngleVaultDefinition>): Promise<string>;
    getTokenBalancesPerPosition(): Promise<BigNumberish[]>;
    getBalances(address: string): Promise<ContractPositionBalance<DefaultDataProps>[]>;
}
