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