UNPKG

@soma-finance/core-contracts

Version:

SOMA Finance core contracts

545 lines 50.8 kB
import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, PopulatedTransaction, Signer, utils } from "ethers"; import type { FunctionFragment, Result } from "@ethersproject/abi"; import type { Listener, Provider } from "@ethersproject/providers"; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "../../common"; export interface SomaSwapRouterInterface extends utils.Interface { functions: { "WETH()": FunctionFragment; "addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": FunctionFragment; "addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": FunctionFragment; "factory()": FunctionFragment; "getAmountIn(uint256,uint256,uint256)": FunctionFragment; "getAmountOut(uint256,uint256,uint256)": FunctionFragment; "getAmountsIn(uint256,address[])": FunctionFragment; "getAmountsOut(uint256,address[])": FunctionFragment; "name()": FunctionFragment; "quote(uint256,uint256,uint256)": FunctionFragment; "removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": FunctionFragment; "removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": FunctionFragment; "removeLiquidityETHSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)": FunctionFragment; "removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": FunctionFragment; "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": FunctionFragment; "removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": FunctionFragment; "swapETHForExactTokens(uint256,address[],address,uint256)": FunctionFragment; "swapExactETHForTokens(uint256,address[],address,uint256)": FunctionFragment; "swapExactETHForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256)": FunctionFragment; "swapExactTokensForETH(uint256,uint256,address[],address,uint256)": FunctionFragment; "swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; "swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; "swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; "swapTokensForExactETH(uint256,uint256,address[],address,uint256)": FunctionFragment; "swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "WETH" | "addLiquidity" | "addLiquidityETH" | "factory" | "getAmountIn" | "getAmountOut" | "getAmountsIn" | "getAmountsOut" | "name" | "quote" | "removeLiquidity" | "removeLiquidityETH" | "removeLiquidityETHSupportingFeeOnTransferTokens" | "removeLiquidityETHWithPermit" | "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens" | "removeLiquidityWithPermit" | "swapETHForExactTokens" | "swapExactETHForTokens" | "swapExactETHForTokensSupportingFeeOnTransferTokens" | "swapExactTokensForETH" | "swapExactTokensForETHSupportingFeeOnTransferTokens" | "swapExactTokensForTokens" | "swapExactTokensForTokensSupportingFeeOnTransferTokens" | "swapTokensForExactETH" | "swapTokensForExactTokens"): FunctionFragment; encodeFunctionData(functionFragment: "WETH", values?: undefined): string; encodeFunctionData(functionFragment: "addLiquidity", values: [ PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "addLiquidityETH", values: [ PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "factory", values?: undefined): string; encodeFunctionData(functionFragment: "getAmountIn", values: [ PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "getAmountOut", values: [ PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "getAmountsIn", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>[]]): string; encodeFunctionData(functionFragment: "getAmountsOut", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>[]]): string; encodeFunctionData(functionFragment: "name", values?: undefined): string; encodeFunctionData(functionFragment: "quote", values: [ PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "removeLiquidity", values: [ PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "removeLiquidityETH", values: [ PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "removeLiquidityETHSupportingFeeOnTransferTokens", values: [ PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "removeLiquidityETHWithPermit", values: [ PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<boolean>, PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike> ]): string; encodeFunctionData(functionFragment: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", values: [ PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<boolean>, PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike> ]): string; encodeFunctionData(functionFragment: "removeLiquidityWithPermit", values: [ PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<boolean>, PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike> ]): string; encodeFunctionData(functionFragment: "swapETHForExactTokens", values: [ PromiseOrValue<BigNumberish>, PromiseOrValue<string>[], PromiseOrValue<string>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "swapExactETHForTokens", values: [ PromiseOrValue<BigNumberish>, PromiseOrValue<string>[], PromiseOrValue<string>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "swapExactETHForTokensSupportingFeeOnTransferTokens", values: [ PromiseOrValue<BigNumberish>, PromiseOrValue<string>[], PromiseOrValue<string>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "swapExactTokensForETH", values: [ PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>[], PromiseOrValue<string>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "swapExactTokensForETHSupportingFeeOnTransferTokens", values: [ PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>[], PromiseOrValue<string>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "swapExactTokensForTokens", values: [ PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>[], PromiseOrValue<string>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "swapExactTokensForTokensSupportingFeeOnTransferTokens", values: [ PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>[], PromiseOrValue<string>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "swapTokensForExactETH", values: [ PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>[], PromiseOrValue<string>, PromiseOrValue<BigNumberish> ]): string; encodeFunctionData(functionFragment: "swapTokensForExactTokens", values: [ PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>[], PromiseOrValue<string>, PromiseOrValue<BigNumberish> ]): string; decodeFunctionResult(functionFragment: "WETH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "addLiquidity", data: BytesLike): Result; decodeFunctionResult(functionFragment: "addLiquidityETH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAmountIn", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAmountOut", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAmountsIn", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAmountsOut", data: BytesLike): Result; decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult(functionFragment: "quote", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeLiquidity", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeLiquidityETH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeLiquidityETHSupportingFeeOnTransferTokens", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeLiquidityETHWithPermit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeLiquidityWithPermit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "swapETHForExactTokens", data: BytesLike): Result; decodeFunctionResult(functionFragment: "swapExactETHForTokens", data: BytesLike): Result; decodeFunctionResult(functionFragment: "swapExactETHForTokensSupportingFeeOnTransferTokens", data: BytesLike): Result; decodeFunctionResult(functionFragment: "swapExactTokensForETH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "swapExactTokensForETHSupportingFeeOnTransferTokens", data: BytesLike): Result; decodeFunctionResult(functionFragment: "swapExactTokensForTokens", data: BytesLike): Result; decodeFunctionResult(functionFragment: "swapExactTokensForTokensSupportingFeeOnTransferTokens", data: BytesLike): Result; decodeFunctionResult(functionFragment: "swapTokensForExactETH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "swapTokensForExactTokens", data: BytesLike): Result; events: {}; } export interface SomaSwapRouter extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise<this>; interface: SomaSwapRouterInterface; queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>; listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>; listeners(eventName?: string): Array<Listener>; removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this; removeAllListeners(eventName?: string): this; off: OnEvent<this>; on: OnEvent<this>; once: OnEvent<this>; removeListener: OnEvent<this>; functions: { WETH(overrides?: CallOverrides): Promise<[string]>; addLiquidity(tokenA: PromiseOrValue<string>, tokenB: PromiseOrValue<string>, amountADesired: PromiseOrValue<BigNumberish>, amountBDesired: PromiseOrValue<BigNumberish>, amountAMin: PromiseOrValue<BigNumberish>, amountBMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; addLiquidityETH(token: PromiseOrValue<string>, amountTokenDesired: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; factory(overrides?: CallOverrides): Promise<[string]>; getAmountIn(amountOut: PromiseOrValue<BigNumberish>, reserveIn: PromiseOrValue<BigNumberish>, reserveOut: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & { amountIn: BigNumber; }>; getAmountOut(amountIn: PromiseOrValue<BigNumberish>, reserveIn: PromiseOrValue<BigNumberish>, reserveOut: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & { amountOut: BigNumber; }>; getAmountsIn(amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[BigNumber[]] & { amounts: BigNumber[]; }>; getAmountsOut(amountIn: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[BigNumber[]] & { amounts: BigNumber[]; }>; name(overrides?: CallOverrides): Promise<[string]>; quote(amountA: PromiseOrValue<BigNumberish>, reserveA: PromiseOrValue<BigNumberish>, reserveB: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & { amountB: BigNumber; }>; removeLiquidity(tokenA: PromiseOrValue<string>, tokenB: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountAMin: PromiseOrValue<BigNumberish>, amountBMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; removeLiquidityETH(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; removeLiquidityETHSupportingFeeOnTransferTokens(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; removeLiquidityETHWithPermit(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, approveMax: PromiseOrValue<boolean>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, approveMax: PromiseOrValue<boolean>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; removeLiquidityWithPermit(tokenA: PromiseOrValue<string>, tokenB: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountAMin: PromiseOrValue<BigNumberish>, amountBMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, approveMax: PromiseOrValue<boolean>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapETHForExactTokens(amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapExactETHForTokens(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapExactETHForTokensSupportingFeeOnTransferTokens(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapExactTokensForETH(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapExactTokensForETHSupportingFeeOnTransferTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapExactTokensForTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapExactTokensForTokensSupportingFeeOnTransferTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapTokensForExactETH(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapTokensForExactTokens(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; }; WETH(overrides?: CallOverrides): Promise<string>; addLiquidity(tokenA: PromiseOrValue<string>, tokenB: PromiseOrValue<string>, amountADesired: PromiseOrValue<BigNumberish>, amountBDesired: PromiseOrValue<BigNumberish>, amountAMin: PromiseOrValue<BigNumberish>, amountBMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; addLiquidityETH(token: PromiseOrValue<string>, amountTokenDesired: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; factory(overrides?: CallOverrides): Promise<string>; getAmountIn(amountOut: PromiseOrValue<BigNumberish>, reserveIn: PromiseOrValue<BigNumberish>, reserveOut: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>; getAmountOut(amountIn: PromiseOrValue<BigNumberish>, reserveIn: PromiseOrValue<BigNumberish>, reserveOut: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>; getAmountsIn(amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber[]>; getAmountsOut(amountIn: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber[]>; name(overrides?: CallOverrides): Promise<string>; quote(amountA: PromiseOrValue<BigNumberish>, reserveA: PromiseOrValue<BigNumberish>, reserveB: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>; removeLiquidity(tokenA: PromiseOrValue<string>, tokenB: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountAMin: PromiseOrValue<BigNumberish>, amountBMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; removeLiquidityETH(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; removeLiquidityETHSupportingFeeOnTransferTokens(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; removeLiquidityETHWithPermit(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, approveMax: PromiseOrValue<boolean>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, approveMax: PromiseOrValue<boolean>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; removeLiquidityWithPermit(tokenA: PromiseOrValue<string>, tokenB: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountAMin: PromiseOrValue<BigNumberish>, amountBMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, approveMax: PromiseOrValue<boolean>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapETHForExactTokens(amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapExactETHForTokens(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapExactETHForTokensSupportingFeeOnTransferTokens(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapExactTokensForETH(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapExactTokensForETHSupportingFeeOnTransferTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapExactTokensForTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapExactTokensForTokensSupportingFeeOnTransferTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapTokensForExactETH(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; swapTokensForExactTokens(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<ContractTransaction>; callStatic: { WETH(overrides?: CallOverrides): Promise<string>; addLiquidity(tokenA: PromiseOrValue<string>, tokenB: PromiseOrValue<string>, amountADesired: PromiseOrValue<BigNumberish>, amountBDesired: PromiseOrValue<BigNumberish>, amountAMin: PromiseOrValue<BigNumberish>, amountBMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, BigNumber ] & { amountA: BigNumber; amountB: BigNumber; liquidity: BigNumber; }>; addLiquidityETH(token: PromiseOrValue<string>, amountTokenDesired: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, BigNumber ] & { amountToken: BigNumber; amountETH: BigNumber; liquidity: BigNumber; }>; factory(overrides?: CallOverrides): Promise<string>; getAmountIn(amountOut: PromiseOrValue<BigNumberish>, reserveIn: PromiseOrValue<BigNumberish>, reserveOut: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>; getAmountOut(amountIn: PromiseOrValue<BigNumberish>, reserveIn: PromiseOrValue<BigNumberish>, reserveOut: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>; getAmountsIn(amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber[]>; getAmountsOut(amountIn: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber[]>; name(overrides?: CallOverrides): Promise<string>; quote(amountA: PromiseOrValue<BigNumberish>, reserveA: PromiseOrValue<BigNumberish>, reserveB: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>; removeLiquidity(tokenA: PromiseOrValue<string>, tokenB: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountAMin: PromiseOrValue<BigNumberish>, amountBMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber ] & { amountA: BigNumber; amountB: BigNumber; }>; removeLiquidityETH(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber ] & { amountToken: BigNumber; amountETH: BigNumber; }>; removeLiquidityETHSupportingFeeOnTransferTokens(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>; removeLiquidityETHWithPermit(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, approveMax: PromiseOrValue<boolean>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber ] & { amountToken: BigNumber; amountETH: BigNumber; }>; removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, approveMax: PromiseOrValue<boolean>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>; removeLiquidityWithPermit(tokenA: PromiseOrValue<string>, tokenB: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountAMin: PromiseOrValue<BigNumberish>, amountBMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, approveMax: PromiseOrValue<boolean>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber ] & { amountA: BigNumber; amountB: BigNumber; }>; swapETHForExactTokens(amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>; swapExactETHForTokens(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>; swapExactETHForTokensSupportingFeeOnTransferTokens(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>; swapExactTokensForETH(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>; swapExactTokensForETHSupportingFeeOnTransferTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>; swapExactTokensForTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>; swapExactTokensForTokensSupportingFeeOnTransferTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>; swapTokensForExactETH(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>; swapTokensForExactTokens(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>; }; filters: {}; estimateGas: { WETH(overrides?: CallOverrides): Promise<BigNumber>; addLiquidity(tokenA: PromiseOrValue<string>, tokenB: PromiseOrValue<string>, amountADesired: PromiseOrValue<BigNumberish>, amountBDesired: PromiseOrValue<BigNumberish>, amountAMin: PromiseOrValue<BigNumberish>, amountBMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; addLiquidityETH(token: PromiseOrValue<string>, amountTokenDesired: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; factory(overrides?: CallOverrides): Promise<BigNumber>; getAmountIn(amountOut: PromiseOrValue<BigNumberish>, reserveIn: PromiseOrValue<BigNumberish>, reserveOut: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>; getAmountOut(amountIn: PromiseOrValue<BigNumberish>, reserveIn: PromiseOrValue<BigNumberish>, reserveOut: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>; getAmountsIn(amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber>; getAmountsOut(amountIn: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber>; name(overrides?: CallOverrides): Promise<BigNumber>; quote(amountA: PromiseOrValue<BigNumberish>, reserveA: PromiseOrValue<BigNumberish>, reserveB: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>; removeLiquidity(tokenA: PromiseOrValue<string>, tokenB: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountAMin: PromiseOrValue<BigNumberish>, amountBMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; removeLiquidityETH(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; removeLiquidityETHSupportingFeeOnTransferTokens(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; removeLiquidityETHWithPermit(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, approveMax: PromiseOrValue<boolean>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, approveMax: PromiseOrValue<boolean>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; removeLiquidityWithPermit(tokenA: PromiseOrValue<string>, tokenB: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountAMin: PromiseOrValue<BigNumberish>, amountBMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, approveMax: PromiseOrValue<boolean>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; swapETHForExactTokens(amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; swapExactETHForTokens(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; swapExactETHForTokensSupportingFeeOnTransferTokens(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; swapExactTokensForETH(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; swapExactTokensForETHSupportingFeeOnTransferTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; swapExactTokensForTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; swapExactTokensForTokensSupportingFeeOnTransferTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; swapTokensForExactETH(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; swapTokensForExactTokens(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<BigNumber>; }; populateTransaction: { WETH(overrides?: CallOverrides): Promise<PopulatedTransaction>; addLiquidity(tokenA: PromiseOrValue<string>, tokenB: PromiseOrValue<string>, amountADesired: PromiseOrValue<BigNumberish>, amountBDesired: PromiseOrValue<BigNumberish>, amountAMin: PromiseOrValue<BigNumberish>, amountBMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<PopulatedTransaction>; addLiquidityETH(token: PromiseOrValue<string>, amountTokenDesired: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<PopulatedTransaction>; factory(overrides?: CallOverrides): Promise<PopulatedTransaction>; getAmountIn(amountOut: PromiseOrValue<BigNumberish>, reserveIn: PromiseOrValue<BigNumberish>, reserveOut: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>; getAmountOut(amountIn: PromiseOrValue<BigNumberish>, reserveIn: PromiseOrValue<BigNumberish>, reserveOut: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>; getAmountsIn(amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<PopulatedTransaction>; getAmountsOut(amountIn: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<PopulatedTransaction>; name(overrides?: CallOverrides): Promise<PopulatedTransaction>; quote(amountA: PromiseOrValue<BigNumberish>, reserveA: PromiseOrValue<BigNumberish>, reserveB: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>; removeLiquidity(tokenA: PromiseOrValue<string>, tokenB: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountAMin: PromiseOrValue<BigNumberish>, amountBMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<PopulatedTransaction>; removeLiquidityETH(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<PopulatedTransaction>; removeLiquidityETHSupportingFeeOnTransferTokens(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<PopulatedTransaction>; removeLiquidityETHWithPermit(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, approveMax: PromiseOrValue<boolean>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<PopulatedTransaction>; removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(token: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountTokenMin: PromiseOrValue<BigNumberish>, amountETHMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, approveMax: PromiseOrValue<boolean>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<PopulatedTransaction>; removeLiquidityWithPermit(tokenA: PromiseOrValue<string>, tokenB: PromiseOrValue<string>, liquidity: PromiseOrValue<BigNumberish>, amountAMin: PromiseOrValue<BigNumberish>, amountBMin: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, approveMax: PromiseOrValue<boolean>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<PopulatedTransaction>; swapETHForExactTokens(amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<PopulatedTransaction>; swapExactETHForTokens(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<PopulatedTransaction>; swapExactETHForTokensSupportingFeeOnTransferTokens(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & { from?: PromiseOrValue<string>; }): Promise<PopulatedTransaction>; swapExactTokensForETH(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<PopulatedTransaction>; swapExactTokensForETHSupportingFeeOnTransferTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<PopulatedTransaction>; swapExactTokensForTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & { from?: PromiseOrValue<string>; }): Promise<PopulatedTransaction>; swapExactTokensForTokensSupportingFeeOnTransferTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumb