/* 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: "AlgebraPluginProxy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.AlgebraPluginProxy__factory>;
    getContractFactory(
      name: "BaseAbstractPlugin",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.BaseAbstractPlugin__factory>;
    getContractFactory(
      name: "BaseConnector",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.BaseConnector__factory>;
    getContractFactory(
      name: "IAbstractPlugin",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAbstractPlugin__factory>;
    getContractFactory(
      name: "IAlgebraPluginProxy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAlgebraPluginProxy__factory>;
    getContractFactory(
      name: "IBasePluginFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IBasePluginFactory__factory>;
    getContractFactory(
      name: "UpgradeableAbstractPlugin",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.UpgradeableAbstractPlugin__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: "MockERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MockERC20__factory>;
    getContractFactory(
      name: "MockFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MockFactory__factory>;
    getContractFactory(
      name: "MockPluginFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MockPluginFactory__factory>;
    getContractFactory(
      name: "MockPool",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MockPool__factory>;
    getContractFactory(
      name: "BeaconProxyDeployer",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.BeaconProxyDeployer__factory>;
    getContractFactory(
      name: "TestERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TestERC20__factory>;
    getContractFactory(
      name: "Initializable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Initializable__factory>;
    getContractFactory(
      name: "Ownable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Ownable__factory>;
    getContractFactory(
      name: "IERC1822Proxiable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC1822Proxiable__factory>;
    getContractFactory(
      name: "IERC1967",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC1967__factory>;
    getContractFactory(
      name: "BeaconProxy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.BeaconProxy__factory>;
    getContractFactory(
      name: "IBeacon",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IBeacon__factory>;
    getContractFactory(
      name: "UpgradeableBeacon",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.UpgradeableBeacon__factory>;
    getContractFactory(
      name: "ERC1967Upgrade",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC1967Upgrade__factory>;
    getContractFactory(
      name: "Proxy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Proxy__factory>;
    getContractFactory(
      name: "ERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC20__factory>;
    getContractFactory(
      name: "IERC20Metadata",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC20Metadata__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: "ILimitOrderPluginImplementation",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ILimitOrderPluginImplementation__factory>;
    getContractFactory(
      name: "LimitOrderConnector",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.LimitOrderConnector__factory>;
    getContractFactory(
      name: "LimitOrderManager",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.LimitOrderManager__factory>;
    getContractFactory(
      name: "LimitOrderPluginImplementation",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.LimitOrderPluginImplementation__factory>;
    getContractFactory(
      name: "MockLimitOrderManager",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MockLimitOrderManager__factory>;
    getContractFactory(
      name: "UpgradeableLimitOrderPluginTest",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.UpgradeableLimitOrderPluginTest__factory>;
    getContractFactory(
      name: "UpgradeableLimitOrderTestPluginFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.UpgradeableLimitOrderTestPluginFactory__factory>;

    getContractAt(
      name: "AbstractPlugin",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.AbstractPlugin>;
    getContractAt(
      name: "AlgebraPluginProxy",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.AlgebraPluginProxy>;
    getContractAt(
      name: "BaseAbstractPlugin",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.BaseAbstractPlugin>;
    getContractAt(
      name: "BaseConnector",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.BaseConnector>;
    getContractAt(
      name: "IAbstractPlugin",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IAbstractPlugin>;
    getContractAt(
      name: "IAlgebraPluginProxy",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IAlgebraPluginProxy>;
    getContractAt(
      name: "IBasePluginFactory",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IBasePluginFactory>;
    getContractAt(
      name: "UpgradeableAbstractPlugin",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.UpgradeableAbstractPlugin>;
    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: "MockERC20",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.MockERC20>;
    getContractAt(
      name: "MockFactory",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.MockFactory>;
    getContractAt(
      name: "MockPluginFactory",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.MockPluginFactory>;
    getContractAt(
      name: "MockPool",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.MockPool>;
    getContractAt(
      name: "BeaconProxyDeployer",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.BeaconProxyDeployer>;
    getContractAt(
      name: "TestERC20",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.TestERC20>;
    getContractAt(
      name: "Initializable",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.Initializable>;
    getContractAt(
      name: "Ownable",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.Ownable>;
    getContractAt(
      name: "IERC1822Proxiable",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC1822Proxiable>;
    getContractAt(
      name: "IERC1967",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC1967>;
    getContractAt(
      name: "BeaconProxy",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.BeaconProxy>;
    getContractAt(
      name: "IBeacon",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IBeacon>;
    getContractAt(
      name: "UpgradeableBeacon",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.UpgradeableBeacon>;
    getContractAt(
      name: "ERC1967Upgrade",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC1967Upgrade>;
    getContractAt(
      name: "Proxy",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.Proxy>;
    getContractAt(
      name: "ERC20",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC20>;
    getContractAt(
      name: "IERC20Metadata",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC20Metadata>;
    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: "ILimitOrderPluginImplementation",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.ILimitOrderPluginImplementation>;
    getContractAt(
      name: "LimitOrderConnector",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.LimitOrderConnector>;
    getContractAt(
      name: "LimitOrderManager",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.LimitOrderManager>;
    getContractAt(
      name: "LimitOrderPluginImplementation",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.LimitOrderPluginImplementation>;
    getContractAt(
      name: "MockLimitOrderManager",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.MockLimitOrderManager>;
    getContractAt(
      name: "UpgradeableLimitOrderPluginTest",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.UpgradeableLimitOrderPluginTest>;
    getContractAt(
      name: "UpgradeableLimitOrderTestPluginFactory",
      address: string | ethers.Addressable,
      signer?: ethers.Signer
    ): Promise<Contracts.UpgradeableLimitOrderTestPluginFactory>;

    deployContract(
      name: "AbstractPlugin",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.AbstractPlugin>;
    deployContract(
      name: "AlgebraPluginProxy",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.AlgebraPluginProxy>;
    deployContract(
      name: "BaseAbstractPlugin",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.BaseAbstractPlugin>;
    deployContract(
      name: "BaseConnector",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.BaseConnector>;
    deployContract(
      name: "IAbstractPlugin",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAbstractPlugin>;
    deployContract(
      name: "IAlgebraPluginProxy",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPluginProxy>;
    deployContract(
      name: "IBasePluginFactory",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IBasePluginFactory>;
    deployContract(
      name: "UpgradeableAbstractPlugin",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.UpgradeableAbstractPlugin>;
    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: "MockERC20",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.MockERC20>;
    deployContract(
      name: "MockFactory",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.MockFactory>;
    deployContract(
      name: "MockPluginFactory",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.MockPluginFactory>;
    deployContract(
      name: "MockPool",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.MockPool>;
    deployContract(
      name: "BeaconProxyDeployer",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.BeaconProxyDeployer>;
    deployContract(
      name: "TestERC20",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.TestERC20>;
    deployContract(
      name: "Initializable",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.Initializable>;
    deployContract(
      name: "Ownable",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.Ownable>;
    deployContract(
      name: "IERC1822Proxiable",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IERC1822Proxiable>;
    deployContract(
      name: "IERC1967",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IERC1967>;
    deployContract(
      name: "BeaconProxy",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.BeaconProxy>;
    deployContract(
      name: "IBeacon",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IBeacon>;
    deployContract(
      name: "UpgradeableBeacon",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.UpgradeableBeacon>;
    deployContract(
      name: "ERC1967Upgrade",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.ERC1967Upgrade>;
    deployContract(
      name: "Proxy",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.Proxy>;
    deployContract(
      name: "ERC20",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.ERC20>;
    deployContract(
      name: "IERC20Metadata",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IERC20Metadata>;
    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: "ILimitOrderPluginImplementation",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.ILimitOrderPluginImplementation>;
    deployContract(
      name: "LimitOrderConnector",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderConnector>;
    deployContract(
      name: "LimitOrderManager",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderManager>;
    deployContract(
      name: "LimitOrderPluginImplementation",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderPluginImplementation>;
    deployContract(
      name: "MockLimitOrderManager",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.MockLimitOrderManager>;
    deployContract(
      name: "UpgradeableLimitOrderPluginTest",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.UpgradeableLimitOrderPluginTest>;
    deployContract(
      name: "UpgradeableLimitOrderTestPluginFactory",
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.UpgradeableLimitOrderTestPluginFactory>;

    deployContract(
      name: "AbstractPlugin",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.AbstractPlugin>;
    deployContract(
      name: "AlgebraPluginProxy",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.AlgebraPluginProxy>;
    deployContract(
      name: "BaseAbstractPlugin",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.BaseAbstractPlugin>;
    deployContract(
      name: "BaseConnector",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.BaseConnector>;
    deployContract(
      name: "IAbstractPlugin",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAbstractPlugin>;
    deployContract(
      name: "IAlgebraPluginProxy",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IAlgebraPluginProxy>;
    deployContract(
      name: "IBasePluginFactory",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IBasePluginFactory>;
    deployContract(
      name: "UpgradeableAbstractPlugin",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.UpgradeableAbstractPlugin>;
    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: "MockERC20",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.MockERC20>;
    deployContract(
      name: "MockFactory",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.MockFactory>;
    deployContract(
      name: "MockPluginFactory",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.MockPluginFactory>;
    deployContract(
      name: "MockPool",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.MockPool>;
    deployContract(
      name: "BeaconProxyDeployer",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.BeaconProxyDeployer>;
    deployContract(
      name: "TestERC20",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.TestERC20>;
    deployContract(
      name: "Initializable",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.Initializable>;
    deployContract(
      name: "Ownable",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.Ownable>;
    deployContract(
      name: "IERC1822Proxiable",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IERC1822Proxiable>;
    deployContract(
      name: "IERC1967",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IERC1967>;
    deployContract(
      name: "BeaconProxy",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.BeaconProxy>;
    deployContract(
      name: "IBeacon",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IBeacon>;
    deployContract(
      name: "UpgradeableBeacon",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.UpgradeableBeacon>;
    deployContract(
      name: "ERC1967Upgrade",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.ERC1967Upgrade>;
    deployContract(
      name: "Proxy",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.Proxy>;
    deployContract(
      name: "ERC20",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.ERC20>;
    deployContract(
      name: "IERC20Metadata",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.IERC20Metadata>;
    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: "ILimitOrderPluginImplementation",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.ILimitOrderPluginImplementation>;
    deployContract(
      name: "LimitOrderConnector",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderConnector>;
    deployContract(
      name: "LimitOrderManager",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderManager>;
    deployContract(
      name: "LimitOrderPluginImplementation",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.LimitOrderPluginImplementation>;
    deployContract(
      name: "MockLimitOrderManager",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.MockLimitOrderManager>;
    deployContract(
      name: "UpgradeableLimitOrderPluginTest",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.UpgradeableLimitOrderPluginTest>;
    deployContract(
      name: "UpgradeableLimitOrderTestPluginFactory",
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions
    ): Promise<Contracts.UpgradeableLimitOrderTestPluginFactory>;

    // 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>;
  }
}
