import { ethers, providers } from "ethers";
import type { CallbackType } from "../../../utils/ethers/contractHelper";
import { Token } from "../../../libs/uniswap";
import { Pair } from "../../../utils/uniswap/uniswapPair";
import BigNumber from "bignumber.js";
import { CompactToken, CompactTokenWithAmount, DerivedMintInfo, DerivedBurnInfo } from "../types";
import { LandId } from "../../../config/constants";
import { TransactionResponse } from "@ethersproject/providers";
export declare const uniswapGetWETH: (landId: LandId, chainId: number, symbol?: string, name?: string) => Token;
/**
 * Swap Ether to Ring token - Powered by uniswap.
 * @param {string} value - amount for Ring， unit of measurement(wei)
 * @returns {Promise<PromiEvent<any>>}
 */
export declare const uniswapBuyRING: (landId: LandId, signer: ethers.Signer, value: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
export declare const uniswapSellRING: (landId: LandId, signer: ethers.Signer, value: string, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
export declare const uniswapGetDerivedPairInfo: (provider: ethers.providers.Provider, compactTokenA: CompactToken, compactTokenB: CompactToken) => Promise<Pair>;
export declare const uniswapEthToTokenOutputPrice: (landId: LandId, provider: ethers.providers.Provider, token: CompactToken, tokenBought: string) => Promise<string[]>;
export declare const uniswapTokenToEthInputPrice: (landId: LandId, provider: ethers.providers.Provider, token: CompactToken, tokenBought: string) => Promise<string[]>;
export declare const uniswapAddETHLiquidity: (landId: LandId, signer: ethers.Signer, tokenA: CompactTokenWithAmount, tokenB: CompactTokenWithAmount, to: string, slippage?: number, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
export declare const uniswapAddLiquidity: (landId: LandId, signer: ethers.Signer, tokenA: CompactTokenWithAmount, tokenB: CompactTokenWithAmount, to: string, slippage?: number, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
export declare const uniswapRemoveLiquidity: (landId: LandId, signer: ethers.Signer, tokenA: CompactToken, tokenB: CompactToken, liquidityValue: string, to: string, slippage?: number, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
export declare const uniswapRemoveETHLiquidity: (landId: LandId, signer: ethers.Signer, tokenA: CompactToken, tokenB: CompactToken, liquidityValue: string, to: string, slippage?: number, callback?: CallbackType | undefined) => Promise<TransactionResponse>;
export declare const uniswapGetDerivedMintInfo: (provider: ethers.providers.Provider, tokenA: CompactTokenWithAmount, tokenB: CompactTokenWithAmount) => Promise<DerivedMintInfo>;
export declare const uniswapGetDerivedBurnInfo: (provider: ethers.providers.Provider, tokenA: CompactToken, tokenB: CompactToken, liquidityValue: ethers.BigNumber, to: string) => Promise<DerivedBurnInfo>;
