// This file was autogenerated by hardhat-viem, do not edit it.
// prettier-ignore
// tslint:disable
// eslint-disable

import type { Address } from "viem";
import type { GetContractReturnType } from "@nomicfoundation/hardhat-viem/types";
import "@nomicfoundation/hardhat-viem/types";

export interface Counter$Type {
  "_format": "hh-sol-artifact-1",
  "contractName": "Counter",
  "sourceName": "contracts/Counter.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "newValue",
          "type": "uint256"
        }
      ],
      "name": "CounterIncremented",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "increment",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "number",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newNumber",
          "type": "uint256"
        }
      ],
      "name": "setNumber",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608080604052346015576101a1908161001b8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081633fb5c1cb146101345781638381f58a146100fb575063d09de08a1461004057600080fd5b346100f65760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f6576000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146100c757600101806000557f3cf8b50771c17d723f2cb711ca7dadde485b222e13c84ba0730a14093fad6d5c600080a2005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b346100f65760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f6576020906000548152f35b346100f65760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f65760043560005500fea264697066735822122030b4fc0fd351908cca2d72fead2a46ff6de7f0e5f7f82a2c742987b1682039a364736f6c634300081b0033",
  "deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c9081633fb5c1cb146101345781638381f58a146100fb575063d09de08a1461004057600080fd5b346100f65760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f6576000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146100c757600101806000557f3cf8b50771c17d723f2cb711ca7dadde485b222e13c84ba0730a14093fad6d5c600080a2005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b346100f65760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f6576020906000548152f35b346100f65760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f65760043560005500fea264697066735822122030b4fc0fd351908cca2d72fead2a46ff6de7f0e5f7f82a2c742987b1682039a364736f6c634300081b0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}

declare module "@nomicfoundation/hardhat-viem/types" {
  export function deployContract(
    contractName: "Counter",
    constructorArgs?: [],
    config?: DeployContractConfig
  ): Promise<GetContractReturnType<Counter$Type["abi"]>>;
  export function deployContract(
    contractName: "contracts/Counter.sol:Counter",
    constructorArgs?: [],
    config?: DeployContractConfig
  ): Promise<GetContractReturnType<Counter$Type["abi"]>>;

  export function sendDeploymentTransaction(
    contractName: "Counter",
    constructorArgs?: [],
    config?: SendDeploymentTransactionConfig
  ): Promise<{
    contract: GetContractReturnType<Counter$Type["abi"]>;
    deploymentTransaction: GetTransactionReturnType;
  }>;
  export function sendDeploymentTransaction(
    contractName: "contracts/Counter.sol:Counter",
    constructorArgs?: [],
    config?: SendDeploymentTransactionConfig
  ): Promise<{
    contract: GetContractReturnType<Counter$Type["abi"]>;
    deploymentTransaction: GetTransactionReturnType;
  }>;

  export function getContractAt(
    contractName: "Counter",
    address: Address,
    config?: GetContractAtConfig
  ): Promise<GetContractReturnType<Counter$Type["abi"]>>;
  export function getContractAt(
    contractName: "contracts/Counter.sol:Counter",
    address: Address,
    config?: GetContractAtConfig
  ): Promise<GetContractReturnType<Counter$Type["abi"]>>;
}
