import 'moment-duration-format';
import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { DefaultDataProps } from '../../../position/display.interface';
import { AppTokenTemplatePositionFetcher } from '../../../position/template/app-token.template.position-fetcher';
import { DefaultAppTokenDataProps, GetAddressesParams, GetDisplayPropsParams, GetPricePerShareParams, GetUnderlyingTokensParams } from '../../../position/template/app-token.template.types';
import { BarnbridgeSmartAlphaContractFactory, BarnbridgeSmartAlphaToken } from '../contracts';
export declare type BarnbridgeSmartAlphaSeniorPoolTokenDefinition = {
    address: string;
    smartPoolAddress: string;
    underlyingTokenAddress: string;
};
export declare abstract class BarnbridgeSmartAlphaSeniorPoolTokenFetcher extends AppTokenTemplatePositionFetcher<BarnbridgeSmartAlphaToken, DefaultAppTokenDataProps, BarnbridgeSmartAlphaSeniorPoolTokenDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: BarnbridgeSmartAlphaContractFactory;
    abstract poolAlphaAddresses: string[];
    constructor(appToolkit: IAppToolkit, contractFactory: BarnbridgeSmartAlphaContractFactory);
    getDefinitions({ multicall }: {
        multicall: any;
    }): Promise<BarnbridgeSmartAlphaSeniorPoolTokenDefinition[]>;
    getContract(address: string): BarnbridgeSmartAlphaToken;
    getAddresses({ definitions, }: GetAddressesParams<BarnbridgeSmartAlphaSeniorPoolTokenDefinition>): Promise<string[]>;
    getUnderlyingTokenDefinitions({ definition, }: GetUnderlyingTokensParams<BarnbridgeSmartAlphaToken, BarnbridgeSmartAlphaSeniorPoolTokenDefinition>): Promise<{
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getPricePerShare({ multicall, definition, }: GetPricePerShareParams<BarnbridgeSmartAlphaToken, DefaultAppTokenDataProps, BarnbridgeSmartAlphaSeniorPoolTokenDefinition>): Promise<number[]>;
    getLabel({ multicall, definition, appToken, }: GetDisplayPropsParams<BarnbridgeSmartAlphaToken, DefaultDataProps, BarnbridgeSmartAlphaSeniorPoolTokenDefinition>): Promise<string>;
}
