import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { Erc20 } from '../../../contract/contracts';
import { AppTokenTemplatePositionFetcher } from '../../../position/template/app-token.template.position-fetcher';
import { DefaultAppTokenDefinition, UnderlyingTokenDefinition, GetPricePerShareParams, DefaultAppTokenDataProps } from '../../../position/template/app-token.template.types';
import { VelaContractFactory } from '../contracts';
export declare abstract class VelaVlpTokenFetcher extends AppTokenTemplatePositionFetcher<Erc20> {
    protected readonly appToolkit: IAppToolkit;
    private readonly velaContractFactory;
    groupLabel: string;
    abstract get vlpAddress(): string | Promise<string>;
    abstract get usdcAddress(): string | Promise<string>;
    abstract get velaVaultAddress(): string | Promise<string>;
    constructor(appToolkit: IAppToolkit, velaContractFactory: VelaContractFactory);
    getContract(address: string): Erc20;
    getAddresses(): Promise<string[]>;
    getUnderlyingTokenDefinitions(): Promise<UnderlyingTokenDefinition[]>;
    getApy(): Promise<number>;
    getPricePerShare({ multicall, }: GetPricePerShareParams<Erc20, DefaultAppTokenDataProps, DefaultAppTokenDefinition>): Promise<number[]>;
}
