import { BigNumberish } from 'ethers';
import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { MetaType } from '../../../position/position.interface';
import { ContractPositionTemplatePositionFetcher } from '../../../position/template/contract-position.template.position-fetcher';
import { GetTokenBalancesParams, GetTokenDefinitionsParams, GetDisplayPropsParams } from '../../../position/template/contract-position.template.types';
import { DefaultDataProps } from '../../../position/display.interface';
import { Amm, ThalesContractFactory } from '../contracts';
export declare type ThalesAmmDefinition = {
    address: string;
    name: string;
};
export declare type ThalesAMMDataProp = {
    liquidity: number;
};
export declare abstract class ThalesAmmContractPositionFetcher extends ContractPositionTemplatePositionFetcher<Amm> {
    protected readonly appToolkit: IAppToolkit;
    private readonly contractFactory;
    groupLabel: string;
    abstract ammDefinitions: ThalesAmmDefinition[];
    constructor(appToolkit: IAppToolkit, contractFactory: ThalesContractFactory);
    getContract(address: string): Amm;
    getDefinitions(): Promise<ThalesAmmDefinition[]>;
    getTokenDefinitions({ contract }: GetTokenDefinitionsParams<Amm>): Promise<{
        address: string;
        metaType: MetaType;
        network: import("../../../types").Network;
    }[]>;
    getLabel({ definition }: GetDisplayPropsParams<Amm, DefaultDataProps, ThalesAmmDefinition>): Promise<string>;
    getDataProps({ contract, multicall }: {
        contract: any;
        multicall: any;
    }): Promise<ThalesAMMDataProp>;
    getTokenBalancesPerPosition({ address, contract, }: GetTokenBalancesParams<Amm>): Promise<BigNumberish[]>;
}
