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