import { Erc20 } from '../../contract/contracts';
import { AppTokenTemplatePositionFetcher } from '../../position/template/app-token.template.position-fetcher';
import { GetDataPropsParams, GetPricePerShareParams, GetUnderlyingTokensParams } from '../../position/template/app-token.template.types';
export declare abstract class VaultTemplateTokenFetcher extends AppTokenTemplatePositionFetcher<Erc20> {
    abstract vaultAddress: string;
    abstract underlyingTokenAddress: string;
    reserveAddress?: string;
    getContract(address: string): Erc20;
    getAddresses(): Promise<string[]>;
    getUnderlyingTokenDefinitions(_params: GetUnderlyingTokensParams<Erc20>): Promise<{
        address: string;
        network: import("../../types").Network;
    }[]>;
    getPricePerShare({ multicall, appToken }: GetPricePerShareParams<Erc20>): Promise<number[]>;
    getLiquidity({ multicall, appToken }: GetDataPropsParams<Erc20>): Promise<number>;
    getReserves({ multicall, appToken }: GetDataPropsParams<Erc20>): Promise<number[]>;
    getApy(_params: GetDataPropsParams<Erc20>): Promise<number>;
}
