import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { AppTokenTemplatePositionFetcher } from '../../../position/template/app-token.template.position-fetcher';
import { GetDataPropsParams, GetUnderlyingTokensParams, GetAddressesParams, DefaultAppTokenDataProps, GetDisplayPropsParams } from '../../../position/template/app-token.template.types';
import { EaseContractFactory, EaseRcaShield } from '../contracts';
import { EaseRcaDefinitionsResolver } from './ease.rca-definition-resolver';
export declare type EaseRcaTokenDefinition = {
    address: string;
    underlyingTokenAddress: string;
};
export declare abstract class EaseRcaTokenFetcher extends AppTokenTemplatePositionFetcher<EaseRcaShield, DefaultAppTokenDataProps, EaseRcaTokenDefinition> {
    protected readonly appToolkit: IAppToolkit;
    private readonly vaultDefinitionsResolver;
    protected readonly contractFactory: EaseContractFactory;
    constructor(appToolkit: IAppToolkit, vaultDefinitionsResolver: EaseRcaDefinitionsResolver, contractFactory: EaseContractFactory);
    getContract(address: string): EaseRcaShield;
    getDefinitions(): Promise<EaseRcaTokenDefinition[]>;
    getAddresses({ definitions }: GetAddressesParams<EaseRcaTokenDefinition>): Promise<string[]>;
    getUnderlyingTokenDefinitions({ definition, }: GetUnderlyingTokensParams<EaseRcaShield, EaseRcaTokenDefinition>): Promise<{
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getPricePerShare(): Promise<number[]>;
    getApy({ appToken }: GetDataPropsParams<EaseRcaShield>): Promise<number>;
    getLabel({ appToken }: GetDisplayPropsParams<EaseRcaShield>): Promise<string>;
}
