import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { UniswapV3LiquidityContractPositionBuilder } from '../../../apps/uniswap-v3/common/uniswap-v3.liquidity.contract-position-builder';
import { ContractType } from '../../../position/contract.interface';
import { DefaultDataProps } from '../../../position/display.interface';
import { AppTokenTemplatePositionFetcher } from '../../../position/template/app-token.template.position-fetcher';
import { GetDataPropsParams, GetPricePerShareParams, GetUnderlyingTokensParams } from '../../../position/template/app-token.template.types';
import { PickleContractFactory, PickleJarUniv3 } from '../contracts';
import { PickleApiJarRegistry } from './pickle.api.jar-registry';
export declare abstract class PickleJarUniv3TokenFetcher extends AppTokenTemplatePositionFetcher<PickleJarUniv3> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: PickleContractFactory;
    protected readonly jarRegistry: PickleApiJarRegistry;
    private readonly uniswapV3LiquidityContractPositionBuilder;
    constructor(appToolkit: IAppToolkit, contractFactory: PickleContractFactory, jarRegistry: PickleApiJarRegistry, uniswapV3LiquidityContractPositionBuilder: UniswapV3LiquidityContractPositionBuilder);
    getContract(address: string): PickleJarUniv3;
    getPositions(): Promise<{
        displayProps: import("../../../position/display.interface").DisplayProps;
        dataProps: import("../../../position/template/app-token.template.types").DefaultAppTokenDataProps;
        price: number;
        pricePerShare: number[];
        symbol: string;
        decimals: number;
        supply: number;
        address: string;
        network: import("../../../types").Network;
        type: ContractType.APP_TOKEN;
        tokens: import("../../../position/display.interface").WithMetaType<import("../../../position/position.interface").Token>[];
        appId: string;
        groupId: string;
        key: string;
        groupLabel?: string | undefined;
    }[]>;
    getAddresses(): Promise<string[]>;
    getUnderlyingTokenDefinitions({ contract }: GetUnderlyingTokensParams<PickleJarUniv3>): Promise<{
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getPricePerShare({ contract }: GetPricePerShareParams<PickleJarUniv3, DefaultDataProps>): Promise<number[]>;
    getLiquidity(): Promise<number>;
    getReserves({ contract }: GetDataPropsParams<PickleJarUniv3>): Promise<number[]>;
    getApy({ appToken }: GetDataPropsParams<PickleJarUniv3>): Promise<number>;
}
