import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { AppTokenTemplatePositionFetcher } from '../../../position/template/app-token.template.position-fetcher';
import { DefaultAppTokenDataProps, GetDataPropsParams, GetDisplayPropsParams, GetPricePerShareParams, GetUnderlyingTokensParams } from '../../../position/template/app-token.template.types';
import { AaveAbpt, AaveSafetyModuleContractFactory } from '../contracts';
declare type AaveSafetyModuleAbptTokenDataProps = DefaultAppTokenDataProps & {
    fee: number;
};
export declare class EthereumAaveSafetyModuleAbptTokenFetcher extends AppTokenTemplatePositionFetcher<AaveAbpt, AaveSafetyModuleAbptTokenDataProps> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: AaveSafetyModuleContractFactory;
    groupLabel: string;
    readonly bptAddress = "0xc697051d1c6296c24ae3bcef39aca743861d9a81";
    readonly abptAddress = "0x41a08648c3766f9f9d85598ff102a08f4ef84f84";
    readonly aaveAddress = "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9";
    readonly wethAddress = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
    constructor(appToolkit: IAppToolkit, contractFactory: AaveSafetyModuleContractFactory);
    getContract(address: string): AaveAbpt;
    getAddresses(): Promise<string[]>;
    getUnderlyingTokenDefinitions(_params: GetUnderlyingTokensParams<AaveAbpt>): Promise<{
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getPricePerShare({ appToken, multicall, }: GetPricePerShareParams<AaveAbpt, AaveSafetyModuleAbptTokenDataProps>): Promise<number[]>;
    getLiquidity({ appToken }: GetDataPropsParams<AaveAbpt, AaveSafetyModuleAbptTokenDataProps>): Promise<number>;
    getDataProps(params: GetDataPropsParams<AaveAbpt, AaveSafetyModuleAbptTokenDataProps>): Promise<{
        fee: number;
        liquidity: number;
        reserves: number[];
        apy: number;
        isDebt: boolean;
    }>;
    getLabel({ appToken }: GetDisplayPropsParams<AaveAbpt, AaveSafetyModuleAbptTokenDataProps>): Promise<string>;
    getSecondaryLabel({ appToken }: GetDisplayPropsParams<AaveAbpt, AaveSafetyModuleAbptTokenDataProps>): Promise<string>;
}
export {};
