import { BigNumberish } from 'ethers';
import 'moment-duration-format';
import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { ContractPositionBalance } from '../../../position/position-balance.interface';
import { MetaType, Standard } from '../../../position/position.interface';
import { GetTokenDefinitionsParams, GetDisplayPropsParams, GetDataPropsParams } from '../../../position/template/contract-position.template.types';
import { CustomContractPositionTemplatePositionFetcher } from '../../../position/template/custom-contract-position.template.position-fetcher';
import { MeanFinanceContractFactory, MeanFinancePermissionManager } from '../contracts';
declare type MeanFinanceDcaPositionDefinition = {
    address: string;
    hubAddress: string;
    fromTokenAddress: string;
    fromLiquidity: string;
    toTokenAddress: string;
    toLiquidity: string;
};
declare type MeanFinanceDcaPositionDataProps = {
    liquidity: number;
    assetStandard: Standard;
    tokenId?: string;
};
export declare type HubConfiguration = {
    hubAddress: string;
    tokenAddress: string;
    subgraphUrl: string;
    transformerAddress?: string;
};
export declare abstract class MeanFinanceDcaPositionContractPositionFetcher extends CustomContractPositionTemplatePositionFetcher<MeanFinancePermissionManager, MeanFinanceDcaPositionDataProps, MeanFinanceDcaPositionDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: MeanFinanceContractFactory;
    abstract hubs: HubConfiguration[];
    constructor(appToolkit: IAppToolkit, contractFactory: MeanFinanceContractFactory);
    getContract(address: string): MeanFinancePermissionManager;
    getDefinitions(): Promise<{
        fromLiquidity: string;
        toLiquidity: string;
        fromTokenAddress: string;
        toTokenAddress: string;
        address: string;
        hubAddress: string;
    }[]>;
    getTokenDefinitions({ definition, }: GetTokenDefinitionsParams<MeanFinancePermissionManager, MeanFinanceDcaPositionDefinition>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getDataProps({ definition, contractPosition, }: GetDataPropsParams<MeanFinancePermissionManager, MeanFinanceDcaPositionDataProps, MeanFinanceDcaPositionDefinition>): Promise<MeanFinanceDcaPositionDataProps>;
    getLabel({ contractPosition }: GetDisplayPropsParams<MeanFinancePermissionManager>): Promise<string>;
    getTokenBalancesPerPosition(): Promise<BigNumberish[]>;
    getBalances(address: string): Promise<ContractPositionBalance<MeanFinanceDcaPositionDataProps>[]>;
}
export {};
