import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, 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 } from "./common";
export interface ILiquidatorsRegistryInterface extends utils.Interface {
    functions: {
        "_removeRedemptionStrategy(address)": FunctionFragment;
        "_resetRedemptionStrategies(address[],address[],address[])": FunctionFragment;
        "_setDefaultOutputToken(address,address)": FunctionFragment;
        "_setRedemptionStrategies(address[],address[],address[])": FunctionFragment;
        "_setRedemptionStrategy(address,address,address)": FunctionFragment;
        "amountOutAndSlippageOfSwap(address,uint256,address)": FunctionFragment;
        "defaultOutputToken(address)": FunctionFragment;
        "getAllPairsStrategies()": FunctionFragment;
        "getAllRedemptionStrategies()": FunctionFragment;
        "getInputTokensByOutputToken(address)": FunctionFragment;
        "getRedemptionStrategies(address,address)": FunctionFragment;
        "getRedemptionStrategy(address,address)": FunctionFragment;
        "getSlippage(address,address)": FunctionFragment;
        "owner()": FunctionFragment;
        "pairsStrategiesMatch(address[],address[],address[])": FunctionFragment;
        "redemptionStrategiesByName(string)": FunctionFragment;
        "redemptionStrategiesByTokens(address,address)": FunctionFragment;
        "swap(address,uint256,address)": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "_removeRedemptionStrategy" | "_resetRedemptionStrategies" | "_setDefaultOutputToken" | "_setRedemptionStrategies" | "_setRedemptionStrategy" | "amountOutAndSlippageOfSwap" | "defaultOutputToken" | "getAllPairsStrategies" | "getAllRedemptionStrategies" | "getInputTokensByOutputToken" | "getRedemptionStrategies" | "getRedemptionStrategy" | "getSlippage" | "owner" | "pairsStrategiesMatch" | "redemptionStrategiesByName" | "redemptionStrategiesByTokens" | "swap"): FunctionFragment;
    encodeFunctionData(functionFragment: "_removeRedemptionStrategy", values: [string]): string;
    encodeFunctionData(functionFragment: "_resetRedemptionStrategies", values: [string[], string[], string[]]): string;
    encodeFunctionData(functionFragment: "_setDefaultOutputToken", values: [string, string]): string;
    encodeFunctionData(functionFragment: "_setRedemptionStrategies", values: [string[], string[], string[]]): string;
    encodeFunctionData(functionFragment: "_setRedemptionStrategy", values: [string, string, string]): string;
    encodeFunctionData(functionFragment: "amountOutAndSlippageOfSwap", values: [string, BigNumberish, string]): string;
    encodeFunctionData(functionFragment: "defaultOutputToken", values: [string]): string;
    encodeFunctionData(functionFragment: "getAllPairsStrategies", values?: undefined): string;
    encodeFunctionData(functionFragment: "getAllRedemptionStrategies", values?: undefined): string;
    encodeFunctionData(functionFragment: "getInputTokensByOutputToken", values: [string]): string;
    encodeFunctionData(functionFragment: "getRedemptionStrategies", values: [string, string]): string;
    encodeFunctionData(functionFragment: "getRedemptionStrategy", values: [string, string]): string;
    encodeFunctionData(functionFragment: "getSlippage", values: [string, string]): string;
    encodeFunctionData(functionFragment: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "pairsStrategiesMatch", values: [string[], string[], string[]]): string;
    encodeFunctionData(functionFragment: "redemptionStrategiesByName", values: [string]): string;
    encodeFunctionData(functionFragment: "redemptionStrategiesByTokens", values: [string, string]): string;
    encodeFunctionData(functionFragment: "swap", values: [string, BigNumberish, string]): string;
    decodeFunctionResult(functionFragment: "_removeRedemptionStrategy", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_resetRedemptionStrategies", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setDefaultOutputToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setRedemptionStrategies", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setRedemptionStrategy", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "amountOutAndSlippageOfSwap", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "defaultOutputToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAllPairsStrategies", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAllRedemptionStrategies", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getInputTokensByOutputToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRedemptionStrategies", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRedemptionStrategy", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getSlippage", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pairsStrategiesMatch", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "redemptionStrategiesByName", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "redemptionStrategiesByTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result;
    events: {};
}
export interface ILiquidatorsRegistry extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: ILiquidatorsRegistryInterface;
    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: {
        _removeRedemptionStrategy(strategyToRemove: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        _resetRedemptionStrategies(strategies: string[], inputTokens: string[], outputTokens: string[], overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        _setDefaultOutputToken(inputToken: string, outputToken: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        _setRedemptionStrategies(strategies: string[], inputTokens: string[], outputTokens: string[], overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        _setRedemptionStrategy(strategy: string, inputToken: string, outputToken: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        amountOutAndSlippageOfSwap(inputToken: string, inputAmount: BigNumberish, outputToken: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        defaultOutputToken(inputToken: string, overrides?: CallOverrides): Promise<[string]>;
        getAllPairsStrategies(overrides?: CallOverrides): Promise<[
            string[],
            string[],
            string[]
        ] & {
            strategies: string[];
            inputTokens: string[];
            outputTokens: string[];
        }>;
        getAllRedemptionStrategies(overrides?: CallOverrides): Promise<[string[]]>;
        getInputTokensByOutputToken(outputToken: string, overrides?: CallOverrides): Promise<[string[]]>;
        getRedemptionStrategies(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<[
            string[],
            string[]
        ] & {
            strategies: string[];
            strategiesData: string[];
        }>;
        getRedemptionStrategy(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<[string, string] & {
            strategy: string;
            strategyData: string;
        }>;
        getSlippage(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<[BigNumber] & {
            slippage: BigNumber;
        }>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        pairsStrategiesMatch(configStrategies: string[], configInputTokens: string[], configOutputTokens: string[], overrides?: CallOverrides): Promise<[boolean]>;
        redemptionStrategiesByName(name: string, overrides?: CallOverrides): Promise<[string]>;
        redemptionStrategiesByTokens(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<[string]>;
        swap(inputToken: string, inputAmount: BigNumberish, outputToken: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
    };
    _removeRedemptionStrategy(strategyToRemove: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    _resetRedemptionStrategies(strategies: string[], inputTokens: string[], outputTokens: string[], overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    _setDefaultOutputToken(inputToken: string, outputToken: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    _setRedemptionStrategies(strategies: string[], inputTokens: string[], outputTokens: string[], overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    _setRedemptionStrategy(strategy: string, inputToken: string, outputToken: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    amountOutAndSlippageOfSwap(inputToken: string, inputAmount: BigNumberish, outputToken: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    defaultOutputToken(inputToken: string, overrides?: CallOverrides): Promise<string>;
    getAllPairsStrategies(overrides?: CallOverrides): Promise<[
        string[],
        string[],
        string[]
    ] & {
        strategies: string[];
        inputTokens: string[];
        outputTokens: string[];
    }>;
    getAllRedemptionStrategies(overrides?: CallOverrides): Promise<string[]>;
    getInputTokensByOutputToken(outputToken: string, overrides?: CallOverrides): Promise<string[]>;
    getRedemptionStrategies(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<[
        string[],
        string[]
    ] & {
        strategies: string[];
        strategiesData: string[];
    }>;
    getRedemptionStrategy(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<[string, string] & {
        strategy: string;
        strategyData: string;
    }>;
    getSlippage(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<BigNumber>;
    owner(overrides?: CallOverrides): Promise<string>;
    pairsStrategiesMatch(configStrategies: string[], configInputTokens: string[], configOutputTokens: string[], overrides?: CallOverrides): Promise<boolean>;
    redemptionStrategiesByName(name: string, overrides?: CallOverrides): Promise<string>;
    redemptionStrategiesByTokens(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<string>;
    swap(inputToken: string, inputAmount: BigNumberish, outputToken: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    callStatic: {
        _removeRedemptionStrategy(strategyToRemove: string, overrides?: CallOverrides): Promise<void>;
        _resetRedemptionStrategies(strategies: string[], inputTokens: string[], outputTokens: string[], overrides?: CallOverrides): Promise<void>;
        _setDefaultOutputToken(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<void>;
        _setRedemptionStrategies(strategies: string[], inputTokens: string[], outputTokens: string[], overrides?: CallOverrides): Promise<void>;
        _setRedemptionStrategy(strategy: string, inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<void>;
        amountOutAndSlippageOfSwap(inputToken: string, inputAmount: BigNumberish, outputToken: string, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            outputAmount: BigNumber;
            slippage: BigNumber;
        }>;
        defaultOutputToken(inputToken: string, overrides?: CallOverrides): Promise<string>;
        getAllPairsStrategies(overrides?: CallOverrides): Promise<[
            string[],
            string[],
            string[]
        ] & {
            strategies: string[];
            inputTokens: string[];
            outputTokens: string[];
        }>;
        getAllRedemptionStrategies(overrides?: CallOverrides): Promise<string[]>;
        getInputTokensByOutputToken(outputToken: string, overrides?: CallOverrides): Promise<string[]>;
        getRedemptionStrategies(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<[
            string[],
            string[]
        ] & {
            strategies: string[];
            strategiesData: string[];
        }>;
        getRedemptionStrategy(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<[string, string] & {
            strategy: string;
            strategyData: string;
        }>;
        getSlippage(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<string>;
        pairsStrategiesMatch(configStrategies: string[], configInputTokens: string[], configOutputTokens: string[], overrides?: CallOverrides): Promise<boolean>;
        redemptionStrategiesByName(name: string, overrides?: CallOverrides): Promise<string>;
        redemptionStrategiesByTokens(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<string>;
        swap(inputToken: string, inputAmount: BigNumberish, outputToken: string, overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {};
    estimateGas: {
        _removeRedemptionStrategy(strategyToRemove: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        _resetRedemptionStrategies(strategies: string[], inputTokens: string[], outputTokens: string[], overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        _setDefaultOutputToken(inputToken: string, outputToken: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        _setRedemptionStrategies(strategies: string[], inputTokens: string[], outputTokens: string[], overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        _setRedemptionStrategy(strategy: string, inputToken: string, outputToken: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        amountOutAndSlippageOfSwap(inputToken: string, inputAmount: BigNumberish, outputToken: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        defaultOutputToken(inputToken: string, overrides?: CallOverrides): Promise<BigNumber>;
        getAllPairsStrategies(overrides?: CallOverrides): Promise<BigNumber>;
        getAllRedemptionStrategies(overrides?: CallOverrides): Promise<BigNumber>;
        getInputTokensByOutputToken(outputToken: string, overrides?: CallOverrides): Promise<BigNumber>;
        getRedemptionStrategies(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<BigNumber>;
        getRedemptionStrategy(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<BigNumber>;
        getSlippage(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        pairsStrategiesMatch(configStrategies: string[], configInputTokens: string[], configOutputTokens: string[], overrides?: CallOverrides): Promise<BigNumber>;
        redemptionStrategiesByName(name: string, overrides?: CallOverrides): Promise<BigNumber>;
        redemptionStrategiesByTokens(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<BigNumber>;
        swap(inputToken: string, inputAmount: BigNumberish, outputToken: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        _removeRedemptionStrategy(strategyToRemove: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        _resetRedemptionStrategies(strategies: string[], inputTokens: string[], outputTokens: string[], overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        _setDefaultOutputToken(inputToken: string, outputToken: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        _setRedemptionStrategies(strategies: string[], inputTokens: string[], outputTokens: string[], overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        _setRedemptionStrategy(strategy: string, inputToken: string, outputToken: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        amountOutAndSlippageOfSwap(inputToken: string, inputAmount: BigNumberish, outputToken: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        defaultOutputToken(inputToken: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAllPairsStrategies(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAllRedemptionStrategies(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getInputTokensByOutputToken(outputToken: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRedemptionStrategies(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRedemptionStrategy(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getSlippage(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pairsStrategiesMatch(configStrategies: string[], configInputTokens: string[], configOutputTokens: string[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        redemptionStrategiesByName(name: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        redemptionStrategiesByTokens(inputToken: string, outputToken: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        swap(inputToken: string, inputAmount: BigNumberish, outputToken: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
    };
}
