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 { GetDefinitionsParams, GetTokenDefinitionsParams, GetDisplayPropsParams, GetDataPropsParams, GetTokenBalancesParams, DefaultContractPositionDefinition } from '../../../position/template/contract-position.template.types';
import { MyceliumContractFactory, MyceliumVault } from '../contracts';
export declare type MyceliumPerpContractPositionDefinition = {
    address: string;
    collateralTokenAddress: string;
    indexTokenAddress: string;
    isLong: boolean;
};
export declare type MyceliumPerpContractPositionDataProps = {
    isLong: boolean;
    positionKey: string;
};
export declare class ArbitrumMycellilumPerpContractPositionFetcher extends ContractPositionTemplatePositionFetcher<MyceliumVault, MyceliumPerpContractPositionDataProps, MyceliumPerpContractPositionDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: MyceliumContractFactory;
    groupLabel: string;
    vaultAddress: string;
    usdcAddress: string;
    constructor(appToolkit: IAppToolkit, contractFactory: MyceliumContractFactory);
    getContract(address: string): MyceliumVault;
    getDefinitions({ multicall }: GetDefinitionsParams): Promise<MyceliumPerpContractPositionDefinition[]>;
    getTokenDefinitions({ definition, }: GetTokenDefinitionsParams<MyceliumVault, MyceliumPerpContractPositionDefinition>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getDataProps({ definition, }: GetDataPropsParams<MyceliumVault, MyceliumPerpContractPositionDataProps, MyceliumPerpContractPositionDefinition>): Promise<{
        isLong: boolean;
        positionKey: string;
    }>;
    getLabel({ contractPosition, }: GetDisplayPropsParams<MyceliumVault, MyceliumPerpContractPositionDataProps, MyceliumPerpContractPositionDefinition>): Promise<string>;
    getImages({ contractPosition, }: GetDisplayPropsParams<MyceliumVault, MyceliumPerpContractPositionDataProps, DefaultContractPositionDefinition>): Promise<string[]>;
    getTokenBalancesPerPosition({ address, contractPosition, contract, }: GetTokenBalancesParams<MyceliumVault, MyceliumPerpContractPositionDataProps>): Promise<number[]>;
}
