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 { GetDataPropsParams, GetDefinitionsParams, GetDisplayPropsParams, GetTokenBalancesParams, GetTokenDefinitionsParams } from '../../../position/template/contract-position.template.types';
import { CurveChildLiquidityGauge, CurveContractFactory } from '../contracts';
import { GaugeType } from './curve.pool-gauge.contract-position-fetcher';
export declare type CurveChildLiquidityGaugeDataProps = {
    liquidity: number;
    apy: number;
    isActive: boolean;
    gaugeType: GaugeType.CHILD;
};
export declare type CurveChildLiquidityGaugeDefinition = {
    address: string;
    gaugeType: GaugeType.CHILD;
};
export declare abstract class CurveChildLiquidityGaugeContractPositionFetcher extends ContractPositionTemplatePositionFetcher<CurveChildLiquidityGauge, CurveChildLiquidityGaugeDataProps, CurveChildLiquidityGaugeDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: CurveContractFactory;
    abstract factoryAddress: string;
    abstract crvTokenAddress: string;
    constructor(appToolkit: IAppToolkit, contractFactory: CurveContractFactory);
    getContract(address: string): CurveChildLiquidityGauge;
    getDefinitions({ multicall }: GetDefinitionsParams): Promise<CurveChildLiquidityGaugeDefinition[]>;
    getTokenDefinitions({ contract }: GetTokenDefinitionsParams<CurveChildLiquidityGauge>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getDataProps({ address, contract, multicall, contractPosition, definition, }: GetDataPropsParams<CurveChildLiquidityGauge, CurveChildLiquidityGaugeDataProps, CurveChildLiquidityGaugeDefinition>): Promise<CurveChildLiquidityGaugeDataProps>;
    getLabel({ contractPosition, }: GetDisplayPropsParams<CurveChildLiquidityGauge, CurveChildLiquidityGaugeDataProps, CurveChildLiquidityGaugeDefinition>): Promise<string>;
    getTokenBalancesPerPosition({ address, contractPosition, contract, }: GetTokenBalancesParams<CurveChildLiquidityGauge, CurveChildLiquidityGaugeDataProps>): Promise<BigNumberish[]>;
}
