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 { UniswapFactory, UniswapPair, UniswapV2ContractFactory } from '../contracts';
export declare abstract class UniswapV2DefaultPoolOnChainTemplateTokenFetcher extends UniswapV2PoolOnChainTemplateTokenFetcher<UniswapPair, UniswapFactory> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: UniswapV2ContractFactory;
    constructor(appToolkit: IAppToolkit, contractFactory: UniswapV2ContractFactory);
    getPoolTokenContract(address: string): UniswapPair;
    getPoolFactoryContract(address: string): UniswapFactory;
    getPoolsLength(contract: UniswapFactory): Promise<BigNumberish>;
    getPoolAddress(contract: UniswapFactory, index: number): Promise<string>;
    getPoolToken0(contract: UniswapPair): Promise<string>;
    getPoolToken1(contract: UniswapPair): Promise<string>;
    getPoolReserves(contract: UniswapPair): Promise<BigNumberish[]>;
}
