import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "../../common";
import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, PopulatedTransaction, Signer, utils } from "ethers";
export interface SwapRouterInterface extends utils.Interface {
    functions: {
        "WBNB()": FunctionFragment;
        "acceptOwnership()": FunctionFragment;
        "comptrollerAddress()": FunctionFragment;
        "factory()": FunctionFragment;
        "getAmountIn(uint256,uint256,uint256)": FunctionFragment;
        "getAmountOut(uint256,uint256,uint256)": FunctionFragment;
        "getAmountsIn(uint256,address[])": FunctionFragment;
        "getAmountsOut(uint256,address[])": FunctionFragment;
        "owner()": FunctionFragment;
        "pendingOwner()": FunctionFragment;
        "quote(uint256,uint256,uint256)": FunctionFragment;
        "renounceOwnership()": FunctionFragment;
        "setVBNBAddress(address)": FunctionFragment;
        "swapBNBForExactTokens(uint256,address[],address,uint256)": FunctionFragment;
        "swapBNBForExactTokensAndRepay(address,uint256,address[],uint256)": FunctionFragment;
        "swapBNBForExactTokensAndSupply(address,uint256,address[],uint256)": FunctionFragment;
        "swapBNBForFullTokenDebtAndRepay(address,address[],uint256)": FunctionFragment;
        "swapExactBNBForTokens(uint256,address[],address,uint256)": FunctionFragment;
        "swapExactBNBForTokensAndRepay(address,uint256,address[],uint256)": FunctionFragment;
        "swapExactBNBForTokensAndRepayAtSupportingFee(address,uint256,address[],uint256)": FunctionFragment;
        "swapExactBNBForTokensAndSupply(address,uint256,address[],uint256)": FunctionFragment;
        "swapExactBNBForTokensAndSupplyAtSupportingFee(address,uint256,address[],uint256)": FunctionFragment;
        "swapExactBNBForTokensAtSupportingFee(uint256,address[],address,uint256)": FunctionFragment;
        "swapExactTokensForBNB(uint256,uint256,address[],address,uint256)": FunctionFragment;
        "swapExactTokensForBNBAndRepay(uint256,uint256,address[],uint256)": FunctionFragment;
        "swapExactTokensForBNBAndRepayAtSupportingFee(uint256,uint256,address[],uint256)": FunctionFragment;
        "swapExactTokensForBNBAndSupply(uint256,uint256,address[],uint256)": FunctionFragment;
        "swapExactTokensForBNBAndSupplyAtSupportingFee(uint256,uint256,address[],uint256)": FunctionFragment;
        "swapExactTokensForBNBAtSupportingFee(uint256,uint256,address[],address,uint256)": FunctionFragment;
        "swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": FunctionFragment;
        "swapExactTokensForTokensAndRepay(address,uint256,uint256,address[],uint256)": FunctionFragment;
        "swapExactTokensForTokensAndRepayAtSupportingFee(address,uint256,uint256,address[],uint256)": FunctionFragment;
        "swapExactTokensForTokensAndSupply(address,uint256,uint256,address[],uint256)": FunctionFragment;
        "swapExactTokensForTokensAndSupplyAtSupportingFee(address,uint256,uint256,address[],uint256)": FunctionFragment;
        "swapExactTokensForTokensAtSupportingFee(uint256,uint256,address[],address,uint256)": FunctionFragment;
        "swapTokensForExactBNB(uint256,uint256,address[],address,uint256)": FunctionFragment;
        "swapTokensForExactBNBAndRepay(uint256,uint256,address[],uint256)": FunctionFragment;
        "swapTokensForExactBNBAndSupply(uint256,uint256,address[],uint256)": FunctionFragment;
        "swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": FunctionFragment;
        "swapTokensForExactTokensAndRepay(address,uint256,uint256,address[],uint256)": FunctionFragment;
        "swapTokensForExactTokensAndSupply(address,uint256,uint256,address[],uint256)": FunctionFragment;
        "swapTokensForFullBNBDebtAndRepay(uint256,address[],uint256)": FunctionFragment;
        "swapTokensForFullTokenDebtAndRepay(address,uint256,address[],uint256)": FunctionFragment;
        "sweepToken(address,address,uint256)": FunctionFragment;
        "transferOwnership(address)": FunctionFragment;
        "vBNBAddress()": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "WBNB" | "acceptOwnership" | "comptrollerAddress" | "factory" | "getAmountIn" | "getAmountOut" | "getAmountsIn" | "getAmountsOut" | "owner" | "pendingOwner" | "quote" | "renounceOwnership" | "setVBNBAddress" | "swapBNBForExactTokens" | "swapBNBForExactTokensAndRepay" | "swapBNBForExactTokensAndSupply" | "swapBNBForFullTokenDebtAndRepay" | "swapExactBNBForTokens" | "swapExactBNBForTokensAndRepay" | "swapExactBNBForTokensAndRepayAtSupportingFee" | "swapExactBNBForTokensAndSupply" | "swapExactBNBForTokensAndSupplyAtSupportingFee" | "swapExactBNBForTokensAtSupportingFee" | "swapExactTokensForBNB" | "swapExactTokensForBNBAndRepay" | "swapExactTokensForBNBAndRepayAtSupportingFee" | "swapExactTokensForBNBAndSupply" | "swapExactTokensForBNBAndSupplyAtSupportingFee" | "swapExactTokensForBNBAtSupportingFee" | "swapExactTokensForTokens" | "swapExactTokensForTokensAndRepay" | "swapExactTokensForTokensAndRepayAtSupportingFee" | "swapExactTokensForTokensAndSupply" | "swapExactTokensForTokensAndSupplyAtSupportingFee" | "swapExactTokensForTokensAtSupportingFee" | "swapTokensForExactBNB" | "swapTokensForExactBNBAndRepay" | "swapTokensForExactBNBAndSupply" | "swapTokensForExactTokens" | "swapTokensForExactTokensAndRepay" | "swapTokensForExactTokensAndSupply" | "swapTokensForFullBNBDebtAndRepay" | "swapTokensForFullTokenDebtAndRepay" | "sweepToken" | "transferOwnership" | "vBNBAddress"): FunctionFragment;
    encodeFunctionData(functionFragment: "WBNB", values?: undefined): string;
    encodeFunctionData(functionFragment: "acceptOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "comptrollerAddress", values?: undefined): 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: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "pendingOwner", values?: undefined): string;
    encodeFunctionData(functionFragment: "quote", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "setVBNBAddress", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "swapBNBForExactTokens", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapBNBForExactTokensAndRepay", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapBNBForExactTokensAndSupply", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapBNBForFullTokenDebtAndRepay", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactBNBForTokens", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactBNBForTokensAndRepay", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactBNBForTokensAndRepayAtSupportingFee", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactBNBForTokensAndSupply", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactBNBForTokensAndSupplyAtSupportingFee", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactBNBForTokensAtSupportingFee", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactTokensForBNB", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactTokensForBNBAndRepay", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactTokensForBNBAndRepayAtSupportingFee", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactTokensForBNBAndSupply", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactTokensForBNBAndSupplyAtSupportingFee", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactTokensForBNBAtSupportingFee", 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: "swapExactTokensForTokensAndRepay", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactTokensForTokensAndRepayAtSupportingFee", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactTokensForTokensAndSupply", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactTokensForTokensAndSupplyAtSupportingFee", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapExactTokensForTokensAtSupportingFee", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapTokensForExactBNB", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapTokensForExactBNBAndRepay", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapTokensForExactBNBAndSupply", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapTokensForExactTokens", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapTokensForExactTokensAndRepay", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapTokensForExactTokensAndSupply", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapTokensForFullBNBDebtAndRepay", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapTokensForFullTokenDebtAndRepay", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "sweepToken", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "vBNBAddress", values?: undefined): string;
    decodeFunctionResult(functionFragment: "WBNB", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "acceptOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "comptrollerAddress", 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: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingOwner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "quote", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setVBNBAddress", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapBNBForExactTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapBNBForExactTokensAndRepay", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapBNBForExactTokensAndSupply", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapBNBForFullTokenDebtAndRepay", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactBNBForTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactBNBForTokensAndRepay", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactBNBForTokensAndRepayAtSupportingFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactBNBForTokensAndSupply", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactBNBForTokensAndSupplyAtSupportingFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactBNBForTokensAtSupportingFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactTokensForBNB", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactTokensForBNBAndRepay", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactTokensForBNBAndRepayAtSupportingFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactTokensForBNBAndSupply", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactTokensForBNBAndSupplyAtSupportingFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactTokensForBNBAtSupportingFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactTokensForTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactTokensForTokensAndRepay", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactTokensForTokensAndRepayAtSupportingFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactTokensForTokensAndSupply", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactTokensForTokensAndSupplyAtSupportingFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapExactTokensForTokensAtSupportingFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapTokensForExactBNB", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapTokensForExactBNBAndRepay", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapTokensForExactBNBAndSupply", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapTokensForExactTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapTokensForExactTokensAndRepay", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapTokensForExactTokensAndSupply", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapTokensForFullBNBDebtAndRepay", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapTokensForFullTokenDebtAndRepay", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "sweepToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "vBNBAddress", data: BytesLike): Result;
    events: {
        "OwnershipTransferStarted(address,address)": EventFragment;
        "OwnershipTransferred(address,address)": EventFragment;
        "SwapBnbForTokens(address,address[],uint256[])": EventFragment;
        "SwapBnbForTokensAtSupportingFee(address,address[])": EventFragment;
        "SwapTokensForBnb(address,address[],uint256[])": EventFragment;
        "SwapTokensForBnbAtSupportingFee(address,address[])": EventFragment;
        "SwapTokensForTokens(address,address[],uint256[])": EventFragment;
        "SwapTokensForTokensAtSupportingFee(address,address[])": EventFragment;
        "SweepToken(address,address,uint256)": EventFragment;
        "VBNBAddressUpdated(address,address)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "OwnershipTransferStarted"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SwapBnbForTokens"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SwapBnbForTokensAtSupportingFee"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SwapTokensForBnb"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SwapTokensForBnbAtSupportingFee"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SwapTokensForTokens"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SwapTokensForTokensAtSupportingFee"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SweepToken"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "VBNBAddressUpdated"): EventFragment;
}
export interface OwnershipTransferStartedEventObject {
    previousOwner: string;
    newOwner: string;
}
export type OwnershipTransferStartedEvent = TypedEvent<[
    string,
    string
], OwnershipTransferStartedEventObject>;
export type OwnershipTransferStartedEventFilter = TypedEventFilter<OwnershipTransferStartedEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export type OwnershipTransferredEvent = TypedEvent<[
    string,
    string
], OwnershipTransferredEventObject>;
export type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface SwapBnbForTokensEventObject {
    swapper: string;
    path: string[];
    amounts: BigNumber[];
}
export type SwapBnbForTokensEvent = TypedEvent<[
    string,
    string[],
    BigNumber[]
], SwapBnbForTokensEventObject>;
export type SwapBnbForTokensEventFilter = TypedEventFilter<SwapBnbForTokensEvent>;
export interface SwapBnbForTokensAtSupportingFeeEventObject {
    swapper: string;
    path: string[];
}
export type SwapBnbForTokensAtSupportingFeeEvent = TypedEvent<[
    string,
    string[]
], SwapBnbForTokensAtSupportingFeeEventObject>;
export type SwapBnbForTokensAtSupportingFeeEventFilter = TypedEventFilter<SwapBnbForTokensAtSupportingFeeEvent>;
export interface SwapTokensForBnbEventObject {
    swapper: string;
    path: string[];
    amounts: BigNumber[];
}
export type SwapTokensForBnbEvent = TypedEvent<[
    string,
    string[],
    BigNumber[]
], SwapTokensForBnbEventObject>;
export type SwapTokensForBnbEventFilter = TypedEventFilter<SwapTokensForBnbEvent>;
export interface SwapTokensForBnbAtSupportingFeeEventObject {
    swapper: string;
    path: string[];
}
export type SwapTokensForBnbAtSupportingFeeEvent = TypedEvent<[
    string,
    string[]
], SwapTokensForBnbAtSupportingFeeEventObject>;
export type SwapTokensForBnbAtSupportingFeeEventFilter = TypedEventFilter<SwapTokensForBnbAtSupportingFeeEvent>;
export interface SwapTokensForTokensEventObject {
    swapper: string;
    path: string[];
    amounts: BigNumber[];
}
export type SwapTokensForTokensEvent = TypedEvent<[
    string,
    string[],
    BigNumber[]
], SwapTokensForTokensEventObject>;
export type SwapTokensForTokensEventFilter = TypedEventFilter<SwapTokensForTokensEvent>;
export interface SwapTokensForTokensAtSupportingFeeEventObject {
    swapper: string;
    path: string[];
}
export type SwapTokensForTokensAtSupportingFeeEvent = TypedEvent<[
    string,
    string[]
], SwapTokensForTokensAtSupportingFeeEventObject>;
export type SwapTokensForTokensAtSupportingFeeEventFilter = TypedEventFilter<SwapTokensForTokensAtSupportingFeeEvent>;
export interface SweepTokenEventObject {
    token: string;
    to: string;
    sweepAmount: BigNumber;
}
export type SweepTokenEvent = TypedEvent<[
    string,
    string,
    BigNumber
], SweepTokenEventObject>;
export type SweepTokenEventFilter = TypedEventFilter<SweepTokenEvent>;
export interface VBNBAddressUpdatedEventObject {
    oldAddress: string;
    newAddress: string;
}
export type VBNBAddressUpdatedEvent = TypedEvent<[
    string,
    string
], VBNBAddressUpdatedEventObject>;
export type VBNBAddressUpdatedEventFilter = TypedEventFilter<VBNBAddressUpdatedEvent>;
export interface SwapRouter extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: SwapRouterInterface;
    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: {
        WBNB(overrides?: CallOverrides): Promise<[string]>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        comptrollerAddress(overrides?: CallOverrides): Promise<[string]>;
        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[];
        }>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        pendingOwner(overrides?: CallOverrides): Promise<[string]>;
        quote(amountA: PromiseOrValue<BigNumberish>, reserveA: PromiseOrValue<BigNumberish>, reserveB: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            amountB: BigNumber;
        }>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setVBNBAddress(_vBNBAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapBNBForExactTokens(amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapBNBForExactTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapBNBForExactTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapBNBForFullTokenDebtAndRepay(vTokenAddress: PromiseOrValue<string>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactBNBForTokens(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactBNBForTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactBNBForTokensAndRepayAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactBNBForTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactBNBForTokensAndSupplyAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactBNBForTokensAtSupportingFee(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactTokensForBNB(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactTokensForBNBAndRepay(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactTokensForBNBAndRepayAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactTokensForBNBAndSupply(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactTokensForBNBAndSupplyAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactTokensForBNBAtSupportingFee(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>;
        swapExactTokensForTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactTokensForTokensAndRepayAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactTokensForTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactTokensForTokensAndSupplyAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapExactTokensForTokensAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapTokensForExactBNB(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapTokensForExactBNBAndRepay(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapTokensForExactBNBAndSupply(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: 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>;
        swapTokensForExactTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapTokensForExactTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapTokensForFullBNBDebtAndRepay(amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapTokensForFullTokenDebtAndRepay(vTokenAddress: PromiseOrValue<string>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        sweepToken(token: PromiseOrValue<string>, to: PromiseOrValue<string>, sweepAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        vBNBAddress(overrides?: CallOverrides): Promise<[string]>;
    };
    WBNB(overrides?: CallOverrides): Promise<string>;
    acceptOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    comptrollerAddress(overrides?: CallOverrides): Promise<string>;
    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[]>;
    owner(overrides?: CallOverrides): Promise<string>;
    pendingOwner(overrides?: CallOverrides): Promise<string>;
    quote(amountA: PromiseOrValue<BigNumberish>, reserveA: PromiseOrValue<BigNumberish>, reserveB: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    renounceOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setVBNBAddress(_vBNBAddress: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapBNBForExactTokens(amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapBNBForExactTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapBNBForExactTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapBNBForFullTokenDebtAndRepay(vTokenAddress: PromiseOrValue<string>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactBNBForTokens(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactBNBForTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactBNBForTokensAndRepayAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactBNBForTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactBNBForTokensAndSupplyAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactBNBForTokensAtSupportingFee(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactTokensForBNB(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactTokensForBNBAndRepay(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactTokensForBNBAndRepayAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactTokensForBNBAndSupply(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactTokensForBNBAndSupplyAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactTokensForBNBAtSupportingFee(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>;
    swapExactTokensForTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactTokensForTokensAndRepayAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactTokensForTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactTokensForTokensAndSupplyAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapExactTokensForTokensAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapTokensForExactBNB(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapTokensForExactBNBAndRepay(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapTokensForExactBNBAndSupply(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: 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>;
    swapTokensForExactTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapTokensForExactTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapTokensForFullBNBDebtAndRepay(amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapTokensForFullTokenDebtAndRepay(vTokenAddress: PromiseOrValue<string>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    sweepToken(token: PromiseOrValue<string>, to: PromiseOrValue<string>, sweepAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    vBNBAddress(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        WBNB(overrides?: CallOverrides): Promise<string>;
        acceptOwnership(overrides?: CallOverrides): Promise<void>;
        comptrollerAddress(overrides?: CallOverrides): Promise<string>;
        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[]>;
        owner(overrides?: CallOverrides): Promise<string>;
        pendingOwner(overrides?: CallOverrides): Promise<string>;
        quote(amountA: PromiseOrValue<BigNumberish>, reserveA: PromiseOrValue<BigNumberish>, reserveB: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        setVBNBAddress(_vBNBAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        swapBNBForExactTokens(amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
        swapBNBForExactTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapBNBForExactTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapBNBForFullTokenDebtAndRepay(vTokenAddress: PromiseOrValue<string>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapExactBNBForTokens(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
        swapExactBNBForTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapExactBNBForTokensAndRepayAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapExactBNBForTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapExactBNBForTokensAndSupplyAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapExactBNBForTokensAtSupportingFee(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        swapExactTokensForBNB(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
        swapExactTokensForBNBAndRepay(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapExactTokensForBNBAndRepayAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapExactTokensForBNBAndSupply(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapExactTokensForBNBAndSupplyAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapExactTokensForBNBAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        swapExactTokensForTokens(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
        swapExactTokensForTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapExactTokensForTokensAndRepayAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapExactTokensForTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapExactTokensForTokensAndSupplyAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapExactTokensForTokensAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        swapTokensForExactBNB(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
        swapTokensForExactBNBAndRepay(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapTokensForExactBNBAndSupply(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapTokensForExactTokens(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
        swapTokensForExactTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapTokensForExactTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapTokensForFullBNBDebtAndRepay(amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapTokensForFullTokenDebtAndRepay(vTokenAddress: PromiseOrValue<string>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        sweepToken(token: PromiseOrValue<string>, to: PromiseOrValue<string>, sweepAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        vBNBAddress(overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        "OwnershipTransferStarted(address,address)"(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferStartedEventFilter;
        OwnershipTransferStarted(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferStartedEventFilter;
        "OwnershipTransferred(address,address)"(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        "SwapBnbForTokens(address,address[],uint256[])"(swapper?: PromiseOrValue<string> | null, path?: PromiseOrValue<string>[] | null, amounts?: PromiseOrValue<BigNumberish>[] | null): SwapBnbForTokensEventFilter;
        SwapBnbForTokens(swapper?: PromiseOrValue<string> | null, path?: PromiseOrValue<string>[] | null, amounts?: PromiseOrValue<BigNumberish>[] | null): SwapBnbForTokensEventFilter;
        "SwapBnbForTokensAtSupportingFee(address,address[])"(swapper?: PromiseOrValue<string> | null, path?: PromiseOrValue<string>[] | null): SwapBnbForTokensAtSupportingFeeEventFilter;
        SwapBnbForTokensAtSupportingFee(swapper?: PromiseOrValue<string> | null, path?: PromiseOrValue<string>[] | null): SwapBnbForTokensAtSupportingFeeEventFilter;
        "SwapTokensForBnb(address,address[],uint256[])"(swapper?: PromiseOrValue<string> | null, path?: PromiseOrValue<string>[] | null, amounts?: PromiseOrValue<BigNumberish>[] | null): SwapTokensForBnbEventFilter;
        SwapTokensForBnb(swapper?: PromiseOrValue<string> | null, path?: PromiseOrValue<string>[] | null, amounts?: PromiseOrValue<BigNumberish>[] | null): SwapTokensForBnbEventFilter;
        "SwapTokensForBnbAtSupportingFee(address,address[])"(swapper?: PromiseOrValue<string> | null, path?: PromiseOrValue<string>[] | null): SwapTokensForBnbAtSupportingFeeEventFilter;
        SwapTokensForBnbAtSupportingFee(swapper?: PromiseOrValue<string> | null, path?: PromiseOrValue<string>[] | null): SwapTokensForBnbAtSupportingFeeEventFilter;
        "SwapTokensForTokens(address,address[],uint256[])"(swapper?: PromiseOrValue<string> | null, path?: PromiseOrValue<string>[] | null, amounts?: PromiseOrValue<BigNumberish>[] | null): SwapTokensForTokensEventFilter;
        SwapTokensForTokens(swapper?: PromiseOrValue<string> | null, path?: PromiseOrValue<string>[] | null, amounts?: PromiseOrValue<BigNumberish>[] | null): SwapTokensForTokensEventFilter;
        "SwapTokensForTokensAtSupportingFee(address,address[])"(swapper?: PromiseOrValue<string> | null, path?: PromiseOrValue<string>[] | null): SwapTokensForTokensAtSupportingFeeEventFilter;
        SwapTokensForTokensAtSupportingFee(swapper?: PromiseOrValue<string> | null, path?: PromiseOrValue<string>[] | null): SwapTokensForTokensAtSupportingFeeEventFilter;
        "SweepToken(address,address,uint256)"(token?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, sweepAmount?: null): SweepTokenEventFilter;
        SweepToken(token?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, sweepAmount?: null): SweepTokenEventFilter;
        "VBNBAddressUpdated(address,address)"(oldAddress?: PromiseOrValue<string> | null, newAddress?: PromiseOrValue<string> | null): VBNBAddressUpdatedEventFilter;
        VBNBAddressUpdated(oldAddress?: PromiseOrValue<string> | null, newAddress?: PromiseOrValue<string> | null): VBNBAddressUpdatedEventFilter;
    };
    estimateGas: {
        WBNB(overrides?: CallOverrides): Promise<BigNumber>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        comptrollerAddress(overrides?: CallOverrides): 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>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        pendingOwner(overrides?: CallOverrides): Promise<BigNumber>;
        quote(amountA: PromiseOrValue<BigNumberish>, reserveA: PromiseOrValue<BigNumberish>, reserveB: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setVBNBAddress(_vBNBAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapBNBForExactTokens(amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapBNBForExactTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapBNBForExactTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapBNBForFullTokenDebtAndRepay(vTokenAddress: PromiseOrValue<string>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactBNBForTokens(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactBNBForTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactBNBForTokensAndRepayAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactBNBForTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactBNBForTokensAndSupplyAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactBNBForTokensAtSupportingFee(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactTokensForBNB(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactTokensForBNBAndRepay(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactTokensForBNBAndRepayAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactTokensForBNBAndSupply(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactTokensForBNBAndSupplyAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactTokensForBNBAtSupportingFee(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>;
        swapExactTokensForTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactTokensForTokensAndRepayAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactTokensForTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactTokensForTokensAndSupplyAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapExactTokensForTokensAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapTokensForExactBNB(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapTokensForExactBNBAndRepay(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapTokensForExactBNBAndSupply(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: 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>;
        swapTokensForExactTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapTokensForExactTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapTokensForFullBNBDebtAndRepay(amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapTokensForFullTokenDebtAndRepay(vTokenAddress: PromiseOrValue<string>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        sweepToken(token: PromiseOrValue<string>, to: PromiseOrValue<string>, sweepAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        vBNBAddress(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        WBNB(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        comptrollerAddress(overrides?: CallOverrides): 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>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingOwner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        quote(amountA: PromiseOrValue<BigNumberish>, reserveA: PromiseOrValue<BigNumberish>, reserveB: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setVBNBAddress(_vBNBAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapBNBForExactTokens(amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapBNBForExactTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapBNBForExactTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapBNBForFullTokenDebtAndRepay(vTokenAddress: PromiseOrValue<string>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactBNBForTokens(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactBNBForTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactBNBForTokensAndRepayAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactBNBForTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactBNBForTokensAndSupplyAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactBNBForTokensAtSupportingFee(amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactTokensForBNB(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactTokensForBNBAndRepay(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactTokensForBNBAndRepayAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactTokensForBNBAndSupply(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactTokensForBNBAndSupplyAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactTokensForBNBAtSupportingFee(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>;
        swapExactTokensForTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactTokensForTokensAndRepayAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactTokensForTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactTokensForTokensAndSupplyAtSupportingFee(vTokenAddress: PromiseOrValue<string>, amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapExactTokensForTokensAtSupportingFee(amountIn: PromiseOrValue<BigNumberish>, amountOutMin: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapTokensForExactBNB(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapTokensForExactBNBAndRepay(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapTokensForExactBNBAndSupply(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapTokensForExactTokens(amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], to: PromiseOrValue<string>, deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapTokensForExactTokensAndRepay(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapTokensForExactTokensAndSupply(vTokenAddress: PromiseOrValue<string>, amountOut: PromiseOrValue<BigNumberish>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapTokensForFullBNBDebtAndRepay(amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapTokensForFullTokenDebtAndRepay(vTokenAddress: PromiseOrValue<string>, amountInMax: PromiseOrValue<BigNumberish>, path: PromiseOrValue<string>[], deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        sweepToken(token: PromiseOrValue<string>, to: PromiseOrValue<string>, sweepAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        vBNBAddress(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
