/**
 * This module was automatically generated by `ts-interface-builder`
 */
import * as t from "ts-interface-checker";

export const AnvilOptionsTi = t.iface([], {
  url: "string",
  keepAliveTimeout: t.opt("number"),
  accountKeysPath: t.opt("string"),
  hostname: t.opt("string"),
  accounts: t.opt(t.union(t.array("object"), "object")),
  allowUnlimitedContractSize: t.opt("boolean"),
  blockTime: t.opt("number"),
  dbPath: t.opt("string"),
  defaultBalanceEther: t.opt("number"),
  forkUrl: t.opt(t.union("string", "object")),
  forkBlockNumber: t.opt(t.union("string", "number")),
  gasLimit: t.opt("number"),
  gasPrice: t.opt(t.union("string", "number")),
  hdPath: t.opt("string"),
  path: t.opt("string"),
  locked: t.opt("boolean"),
  noStorageCaching: t.opt("boolean"),
  hardfork: t.opt("string"),
  logger: t.opt(
    t.iface([], {
      log: t.func("void", t.param("msg", "string")),
    })
  ),
  mnemonic: t.opt("string"),
  network_id: t.opt("number"),
  chainId: t.opt("number"),
  port: t.opt("number"),
  totalAccounts: t.opt("number"),
  unlockedAccounts: t.opt(t.array("string")),
  silent: t.opt("boolean"),
  vmErrorsOnRPCResponse: t.opt("boolean"),
  ws: t.opt("boolean"),
});

const exportedTypeSuite: t.ITypeSuite = {
  AnvilOptionsTi,
};
// eslint-disable-next-line import/no-default-export
export default exportedTypeSuite;
