import { BigNumberish } from 'ethers';
import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { DefaultDataProps } from '../../../position/display.interface';
import { MetaType } from '../../../position/position.interface';
import { ContractPositionTemplatePositionFetcher } from '../../../position/template/contract-position.template.position-fetcher';
import { GetTokenDefinitionsParams, GetDisplayPropsParams, GetTokenBalancesParams, GetDataPropsParams } from '../../../position/template/contract-position.template.types';
import { LyraAvalonContractFactory, LyraOptionToken } from '../contracts';
export interface LyraAvalonOptionContractPositionDataProps extends DefaultDataProps {
    optionType: number;
    strikeId: number;
    marketAddress: string;
    baseAddress: string;
    quoteAddress: string;
    tokenAddress: string;
    callPrice: number;
    putPrice: number;
    strikePriceReadable: string;
    positionKey: string;
}
export declare type LyraAvalonOptionTokenDefinition = {
    address: string;
    optionType: number;
    strikeId: number;
    marketAddress: string;
    baseAddress: string;
    quoteAddress: string;
    tokenAddress: string;
    callPrice: number;
    putPrice: number;
    strikePriceReadable: string;
};
export declare class ArbitrumLyraAvalonOptionsContractPositionFetcher extends ContractPositionTemplatePositionFetcher<LyraOptionToken, LyraAvalonOptionContractPositionDataProps, LyraAvalonOptionTokenDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: LyraAvalonContractFactory;
    groupLabel: string;
    constructor(appToolkit: IAppToolkit, contractFactory: LyraAvalonContractFactory);
    getContract(address: string): LyraOptionToken;
    getDefinitions(): Promise<LyraAvalonOptionTokenDefinition[]>;
    getTokenDefinitions({ definition, }: GetTokenDefinitionsParams<LyraOptionToken, LyraAvalonOptionTokenDefinition>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getDataProps({ definition, }: GetDataPropsParams<LyraOptionToken, LyraAvalonOptionContractPositionDataProps, LyraAvalonOptionTokenDefinition>): Promise<{
        positionKey: string;
        tokenAddress: string;
        strikeId: number;
        optionType: number;
        marketAddress: string;
        baseAddress: string;
        quoteAddress: string;
        callPrice: number;
        putPrice: number;
        strikePriceReadable: string;
    }>;
    getLabel({ definition, multicall, }: GetDisplayPropsParams<LyraOptionToken, LyraAvalonOptionContractPositionDataProps, LyraAvalonOptionTokenDefinition>): Promise<string>;
    getTokenBalancesPerPosition({ address, contractPosition, contract, }: GetTokenBalancesParams<LyraOptionToken, LyraAvalonOptionContractPositionDataProps>): Promise<BigNumberish[]>;
}
