import 'moment-duration-format';
import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { Erc20 } from '../../../contract/contracts';
import { AppTokenTemplatePositionFetcher } from '../../../position/template/app-token.template.position-fetcher';
import { DefaultAppTokenDataProps, DefaultAppTokenDefinition, GetAddressesParams, GetPricePerShareParams, GetUnderlyingTokensParams, UnderlyingTokenDefinition } from '../../../position/template/app-token.template.types';
import { MyceliumContractFactory } from '../contracts';
export declare type MyceliumMlpTokenDefinition = {
    address: string;
    vaultAddress: string;
    underlyingTokenAddresses: string[];
};
export declare class ArbitrumMyceliumMlpTokenFetcher extends AppTokenTemplatePositionFetcher<Erc20, DefaultAppTokenDataProps, MyceliumMlpTokenDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: MyceliumContractFactory;
    groupLabel: string;
    mlpManagerAddress: string;
    constructor(appToolkit: IAppToolkit, contractFactory: MyceliumContractFactory);
    getContract(address: string): Erc20;
    getDefinitions(): Promise<MyceliumMlpTokenDefinition[]>;
    getAddresses({ definitions }: GetAddressesParams<DefaultAppTokenDefinition>): Promise<string[]>;
    getUnderlyingTokenDefinitions({ definition, }: GetUnderlyingTokensParams<Erc20, MyceliumMlpTokenDefinition>): Promise<UnderlyingTokenDefinition[]>;
    getPricePerShare({ appToken, definition, multicall, }: GetPricePerShareParams<Erc20, DefaultAppTokenDataProps, MyceliumMlpTokenDefinition>): Promise<number[]>;
}
