/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import type {
  BaseContract,
  BigNumberish,
  BytesLike,
  FunctionFragment,
  Result,
  Interface,
  EventFragment,
  AddressLike,
  ContractRunner,
  ContractMethod,
  Listener,
} from "ethers";
import type {
  TypedContractEvent,
  TypedDeferredTopicFilter,
  TypedEventLog,
  TypedLogDescription,
  TypedListener,
  TypedContractMethod,
} from "./common";

export declare namespace StdInvariant {
  export type FuzzSelectorStruct = {
    addr: AddressLike;
    selectors: BytesLike[];
  };

  export type FuzzSelectorStructOutput = [addr: string, selectors: string[]] & {
    addr: string;
    selectors: string[];
  };

  export type FuzzInterfaceStruct = { addr: AddressLike; artifacts: string[] };

  export type FuzzInterfaceStructOutput = [
    addr: string,
    artifacts: string[]
  ] & { addr: string; artifacts: string[] };
}

export interface Hyperlane7683TestInterface extends Interface {
  getFunction(
    nameOrSignature:
      | "IS_SCRIPT"
      | "IS_TEST"
      | "deployPermit2"
      | "excludeArtifacts"
      | "excludeContracts"
      | "excludeSenders"
      | "failed"
      | "run"
      | "setUp"
      | "targetArtifactSelectors"
      | "targetArtifacts"
      | "targetContracts"
      | "targetInterfaces"
      | "targetSelectors"
      | "targetSenders"
      | "testFuzz_enrollRemoteRouters"
      | "test__dispatchRefund_works"
      | "test__dispatchSettle_works"
      | "test__handle_refund_works"
      | "test__handle_settle_works"
      | "test_localDomain"
  ): FunctionFragment;

  getEvent(
    nameOrSignatureOrTopic:
      | "SlotFound"
      | "WARNING_UninitedSlot"
      | "log"
      | "log_address"
      | "log_array(uint256[])"
      | "log_array(int256[])"
      | "log_array(address[])"
      | "log_bytes"
      | "log_bytes32"
      | "log_int"
      | "log_named_address"
      | "log_named_array(string,uint256[])"
      | "log_named_array(string,int256[])"
      | "log_named_array(string,address[])"
      | "log_named_bytes"
      | "log_named_bytes32"
      | "log_named_decimal_int"
      | "log_named_decimal_uint"
      | "log_named_int"
      | "log_named_string"
      | "log_named_uint"
      | "log_string"
      | "log_uint"
      | "logs"
  ): EventFragment;

  encodeFunctionData(functionFragment: "IS_SCRIPT", values?: undefined): string;
  encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "deployPermit2",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "excludeArtifacts",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "excludeContracts",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "excludeSenders",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "failed", values?: undefined): string;
  encodeFunctionData(functionFragment: "run", values?: undefined): string;
  encodeFunctionData(functionFragment: "setUp", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "targetArtifactSelectors",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "targetArtifacts",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "targetContracts",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "targetInterfaces",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "targetSelectors",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "targetSenders",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "testFuzz_enrollRemoteRouters",
    values: [BigNumberish, BigNumberish, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "test__dispatchRefund_works",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "test__dispatchSettle_works",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "test__handle_refund_works",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "test__handle_settle_works",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "test_localDomain",
    values?: undefined
  ): string;

  decodeFunctionResult(functionFragment: "IS_SCRIPT", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "deployPermit2",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "excludeArtifacts",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "excludeContracts",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "excludeSenders",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "run", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "setUp", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "targetArtifactSelectors",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "targetArtifacts",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "targetContracts",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "targetInterfaces",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "targetSelectors",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "targetSenders",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "testFuzz_enrollRemoteRouters",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "test__dispatchRefund_works",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "test__dispatchSettle_works",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "test__handle_refund_works",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "test__handle_settle_works",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "test_localDomain",
    data: BytesLike
  ): Result;
}

