import { BigNumberish } from 'ethers';
import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { UniswapV2PoolOnChainTemplateTokenFetcher } from '../../../apps/uniswap-v2/common/uniswap-v2.pool.on-chain.template.token-fetcher';
import { GetTokenPropsParams, DefaultAppTokenDefinition } from '../../../position/template/app-token.template.types';
import { HakuswapContractFactory, HakuswapFactory, HakuswapPool } from '../contracts';
export declare class AvalancheHakuswapPoolTokenFetcher extends UniswapV2PoolOnChainTemplateTokenFetcher<HakuswapPool, HakuswapFactory> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: HakuswapContractFactory;
    factoryAddress: string;
    groupLabel: string;
    constructor(appToolkit: IAppToolkit, contractFactory: HakuswapContractFactory);
    getPoolTokenContract(address: string): HakuswapPool;
    getPoolFactoryContract(address: string): HakuswapFactory;
    getPoolsLength(contract: HakuswapFactory): Promise<BigNumberish>;
    getPoolAddress(contract: HakuswapFactory, index: number): Promise<string>;
    getPoolToken0(contract: HakuswapPool): Promise<string>;
    getPoolToken1(contract: HakuswapPool): Promise<string>;
    getPoolReserves(contract: HakuswapPool): Promise<BigNumberish[]>;
    getDecimals({ address, contract, }: GetTokenPropsParams<HakuswapPool, DefaultAppTokenDefinition, DefaultAppTokenDefinition>): Promise<number>;
}
