/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */

import { ethers } from "ethers";
import {
  DeployContractOptions,
  FactoryOptions,
  HardhatEthersHelpers as HardhatEthersHelpersBase,
} from "@nomicfoundation/hardhat-ethers/types";

import * as Contracts from ".";

declare module "hardhat/types/runtime" {
  interface HardhatEthersHelpers extends HardhatEthersHelpersBase {
    getContractFactory(
      name: "AbstractPlugin",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.AbstractPlugin__factory>;
    getContractFactory(
      name: "BaseAbstractPlugin",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.BaseAbstractPlugin__factory>;
    getContractFactory(
      name: "IAbstractPlugin",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAbstractPlugin__factory>;
    getContractFactory(
      name: "IBasePluginFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IBasePluginFactory__factory>;
    getContractFactory(
      name: "IAlgebraMintCallback",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAlgebraMintCallback__factory>;
    getContractFactory(
      name: "IAlgebraFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAlgebraFactory__factory>;
    getContractFactory(
      name: "IAlgebraPool",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAlgebraPool__factory>;
    getContractFactory(
      name: "IERC20Minimal",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC20Minimal__factory>;
    getContractFactory(
      name: "IAlgebraPlugin",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAlgebraPlugin__factory>;
    getContractFactory(
      name: "IAlgebraPluginFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAlgebraPluginFactory__factory>;
    getContractFactory(
      name: "IAlgebraPoolActions",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAlgebraPoolActions__factory>;
    getContractFactory(
      name: "IAlgebraPoolErrors",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAlgebraPoolErrors__factory>;
    getContractFactory(
      name: "IAlgebraPoolEvents",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAlgebraPoolEvents__factory>;
    getContractFactory(
      name: "IAlgebraPoolImmutables",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAlgebraPoolImmutables__factory>;
    getContractFactory(
      name: "IAlgebraPoolPermissionedActions",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAlgebraPoolPermissionedActions__factory>;
    getContractFactory(
      name: "IAlgebraPoolState",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAlgebraPoolState__factory>;
    getContractFactory(
      name: "IAlgebraVaultFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAlgebraVaultFactory__factory>;
    getContractFactory(
      name: "IWNativeToken",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IWNativeToken__factory>;
    getContractFactory(
      name: "IERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC20__factory>;
    getContractFactory(
      name: "LimitOrderPayments",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.LimitOrderPayments__factory>;
    getContractFactory(
      name: "ILimitOrderManager",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ILimitOrderManager__factory>;
    getContractFactory(
      name: "ILimitOrderPlugin",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ILimitOrderPlugin__factory>;
    getContractFactory(
      name: "ILimitOrderPluginFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ILimitOrderPluginFactory__factory>;
    getContractFactory(
      name: "LimitOrderManager",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.LimitOrderManager__factory>;
    getContractFactory(
      name: "LimitOrderPlugin",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.LimitOrderPlugin__factory>;
    getContractFactory(
      name: "LimitOrderTestPlugin",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.LimitOrderTestPlugin__factory>;
    getContractFactory(
      name: "LimitOrderTestPluginFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.LimitOrderTestPluginFactory__factory>;
    getContractFactory(
      name: "TestERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TestERC20__factory>;

    getContractAt(
      name: "AbstractPlugin",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.AbstractPlugin>;
    getContractAt(
      name: "BaseAbstractPlugin",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.BaseAbstractPlugin>;
    getContractAt(
      name: "IAbstractPlugin",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IAbstractPlugin>;
    getContractAt(
      name: "IBasePluginFactory",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IBasePluginFactory>;
    getContractAt(
      name: "IAlgebraMintCallback",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IAlgebraMintCallback>;
    getContractAt(
      name: "IAlgebraFactory",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IAlgebraFactory>;
    getContractAt(
      name: "IAlgebraPool",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IAlgebraPool>;
    getContractAt(
      name: "IERC20Minimal",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC20Minimal>;
    getContractAt(
      name: "IAlgebraPlugin",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IAlgebraPlugin>;
    getContractAt(
      name: "IAlgebraPluginFactory",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IAlgebraPluginFactory>;
    getContractAt(
      name: "IAlgebraPoolActions",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IAlgebraPoolActions>;
    getContractAt(
      name: "IAlgebraPoolErrors",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IAlgebraPoolErrors>;
    getContractAt(
      name: "IAlgebraPoolEvents",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IAlgebraPoolEvents>;
    getContractAt(
      name: "IAlgebraPoolImmutables",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IAlgebraPoolImmutables>;
    getContractAt(
      name: "IAlgebraPoolPermissionedActions",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IAlgebraPoolPermissionedActions>;
    getContractAt(
      name: "IAlgebraPoolState",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IAlgebraPoolState>;
    getContractAt(
      name: "IAlgebraVaultFactory",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IAlgebraVaultFactory>;
    getContractAt(
      name: "IWNativeToken",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IWNativeToken>;
    getContractAt(
      name: "IERC20",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC20>;
    getContractAt(
      name: "LimitOrderPayments",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.LimitOrderPayments>;
    getContractAt(
      name: "ILimitOrderManager",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.ILimitOrderManager>;
    getContractAt(
      name: "ILimitOrderPlugin",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.ILimitOrderPlugin>;
    getContractAt(
      name: "ILimitOrderPluginFactory",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.ILimitOrderPluginFactory>;
    getContractAt(
      name: "LimitOrderManager",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.LimitOrderManager>;
    getContractAt(
      name: "LimitOrderPlugin",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.LimitOrderPlugin>;
    getContractAt(
      name: "LimitOrderTestPlugin",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.LimitOrderTestPlugin>;
    getContractAt(
      name: "LimitOrderTestPluginFactory",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.LimitOrderTestPluginFactory>;
    getContractAt(
      name: "TestERC20",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.TestERC20>;

    deployContract(
      name: "AbstractPlugin",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.AbstractPlugin>;
    deployContract(
      name: "BaseAbstractPlugin",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.BaseAbstractPlugin>;
    deployContract(
      name: "IAbstractPlugin",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAbstractPlugin>;
    deployContract(
      name: "IBasePluginFactory",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IBasePluginFactory>;
    deployContract(
      name: "IAlgebraMintCallback",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraMintCallback>;
    deployContract(
      name: "IAlgebraFactory",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraFactory>;
    deployContract(
      name: "IAlgebraPool",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPool>;
    deployContract(
      name: "IERC20Minimal",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IERC20Minimal>;
    deployContract(
      name: "IAlgebraPlugin",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPlugin>;
    deployContract(
      name: "IAlgebraPluginFactory",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPluginFactory>;
    deployContract(
      name: "IAlgebraPoolActions",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPoolActions>;
    deployContract(
      name: "IAlgebraPoolErrors",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPoolErrors>;
    deployContract(
      name: "IAlgebraPoolEvents",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPoolEvents>;
    deployContract(
      name: "IAlgebraPoolImmutables",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPoolImmutables>;
    deployContract(
      name: "IAlgebraPoolPermissionedActions",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPoolPermissionedActions>;
    deployContract(
      name: "IAlgebraPoolState",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPoolState>;
    deployContract(
      name: "IAlgebraVaultFactory",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraVaultFactory>;
    deployContract(
      name: "IWNativeToken",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IWNativeToken>;
    deployContract(
      name: "IERC20",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IERC20>;
    deployContract(
      name: "LimitOrderPayments",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderPayments>;
    deployContract(
      name: "ILimitOrderManager",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.ILimitOrderManager>;
    deployContract(
      name: "ILimitOrderPlugin",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.ILimitOrderPlugin>;
    deployContract(
      name: "ILimitOrderPluginFactory",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.ILimitOrderPluginFactory>;
    deployContract(
      name: "LimitOrderManager",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderManager>;
    deployContract(
      name: "LimitOrderPlugin",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderPlugin>;
    deployContract(
      name: "LimitOrderTestPlugin",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderTestPlugin>;
    deployContract(
      name: "LimitOrderTestPluginFactory",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderTestPluginFactory>;
    deployContract(
      name: "TestERC20",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.TestERC20>;

    deployContract(
      name: "AbstractPlugin",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.AbstractPlugin>;
    deployContract(
      name: "BaseAbstractPlugin",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.BaseAbstractPlugin>;
    deployContract(
      name: "IAbstractPlugin",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAbstractPlugin>;
    deployContract(
      name: "IBasePluginFactory",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IBasePluginFactory>;
    deployContract(
      name: "IAlgebraMintCallback",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraMintCallback>;
    deployContract(
      name: "IAlgebraFactory",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraFactory>;
    deployContract(
      name: "IAlgebraPool",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPool>;
    deployContract(
      name: "IERC20Minimal",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IERC20Minimal>;
    deployContract(
      name: "IAlgebraPlugin",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPlugin>;
    deployContract(
      name: "IAlgebraPluginFactory",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPluginFactory>;
    deployContract(
      name: "IAlgebraPoolActions",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPoolActions>;
    deployContract(
      name: "IAlgebraPoolErrors",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPoolErrors>;
    deployContract(
      name: "IAlgebraPoolEvents",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPoolEvents>;
    deployContract(
      name: "IAlgebraPoolImmutables",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPoolImmutables>;
    deployContract(
      name: "IAlgebraPoolPermissionedActions",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPoolPermissionedActions>;
    deployContract(
      name: "IAlgebraPoolState",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPoolState>;
    deployContract(
      name: "IAlgebraVaultFactory",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraVaultFactory>;
    deployContract(
      name: "IWNativeToken",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IWNativeToken>;
    deployContract(
      name: "IERC20",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IERC20>;
    deployContract(
      name: "LimitOrderPayments",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderPayments>;
    deployContract(
      name: "ILimitOrderManager",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.ILimitOrderManager>;
    deployContract(
      name: "ILimitOrderPlugin",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.ILimitOrderPlugin>;
    deployContract(
      name: "ILimitOrderPluginFactory",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.ILimitOrderPluginFactory>;
    deployContract(
      name: "LimitOrderManager",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderManager>;
    deployContract(
      name: "LimitOrderPlugin",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderPlugin>;
    deployContract(
      name: "LimitOrderTestPlugin",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderTestPlugin>;
    deployContract(
      name: "LimitOrderTestPluginFactory",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderTestPluginFactory>;
    deployContract(
      name: "TestERC20",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.TestERC20>;

    // default types
    getContractFactory(
      name: string,
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ethers.ContractFactory>;
    getContractFactory(
      abi: any[],
      bytecode: ethers.BytesLike,
      signer?: ethers.Signer
    ): Promise<ethers.ContractFactory>;
    getContractAt(
      nameOrAbi: string | any[],
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<ethers.Contract>;
    deployContract(
      name: string,
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<ethers.Contract>;
    deployContract(
      name: string,
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<ethers.Contract>;
  }
}