export namespace SlotFoundEvent {
  export type InputTuple = [
    who: AddressLike,
    fsig: BytesLike,
    keysHash: BytesLike,
    slot: BigNumberish
  ];
  export type OutputTuple = [
    who: string,
    fsig: string,
    keysHash: string,
    slot: bigint
  ];
  export interface OutputObject {
    who: string;
    fsig: string;
    keysHash: string;
    slot: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace WARNING_UninitedSlotEvent {
  export type InputTuple = [who: AddressLike, slot: BigNumberish];
  export type OutputTuple = [who: string, slot: bigint];
  export interface OutputObject {
    who: string;
    slot: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace logEvent {
  export type InputTuple = [arg0: string];
  export type OutputTuple = [arg0: string];
  export interface OutputObject {
    arg0: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_addressEvent {
  export type InputTuple = [arg0: AddressLike];
  export type OutputTuple = [arg0: string];
  export interface OutputObject {
    arg0: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_array_uint256_array_Event {
  export type InputTuple = [val: BigNumberish[]];
  export type OutputTuple = [val: bigint[]];
  export interface OutputObject {
    val: bigint[];
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_array_int256_array_Event {
  export type InputTuple = [val: BigNumberish[]];
  export type OutputTuple = [val: bigint[]];
  export interface OutputObject {
    val: bigint[];
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_array_address_array_Event {
  export type InputTuple = [val: AddressLike[]];
  export type OutputTuple = [val: string[]];
  export interface OutputObject {
    val: string[];
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_bytesEvent {
  export type InputTuple = [arg0: BytesLike];
  export type OutputTuple = [arg0: string];
  export interface OutputObject {
    arg0: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_bytes32Event {
  export type InputTuple = [arg0: BytesLike];
  export type OutputTuple = [arg0: string];
  export interface OutputObject {
    arg0: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_intEvent {
  export type InputTuple = [arg0: BigNumberish];
  export type OutputTuple = [arg0: bigint];
  export interface OutputObject {
    arg0: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_named_addressEvent {
  export type InputTuple = [key: string, val: AddressLike];
  export type OutputTuple = [key: string, val: string];
  export interface OutputObject {
    key: string;
    val: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_named_array_string_uint256_array_Event {
  export type InputTuple = [key: string, val: BigNumberish[]];
  export type OutputTuple = [key: string, val: bigint[]];
  export interface OutputObject {
    key: string;
    val: bigint[];
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_named_array_string_int256_array_Event {
  export type InputTuple = [key: string, val: BigNumberish[]];
  export type OutputTuple = [key: string, val: bigint[]];
  export interface OutputObject {
    key: string;
    val: bigint[];
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_named_array_string_address_array_Event {
  export type InputTuple = [key: string, val: AddressLike[]];
  export type OutputTuple = [key: string, val: string[]];
  export interface OutputObject {
    key: string;
    val: string[];
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_named_bytesEvent {
  export type InputTuple = [key: string, val: BytesLike];
  export type OutputTuple = [key: string, val: string];
  export interface OutputObject {
    key: string;
    val: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_named_bytes32Event {
  export type InputTuple = [key: string, val: BytesLike];
  export type OutputTuple = [key: string, val: string];
  export interface OutputObject {
    key: string;
    val: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_named_decimal_intEvent {
  export type InputTuple = [
    key: string,
    val: BigNumberish,
    decimals: BigNumberish
  ];
  export type OutputTuple = [key: string, val: bigint, decimals: bigint];
  export interface OutputObject {
    key: string;
    val: bigint;
    decimals: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_named_decimal_uintEvent {
  export type InputTuple = [
    key: string,
    val: BigNumberish,
    decimals: BigNumberish
  ];
  export type OutputTuple = [key: string, val: bigint, decimals: bigint];
  export interface OutputObject {
    key: string;
    val: bigint;
    decimals: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_named_intEvent {
  export type InputTuple = [key: string, val: BigNumberish];
  export type OutputTuple = [key: string, val: bigint];
  export interface OutputObject {
    key: string;
    val: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_named_stringEvent {
  export type InputTuple = [key: string, val: string];
  export type OutputTuple = [key: string, val: string];
  export interface OutputObject {
    key: string;
    val: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_named_uintEvent {
  export type InputTuple = [key: string, val: BigNumberish];
  export type OutputTuple = [key: string, val: bigint];
  export interface OutputObject {
    key: string;
    val: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_stringEvent {
  export type InputTuple = [arg0: string];
  export type OutputTuple = [arg0: string];
  export interface OutputObject {
    arg0: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace log_uintEvent {
  export type InputTuple = [arg0: BigNumberish];
  export type OutputTuple = [arg0: bigint];
  export interface OutputObject {
    arg0: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace logsEvent {
  export type InputTuple = [arg0: BytesLike];
  export type OutputTuple = [arg0: string];
  export interface OutputObject {
    arg0: string;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export interface Hyperlane7683Test extends BaseContract {
  connect(runner?: ContractRunner | null): Hyperlane7683Test;
  waitForDeployment(): Promise<this>;

  interface: Hyperlane7683TestInterface;

  queryFilter<TCEvent extends TypedContractEvent>(
    event: TCEvent,
    fromBlockOrBlockhash?: string | number | undefined,
    toBlock?: string | number | undefined
  ): Promise<Array<TypedEventLog<TCEvent>>>;
  queryFilter<TCEvent extends TypedContractEvent>(
    filter: TypedDeferredTopicFilter<TCEvent>,
    fromBlockOrBlockhash?: string | number | undefined,
    toBlock?: string | number | undefined
  ): Promise<Array<TypedEventLog<TCEvent>>>;

  on<TCEvent extends TypedContractEvent>(
    event: TCEvent,
    listener: TypedListener<TCEvent>
  ): Promise<this>;
  on<TCEvent extends TypedContractEvent>(
    filter: TypedDeferredTopicFilter<TCEvent>,
    listener: TypedListener<TCEvent>
  ): Promise<this>;

  once<TCEvent extends TypedContractEvent>(
    event: TCEvent,
    listener: TypedListener<TCEvent>
  ): Promise<this>;
  once<TCEvent extends TypedContractEvent>(
    filter: TypedDeferredTopicFilter<TCEvent>,
    listener: TypedListener<TCEvent>
  ): Promise<this>;

  listeners<TCEvent extends TypedContractEvent>(
    event: TCEvent
  ): Promise<Array<TypedListener<TCEvent>>>;
  listeners(eventName?: string): Promise<Array<Listener>>;
  removeAllListeners<TCEvent extends TypedContractEvent>(
    event?: TCEvent
  ): Promise<this>;

  IS_SCRIPT: TypedContractMethod<[], [boolean], "view">;

  IS_TEST: TypedContractMethod<[], [boolean], "view">;

  deployPermit2: TypedContractMethod<[], [string], "nonpayable">;

  excludeArtifacts: TypedContractMethod<[], [string[]], "view">;

  excludeContracts: TypedContractMethod<[], [string[]], "view">;

  excludeSenders: TypedContractMethod<[], [string[]], "view">;

  failed: TypedContractMethod<[], [boolean], "view">;

  run: TypedContractMethod<[], [string], "nonpayable">;

  setUp: TypedContractMethod<[], [void], "nonpayable">;

  targetArtifactSelectors: TypedContractMethod<
    [],
    [StdInvariant.FuzzSelectorStructOutput[]],
    "view"
  >;

  targetArtifacts: TypedContractMethod<[], [string[]], "view">;

  targetContracts: TypedContractMethod<[], [string[]], "view">;

  targetInterfaces: TypedContractMethod<
    [],
    [StdInvariant.FuzzInterfaceStructOutput[]],
    "view"
  >;

  targetSelectors: TypedContractMethod<
    [],
    [StdInvariant.FuzzSelectorStructOutput[]],
    "view"
  >;

  targetSenders: TypedContractMethod<[], [string[]], "view">;

  testFuzz_enrollRemoteRouters: TypedContractMethod<
    [count: BigNumberish, domain: BigNumberish, router: BytesLike],
    [void],
    "nonpayable"
  >;

  test__dispatchRefund_works: TypedContractMethod<[], [void], "nonpayable">;

  test__dispatchSettle_works: TypedContractMethod<[], [void], "nonpayable">;

  test__handle_refund_works: TypedContractMethod<[], [void], "nonpayable">;

  test__handle_settle_works: TypedContractMethod<[], [void], "nonpayable">;

  test_localDomain: TypedContractMethod<[], [void], "view">;

  getFunction<T extends ContractMethod = ContractMethod>(
    key: string | FunctionFragment
  ): T;

  getFunction(
    nameOrSignature: "IS_SCRIPT"
  ): TypedContractMethod<[], [boolean], "view">;
  getFunction(
    nameOrSignature: "IS_TEST"
  ): TypedContractMethod<[], [boolean], "view">;
  getFunction(
    nameOrSignature: "deployPermit2"
  ): TypedContractMethod<[], [string], "nonpayable">;
  getFunction(
    nameOrSignature: "excludeArtifacts"
  ): TypedContractMethod<[], [string[]], "view">;
  getFunction(
    nameOrSignature: "excludeContracts"
  ): TypedContractMethod<[], [string[]], "view">;
  getFunction(
    nameOrSignature: "excludeSenders"
  ): TypedContractMethod<[], [string[]], "view">;
  getFunction(
    nameOrSignature: "failed"
  ): TypedContractMethod<[], [boolean], "view">;
  getFunction(
    nameOrSignature: "run"
  ): TypedContractMethod<[], [string], "nonpayable">;
  getFunction(
    nameOrSignature: "setUp"
  ): TypedContractMethod<[], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "targetArtifactSelectors"
  ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">;
  getFunction(
    nameOrSignature: "targetArtifacts"
  ): TypedContractMethod<[], [string[]], "view">;
  getFunction(
    nameOrSignature: "targetContracts"
  ): TypedContractMethod<[], [string[]], "view">;
  getFunction(
    nameOrSignature: "targetInterfaces"
  ): TypedContractMethod<
    [],
    [StdInvariant.FuzzInterfaceStructOutput[]],
    "view"
  >;
  getFunction(
    nameOrSignature: "targetSelectors"
  ): TypedContractMethod<[], [StdInvariant.FuzzSelectorStructOutput[]], "view">;
  getFunction(
    nameOrSignature: "targetSenders"
  ): TypedContractMethod<[], [string[]], "view">;
  getFunction(
    nameOrSignature: "testFuzz_enrollRemoteRouters"
  ): TypedContractMethod<
    [count: BigNumberish, domain: BigNumberish, router: BytesLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "test__dispatchRefund_works"
  ): TypedContractMethod<[], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "test__dispatchSettle_works"
  ): TypedContractMethod<[], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "test__handle_refund_works"
  ): TypedContractMethod<[], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "test__handle_settle_works"
  ): TypedContractMethod<[], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "test_localDomain"
  ): TypedContractMethod<[], [void], "view">;

  getEvent(
    key: "SlotFound"
  ): TypedContractEvent<
    SlotFoundEvent.InputTuple,
    SlotFoundEvent.OutputTuple,
    SlotFoundEvent.OutputObject
  >;
  getEvent(
    key: "WARNING_UninitedSlot"
  ): TypedContractEvent<
    WARNING_UninitedSlotEvent.InputTuple,
    WARNING_UninitedSlotEvent.OutputTuple,
    WARNING_UninitedSlotEvent.OutputObject
  >;
  getEvent(
    key: "log"
  ): TypedContractEvent<
    logEvent.InputTuple,
    logEvent.OutputTuple,
    logEvent.OutputObject
  >;
  getEvent(
    key: "log_address"
  ): TypedContractEvent<
    log_addressEvent.InputTuple,
    log_addressEvent.OutputTuple,
    log_addressEvent.OutputObject
  >;
  getEvent(
    key: "log_array(uint256[])"
  ): TypedContractEvent<
    log_array_uint256_array_Event.InputTuple,
    log_array_uint256_array_Event.OutputTuple,
    log_array_uint256_array_Event.OutputObject
  >;
  getEvent(
    key: "log_array(int256[])"
  ): TypedContractEvent<
    log_array_int256_array_Event.InputTuple,
    log_array_int256_array_Event.OutputTuple,
    log_array_int256_array_Event.OutputObject
  >;
  getEvent(
    key: "log_array(address[])"
  ): TypedContractEvent<
    log_array_address_array_Event.InputTuple,
    log_array_address_array_Event.OutputTuple,
    log_array_address_array_Event.OutputObject
  >;
  getEvent(
    key: "log_bytes"
  ): TypedContractEvent<
    log_bytesEvent.InputTuple,
    log_bytesEvent.OutputTuple,
    log_bytesEvent.OutputObject
  >;
  getEvent(
    key: "log_bytes32"
  ): TypedContractEvent<
    log_bytes32Event.InputTuple,
    log_bytes32Event.OutputTuple,
    log_bytes32Event.OutputObject
  >;
  getEvent(
    key: "log_int"
  ): TypedContractEvent<
    log_intEvent.InputTuple,
    log_intEvent.OutputTuple,
    log_intEvent.OutputObject
  >;
  getEvent(
    key: "log_named_address"
  ): TypedContractEvent<
    log_named_addressEvent.InputTuple,
    log_named_addressEvent.OutputTuple,
    log_named_addressEvent.OutputObject
  >;
  getEvent(
    key: "log_named_array(string,uint256[])"
  ): TypedContractEvent<
    log_named_array_string_uint256_array_Event.InputTuple,
    log_named_array_string_uint256_array_Event.OutputTuple,
    log_named_array_string_uint256_array_Event.OutputObject
  >;
  getEvent(
    key: "log_named_array(string,int256[])"
  ): TypedContractEvent<
    log_named_array_string_int256_array_Event.InputTuple,
    log_named_array_string_int256_array_Event.OutputTuple,
    log_named_array_string_int256_array_Event.OutputObject
  >;
  getEvent(
    key: "log_named_array(string,address[])"
  ): TypedContractEvent<
    log_named_array_string_address_array_Event.InputTuple,
    log_named_array_string_address_array_Event.OutputTuple,
    log_named_array_string_address_array_Event.OutputObject
  >;
  getEvent(
    key: "log_named_bytes"
  ): TypedContractEvent<
    log_named_bytesEvent.InputTuple,
    log_named_bytesEvent.OutputTuple,
    log_named_bytesEvent.OutputObject
  >;
  getEvent(
    key: "log_named_bytes32"
  ): TypedContractEvent<
    log_named_bytes32Event.InputTuple,
    log_named_bytes32Event.OutputTuple,
    log_named_bytes32Event.OutputObject
  >;
  getEvent(
    key: "log_named_decimal_int"
  ): TypedContractEvent<
    log_named_decimal_intEvent.InputTuple,
    log_named_decimal_intEvent.OutputTuple,
    log_named_decimal_intEvent.OutputObject
  >;
  getEvent(
    key: "log_named_decimal_uint"
  ): TypedContractEvent<
    log_named_decimal_uintEvent.InputTuple,
    log_named_decimal_uintEvent.OutputTuple,
    log_named_decimal_uintEvent.OutputObject
  >;
  getEvent(
    key: "log_named_int"
  ): TypedContractEvent<
    log_named_intEvent.InputTuple,
    log_named_intEvent.OutputTuple,
    log_named_intEvent.OutputObject
  >;
  getEvent(
    key: "log_named_string"
  ): TypedContractEvent<
    log_named_stringEvent.InputTuple,
    log_named_stringEvent.OutputTuple,
    log_named_stringEvent.OutputObject
  >;
  getEvent(
    key: "log_named_uint"
  ): TypedContractEvent<
    log_named_uintEvent.InputTuple,
    log_named_uintEvent.OutputTuple,
    log_named_uintEvent.OutputObject
  >;
  getEvent(
    key: "log_string"
  ): TypedContractEvent<
    log_stringEvent.InputTuple,
    log_stringEvent.OutputTuple,
    log_stringEvent.OutputObject
  >;
  getEvent(
    key: "log_uint"
  ): TypedContractEvent<
    log_uintEvent.InputTuple,
    log_uintEvent.OutputTuple,
    log_uintEvent.OutputObject
  >;
  getEvent(
    key: "logs"
  ): TypedContractEvent<
    logsEvent.InputTuple,
    logsEvent.OutputTuple,
    logsEvent.OutputObject
  >;

  filters: {
    "SlotFound(address,bytes4,bytes32,uint256)": TypedContractEvent<
      SlotFoundEvent.InputTuple,
      SlotFoundEvent.OutputTuple,
      SlotFoundEvent.OutputObject
    >;
    SlotFound: TypedContractEvent<
      SlotFoundEvent.InputTuple,
      SlotFoundEvent.OutputTuple,
      SlotFoundEvent.OutputObject
    >;

    "WARNING_UninitedSlot(address,uint256)": TypedContractEvent<
      WARNING_UninitedSlotEvent.InputTuple,
      WARNING_UninitedSlotEvent.OutputTuple,
      WARNING_UninitedSlotEvent.OutputObject
    >;
    WARNING_UninitedSlot: TypedContractEvent<
      WARNING_UninitedSlotEvent.InputTuple,
      WARNING_UninitedSlotEvent.OutputTuple,
      WARNING_UninitedSlotEvent.OutputObject
    >;

    "log(string)": TypedContractEvent<
      logEvent.InputTuple,
      logEvent.OutputTuple,
      logEvent.OutputObject
    >;
    log: TypedContractEvent<
      logEvent.InputTuple,
      logEvent.OutputTuple,
      logEvent.OutputObject
    >;

    "log_address(address)": TypedContractEvent<
      log_addressEvent.InputTuple,
      log_addressEvent.OutputTuple,
      log_addressEvent.OutputObject
    >;
    log_address: TypedContractEvent<
      log_addressEvent.InputTuple,
      log_addressEvent.OutputTuple,
      log_addressEvent.OutputObject
    >;

    "log_array(uint256[])": TypedContractEvent<
      log_array_uint256_array_Event.InputTuple,
      log_array_uint256_array_Event.OutputTuple,
      log_array_uint256_array_Event.OutputObject
    >;
    "log_array(int256[])": TypedContractEvent<
      log_array_int256_array_Event.InputTuple,
      log_array_int256_array_Event.OutputTuple,
      log_array_int256_array_Event.OutputObject
    >;
    "log_array(address[])": TypedContractEvent<
      log_array_address_array_Event.InputTuple,
      log_array_address_array_Event.OutputTuple,
      log_array_address_array_Event.OutputObject
    >;

    "log_bytes(bytes)": TypedContractEvent<
      log_bytesEvent.InputTuple,
      log_bytesEvent.OutputTuple,
      log_bytesEvent.OutputObject
    >;
    log_bytes: TypedContractEvent<
      log_bytesEvent.InputTuple,
      log_bytesEvent.OutputTuple,
      log_bytesEvent.OutputObject
    >;

    "log_bytes32(bytes32)": TypedContractEvent<
      log_bytes32Event.InputTuple,
      log_bytes32Event.OutputTuple,
      log_bytes32Event.OutputObject
    >;
    log_bytes32: TypedContractEvent<
      log_bytes32Event.InputTuple,
      log_bytes32Event.OutputTuple,
      log_bytes32Event.OutputObject
    >;

    "log_int(int256)": TypedContractEvent<
      log_intEvent.InputTuple,
      log_intEvent.OutputTuple,
      log_intEvent.OutputObject
    >;
    log_int: TypedContractEvent<
      log_intEvent.InputTuple,
      log_intEvent.OutputTuple,
      log_intEvent.OutputObject
    >;

    "log_named_address(string,address)": TypedContractEvent<
      log_named_addressEvent.InputTuple,
      log_named_addressEvent.OutputTuple,
      log_named_addressEvent.OutputObject
    >;
    log_named_address: TypedContractEvent<
      log_named_addressEvent.InputTuple,
      log_named_addressEvent.OutputTuple,
      log_named_addressEvent.OutputObject
    >;

    "log_named_array(string,uint256[])": TypedContractEvent<
      log_named_array_string_uint256_array_Event.InputTuple,
      log_named_array_string_uint256_array_Event.OutputTuple,
      log_named_array_string_uint256_array_Event.OutputObject
    >;
    "log_named_array(string,int256[])": TypedContractEvent<
      log_named_array_string_int256_array_Event.InputTuple,
      log_named_array_string_int256_array_Event.OutputTuple,
      log_named_array_string_int256_array_Event.OutputObject
    >;
    "log_named_array(string,address[])": TypedContractEvent<
      log_named_array_string_address_array_Event.InputTuple,
      log_named_array_string_address_array_Event.OutputTuple,
      log_named_array_string_address_array_Event.OutputObject
    >;

    "log_named_bytes(string,bytes)": TypedContractEvent<
      log_named_bytesEvent.InputTuple,
      log_named_bytesEvent.OutputTuple,
      log_named_bytesEvent.OutputObject
    >;
    log_named_bytes: TypedContractEvent<
      log_named_bytesEvent.InputTuple,
      log_named_bytesEvent.OutputTuple,
      log_named_bytesEvent.OutputObject
    >;

    "log_named_bytes32(string,bytes32)": TypedContractEvent<
      log_named_bytes32Event.InputTuple,
      log_named_bytes32Event.OutputTuple,
      log_named_bytes32Event.OutputObject
    >;
    log_named_bytes32: TypedContractEvent<
      log_named_bytes32Event.InputTuple,
      log_named_bytes32Event.OutputTuple,
      log_named_bytes32Event.OutputObject
    >;

    "log_named_decimal_int(string,int256,uint256)": TypedContractEvent<
      log_named_decimal_intEvent.InputTuple,
      log_named_decimal_intEvent.OutputTuple,
      log_named_decimal_intEvent.OutputObject
    >;
    log_named_decimal_int: TypedContractEvent<
      log_named_decimal_intEvent.InputTuple,
      log_named_decimal_intEvent.OutputTuple,
      log_named_decimal_intEvent.OutputObject
    >;

    "log_named_decimal_uint(string,uint256,uint256)": TypedContractEvent<
      log_named_decimal_uintEvent.InputTuple,
      log_named_decimal_uintEvent.OutputTuple,
      log_named_decimal_uintEvent.OutputObject
    >;
    log_named_decimal_uint: TypedContractEvent<
      log_named_decimal_uintEvent.InputTuple,
      log_named_decimal_uintEvent.OutputTuple,
      log_named_decimal_uintEvent.OutputObject
    >;

    "log_named_int(string,int256)": TypedContractEvent<
      log_named_intEvent.InputTuple,
      log_named_intEvent.OutputTuple,
      log_named_intEvent.OutputObject
    >;
    log_named_int: TypedContractEvent<
      log_named_intEvent.InputTuple,
      log_named_intEvent.OutputTuple,
      log_named_intEvent.OutputObject
    >;

    "log_named_string(string,string)": TypedContractEvent<
      log_named_stringEvent.InputTuple,
      log_named_stringEvent.OutputTuple,
      log_named_stringEvent.OutputObject
    >;
    log_named_string: TypedContractEvent<
      log_named_stringEvent.InputTuple,
      log_named_stringEvent.OutputTuple,
      log_named_stringEvent.OutputObject
    >;

    "log_named_uint(string,uint256)": TypedContractEvent<
      log_named_uintEvent.InputTuple,
      log_named_uintEvent.OutputTuple,
      log_named_uintEvent.OutputObject
    >;
    log_named_uint: TypedContractEvent<
      log_named_uintEvent.InputTuple,
      log_named_uintEvent.OutputTuple,
      log_named_uintEvent.OutputObject
    >;

    "log_string(string)": TypedContractEvent<
      log_stringEvent.InputTuple,
      log_stringEvent.OutputTuple,
      log_stringEvent.OutputObject
    >;
    log_string: TypedContractEvent<
      log_stringEvent.InputTuple,
      log_stringEvent.OutputTuple,
      log_stringEvent.OutputObject
    >;

    "log_uint(uint256)": TypedContractEvent<
      log_uintEvent.InputTuple,
      log_uintEvent.OutputTuple,
      log_uintEvent.OutputObject
    >;
    log_uint: TypedContractEvent<
      log_uintEvent.InputTuple,
      log_uintEvent.OutputTuple,
      log_uintEvent.OutputObject
    >;

    "logs(bytes)": TypedContractEvent<
      logsEvent.InputTuple,
      logsEvent.OutputTuple,
      logsEvent.OutputObject
    >;
    logs: TypedContractEvent<
      logsEvent.InputTuple,
      logsEvent.OutputTuple,
      logsEvent.OutputObject
    >;
  };
}
