import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { AppTokenTemplatePositionFetcher } from '../../../position/template/app-token.template.position-fetcher';
import { GetAddressesParams, GetUnderlyingTokensParams, DefaultAppTokenDataProps, GetPricePerShareParams, GetDataPropsParams, GetDisplayPropsParams, GetTokenPropsParams, GetPriceParams } from '../../../position/template/app-token.template.types';
import { DefiedgeContractFactory, Strategy } from '../contracts';
import { DefiedgeStrategyDefinitionsResolver } from './defiedge.strategy.definitions-resolver';
export declare type DefiedgeStrategyDefinition = {
    address: string;
    title: string;
    subTitle: string | null;
    token0Address: string;
    token1Address: string;
};
export declare type DefiedgeStrategyTokenDataProps = DefaultAppTokenDataProps & {
    sinceInception: number;
    sharePrice: number;
    aum: number;
    unclaimedFees: number;
};
export declare abstract class DefiedgeStrategyTokenFetcher extends AppTokenTemplatePositionFetcher<Strategy, DefiedgeStrategyTokenDataProps, DefiedgeStrategyDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: DefiedgeContractFactory;
    protected readonly definitionResolver: DefiedgeStrategyDefinitionsResolver;
    groupLabel: string;
    constructor(appToolkit: IAppToolkit, contractFactory: DefiedgeContractFactory, definitionResolver: DefiedgeStrategyDefinitionsResolver);
    getContract(address: string): Strategy;
    getDefinitions(): Promise<{
        address: string;
        title: string;
        subTitle: string | null;
        token0Address: string;
        token1Address: string;
    }[]>;
    getAddresses({ definitions }: GetAddressesParams<DefiedgeStrategyDefinition>): Promise<string[]>;
    getSymbol({ contract }: GetTokenPropsParams<Strategy>): Promise<string>;
    getUnderlyingTokenDefinitions({ definition }: GetUnderlyingTokensParams<Strategy, DefiedgeStrategyDefinition>): Promise<{
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getPrice({ contract, appToken, }: GetPriceParams<Strategy, DefiedgeStrategyTokenDataProps, DefiedgeStrategyDefinition>): Promise<number>;
    getPricePerShare({ contract, appToken, }: GetPricePerShareParams<Strategy, DefiedgeStrategyTokenDataProps, DefiedgeStrategyDefinition>): Promise<number[]>;
    getDataProps(params: GetDataPropsParams<Strategy, DefiedgeStrategyTokenDataProps, DefiedgeStrategyDefinition>): Promise<DefiedgeStrategyTokenDataProps>;
    getLabel({ definition, }: GetDisplayPropsParams<Strategy, DefiedgeStrategyTokenDataProps, DefiedgeStrategyDefinition>): Promise<string>;
    getSecondaryLabel({ definition, }: GetDisplayPropsParams<Strategy, DefiedgeStrategyTokenDataProps, DefiedgeStrategyDefinition>): Promise<string>;
    getStatsItems({ appToken, }: GetDisplayPropsParams<Strategy, DefiedgeStrategyTokenDataProps, DefiedgeStrategyDefinition>): Promise<({
        label: string;
        value: import("../../../position/display.interface").DollarDisplayItem;
    } | {
        label: string;
        value: string;
    } | {
        label: string;
        value: import("../../../position/display.interface").PercentageDisplayItem;
    })[]>;
}
