import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { AppTokenTemplatePositionFetcher } from '../../../position/template/app-token.template.position-fetcher';
import { DefaultAppTokenDataProps, DefaultAppTokenDefinition, GetAddressesParams, GetDisplayPropsParams, GetPricePerShareParams, GetUnderlyingTokensParams } from '../../../position/template/app-token.template.types';
import { PoolTogetherV3ContractFactory, PoolTogetherV3Pod } from '../contracts';
declare type PoolTogetherV3PodDefinition = DefaultAppTokenDefinition & {
    underlyingTokenAddress: string;
};
export declare abstract class PoolTogetherV3PodTokenFetcher extends AppTokenTemplatePositionFetcher<PoolTogetherV3Pod, DefaultAppTokenDataProps, PoolTogetherV3PodDefinition> {
    protected readonly appToolkit: IAppToolkit;
    private readonly contractFactory;
    abstract registryAddress: string;
    constructor(appToolkit: IAppToolkit, contractFactory: PoolTogetherV3ContractFactory);
    getContract(address: string): PoolTogetherV3Pod;
    getAddresses({ multicall }: GetAddressesParams): Promise<string[]>;
    getLabel({ contract }: GetDisplayPropsParams<PoolTogetherV3Pod>): Promise<string>;
    getPricePerShare({ contract, appToken }: GetPricePerShareParams<PoolTogetherV3Pod>): Promise<number[]>;
    getUnderlyingTokenDefinitions({ contract }: GetUnderlyingTokensParams<PoolTogetherV3Pod>): Promise<{
        address: string;
        network: import("../../../types").Network;
    }[]>;
}
export {};
