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

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

import * as Contracts from ".";

declare module "hardhat/types/runtime" {
  interface HardhatEthersHelpers extends HardhatEthersHelpersBase {
    getContractFactory(
      name: "IAstraCLSwapCallback",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAstraCLSwapCallback__factory>;
    getContractFactory(
      name: "IAstraCLPool",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAstraCLPool__factory>;
    getContractFactory(
      name: "IAstraCLPoolActions",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAstraCLPoolActions__factory>;
    getContractFactory(
      name: "IAstraCLPoolDerivedState",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAstraCLPoolDerivedState__factory>;
    getContractFactory(
      name: "IAstraCLPoolEvents",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAstraCLPoolEvents__factory>;
    getContractFactory(
      name: "IAstraCLPoolImmutables",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAstraCLPoolImmutables__factory>;
    getContractFactory(
      name: "IAstraCLPoolOwnerActions",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAstraCLPoolOwnerActions__factory>;
    getContractFactory(
      name: "IAstraCLPoolState",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAstraCLPoolState__factory>;
    getContractFactory(
      name: "IAstraPair",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAstraPair__factory>;
    getContractFactory(
      name: "IERC1155Receiver",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC1155Receiver__factory>;
    getContractFactory(
      name: "IERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC20__factory>;
    getContractFactory(
      name: "IERC721Receiver",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC721Receiver__factory>;
    getContractFactory(
      name: "IERC165",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC165__factory>;
    getContractFactory(
      name: "Callbacks",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Callbacks__factory>;
    getContractFactory(
      name: "Dispatcher",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Dispatcher__factory>;
    getContractFactory(
      name: "LockAndMsgSender",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.LockAndMsgSender__factory>;
    getContractFactory(
      name: "RewardsCollector",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.RewardsCollector__factory>;
    getContractFactory(
      name: "RouterImmutables",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.RouterImmutables__factory>;
    getContractFactory(
      name: "UnsupportedProtocol",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.UnsupportedProtocol__factory>;
    getContractFactory(
      name: "ICryptoPunksMarket",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ICryptoPunksMarket__factory>;
    getContractFactory(
      name: "ISAMB",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ISAMB__factory>;
    getContractFactory(
      name: "IRewardsCollector",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IRewardsCollector__factory>;
    getContractFactory(
      name: "IUniversalRouter",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IUniversalRouter__factory>;
    getContractFactory(
      name: "BytesLib",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.BytesLib__factory>;
    getContractFactory(
      name: "CLSwapRouter",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.CLSwapRouter__factory>;
    getContractFactory(
      name: "AstraClassicLibrary",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.AstraClassicLibrary__factory>;
    getContractFactory(
      name: "ClassicSwapRouter",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ClassicSwapRouter__factory>;
    getContractFactory(
      name: "Payments",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Payments__factory>;
    getContractFactory(
      name: "Permit2Payments",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Permit2Payments__factory>;
    getContractFactory(
      name: "ExampleModule",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ExampleModule__factory>;
    getContractFactory(
      name: "ImportsForTypechain",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ImportsForTypechain__factory>;
    getContractFactory(
      name: "MintableERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MintableERC20__factory>;
    getContractFactory(
      name: "MockLooksRareRewardsDistributor",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MockLooksRareRewardsDistributor__factory>;
    getContractFactory(
      name: "ReenteringProtocol",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ReenteringProtocol__factory>;
    getContractFactory(
      name: "TestCustomErrors",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TestCustomErrors__factory>;
    getContractFactory(
      name: "UniversalRouter",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.UniversalRouter__factory>;
    getContractFactory(
      name: "AllowanceTransfer",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.AllowanceTransfer__factory>;
    getContractFactory(
      name: "EIP712",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.EIP712__factory>;
    getContractFactory(
      name: "IAllowanceTransfer",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAllowanceTransfer__factory>;
    getContractFactory(
      name: "IERC1271",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC1271__factory>;
    getContractFactory(
      name: "ISignatureTransfer",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ISignatureTransfer__factory>;
    getContractFactory(
      name: "PermitHash",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PermitHash__factory>;
    getContractFactory(
      name: "SafeCast160",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SafeCast160__factory>;
    getContractFactory(
      name: "SignatureVerification",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SignatureVerification__factory>;
    getContractFactory(
      name: "Permit2",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Permit2__factory>;
    getContractFactory(
      name: "SignatureTransfer",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SignatureTransfer__factory>;
    getContractFactory(
      name: "ERC1155",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC1155__factory>;
    getContractFactory(
      name: "ERC1155TokenReceiver",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC1155TokenReceiver__factory>;
    getContractFactory(
      name: "ERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC20__factory>;
    getContractFactory(
      name: "ERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC721__factory>;
    getContractFactory(
      name: "ERC721TokenReceiver",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC721TokenReceiver__factory>;

    getContractAt(
      name: "IAstraCLSwapCallback",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAstraCLSwapCallback>;
    getContractAt(
      name: "IAstraCLPool",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAstraCLPool>;
    getContractAt(
      name: "IAstraCLPoolActions",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAstraCLPoolActions>;
    getContractAt(
      name: "IAstraCLPoolDerivedState",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAstraCLPoolDerivedState>;
    getContractAt(
      name: "IAstraCLPoolEvents",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAstraCLPoolEvents>;
    getContractAt(
      name: "IAstraCLPoolImmutables",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAstraCLPoolImmutables>;
    getContractAt(
      name: "IAstraCLPoolOwnerActions",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAstraCLPoolOwnerActions>;
    getContractAt(
      name: "IAstraCLPoolState",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAstraCLPoolState>;
    getContractAt(
      name: "IAstraPair",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAstraPair>;
    getContractAt(
      name: "IERC1155Receiver",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC1155Receiver>;
    getContractAt(
      name: "IERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC20>;
    getContractAt(
      name: "IERC721Receiver",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC721Receiver>;
    getContractAt(
      name: "IERC165",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC165>;
    getContractAt(
      name: "Callbacks",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Callbacks>;
    getContractAt(
      name: "Dispatcher",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Dispatcher>;
    getContractAt(
      name: "LockAndMsgSender",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.LockAndMsgSender>;
    getContractAt(
      name: "RewardsCollector",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.RewardsCollector>;
    getContractAt(
      name: "RouterImmutables",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.RouterImmutables>;
    getContractAt(
      name: "UnsupportedProtocol",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.UnsupportedProtocol>;
    getContractAt(
      name: "ICryptoPunksMarket",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ICryptoPunksMarket>;
    getContractAt(
      name: "ISAMB",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ISAMB>;
    getContractAt(
      name: "IRewardsCollector",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IRewardsCollector>;
    getContractAt(
      name: "IUniversalRouter",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IUniversalRouter>;
    getContractAt(
      name: "BytesLib",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.BytesLib>;
    getContractAt(
      name: "CLSwapRouter",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.CLSwapRouter>;
    getContractAt(
      name: "AstraClassicLibrary",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.AstraClassicLibrary>;
    getContractAt(
      name: "ClassicSwapRouter",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ClassicSwapRouter>;
    getContractAt(
      name: "Payments",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Payments>;
    getContractAt(
      name: "Permit2Payments",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Permit2Payments>;
    getContractAt(
      name: "ExampleModule",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ExampleModule>;
    getContractAt(
      name: "ImportsForTypechain",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ImportsForTypechain>;
    getContractAt(
      name: "MintableERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.MintableERC20>;
    getContractAt(
      name: "MockLooksRareRewardsDistributor",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.MockLooksRareRewardsDistributor>;
    getContractAt(
      name: "ReenteringProtocol",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ReenteringProtocol>;
    getContractAt(
      name: "TestCustomErrors",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TestCustomErrors>;
    getContractAt(
      name: "UniversalRouter",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.UniversalRouter>;
    getContractAt(
      name: "AllowanceTransfer",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.AllowanceTransfer>;
    getContractAt(
      name: "EIP712",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.EIP712>;
    getContractAt(
      name: "IAllowanceTransfer",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAllowanceTransfer>;
    getContractAt(
      name: "IERC1271",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC1271>;
    getContractAt(
      name: "ISignatureTransfer",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ISignatureTransfer>;
    getContractAt(
      name: "PermitHash",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PermitHash>;
    getContractAt(
      name: "SafeCast160",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SafeCast160>;
    getContractAt(
      name: "SignatureVerification",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SignatureVerification>;
    getContractAt(
      name: "Permit2",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Permit2>;
    getContractAt(
      name: "SignatureTransfer",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SignatureTransfer>;
    getContractAt(
      name: "ERC1155",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC1155>;
    getContractAt(
      name: "ERC1155TokenReceiver",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC1155TokenReceiver>;
    getContractAt(
      name: "ERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC20>;
    getContractAt(
      name: "ERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC721>;
    getContractAt(
      name: "ERC721TokenReceiver",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC721TokenReceiver>;

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