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