import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { CurveContractFactory, CurveStableRegistry } from '../contracts';
import { CurvePoolDynamicTokenFetcher, ResolveCoinAddressesParams, ResolveFeesParams, ResolvePoolCountParams, ResolveReservesParams, ResolveSwapAddressParams, ResolveTokenAddressParams } from './curve.pool-dynamic.token-fetcher';
import { CurveVolumeDataLoader } from './curve.volume.data-loader';
export declare abstract class CurveStablePoolTokenFetcher extends CurvePoolDynamicTokenFetcher<CurveStableRegistry> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: CurveContractFactory;
    protected readonly curveVolumeDataLoader: CurveVolumeDataLoader;
    constructor(appToolkit: IAppToolkit, contractFactory: CurveContractFactory, curveVolumeDataLoader: CurveVolumeDataLoader);
    resolveRegistry(address: string): CurveStableRegistry;
    resolvePoolCount({ contract }: ResolvePoolCountParams<CurveStableRegistry>): Promise<import("ethers").BigNumber>;
    resolveSwapAddress({ contract, poolIndex }: ResolveSwapAddressParams<CurveStableRegistry>): Promise<string>;
    resolveTokenAddress({ contract, swapAddress }: ResolveTokenAddressParams<CurveStableRegistry>): Promise<string>;
    resolveCoinAddresses({ contract, swapAddress }: ResolveCoinAddressesParams<CurveStableRegistry>): Promise<string[]>;
    resolveReserves({ contract, swapAddress }: ResolveReservesParams<CurveStableRegistry>): Promise<import("ethers").BigNumber[]>;
    resolveFees({ contract, swapAddress }: ResolveFeesParams<CurveStableRegistry>): Promise<[import("ethers").BigNumber, import("ethers").BigNumber]>;
}
