import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { DisplayProps } from '../../../position/display.interface';
import { AppTokenTemplatePositionFetcher } from '../../../position/template/app-token.template.position-fetcher';
import { GetUnderlyingTokensParams, GetPricePerShareParams, GetDataPropsParams, GetDisplayPropsParams, GetAddressesParams, DefaultAppTokenDataProps } from '../../../position/template/app-token.template.types';
import { FurucomboContractFactory, FurucomboFundShareToken } from '../contracts';
interface FurucomboFund {
    address: string;
    name: string;
    token: {
        address: string;
        symbol: string;
        decimals: number;
        name: string;
    };
    stakingToken: {
        address: string;
        symbol: string;
        decimals: number;
        name: string;
    };
    liquidity: string;
    apy: string;
    tokenPrice: string;
    stakingTokenPrice: string;
    fundVault: string;
}
declare type FurucomboFundDefinition = {
    address: string;
    vaultAddress: string;
    stakingTokenAddress: string;
    name: string;
    apy: string;
    liquidity: string;
    price: string;
};
export declare class PolygonFurucomboFundTokenFetcher extends AppTokenTemplatePositionFetcher<FurucomboFundShareToken, DefaultAppTokenDataProps, FurucomboFundDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: FurucomboContractFactory;
    groupLabel: string;
    minLiquidity: number;
    constructor(appToolkit: IAppToolkit, contractFactory: FurucomboContractFactory);
    getContract(address: string): FurucomboFundShareToken;
    getFurucomboFunds(): Promise<FurucomboFund[]>;
    getDefinitions(): Promise<FurucomboFundDefinition[]>;
    getAddresses({ definitions }: GetAddressesParams<FurucomboFundDefinition>): Promise<string[]>;
    getUnderlyingTokenDefinitions({ definition, }: GetUnderlyingTokensParams<FurucomboFundShareToken, FurucomboFundDefinition>): Promise<{
        address: string;
        network: import("../../../types/network.interface").Network;
    }[]>;
    getPricePerShare({ appToken, definition, }: GetPricePerShareParams<FurucomboFundShareToken, DefaultAppTokenDataProps, FurucomboFundDefinition>): Promise<number[]>;
    getLiquidity({ definition, }: GetDataPropsParams<FurucomboFundShareToken, DefaultAppTokenDataProps, FurucomboFundDefinition>): Promise<number>;
    getReserves({ definition, appToken, }: GetDataPropsParams<FurucomboFundShareToken, DefaultAppTokenDataProps, FurucomboFundDefinition>): Promise<number[]>;
    getApy({ definition, }: GetDataPropsParams<FurucomboFundShareToken, DefaultAppTokenDataProps, FurucomboFundDefinition>): Promise<number>;
    getLabel({ definition, }: GetDisplayPropsParams<FurucomboFundShareToken, DefaultAppTokenDataProps, FurucomboFundDefinition>): Promise<DisplayProps['label']>;
    getImages({ appToken, }: GetDisplayPropsParams<FurucomboFundShareToken, DefaultAppTokenDataProps>): Promise<DisplayProps['images']>;
}
export {};
