/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import type {
  BaseContract,
  BigNumber,
  BytesLike,
  CallOverrides,
  PopulatedTransaction,
  Signer,
  utils,
} from "ethers";
import type { FunctionFragment, Result } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type {
  TypedEventFilter,
  TypedEvent,
  TypedListener,
  OnEvent,
} from "./common";

export interface OracleInterfacesInterface extends utils.Interface {
  functions: {
    "Bridge()": FunctionFragment;
    "ChildMessenger()": FunctionFragment;
    "CollateralWhitelist()": FunctionFragment;
    "FinancialContractsAdmin()": FunctionFragment;
    "GenericHandler()": FunctionFragment;
    "IdentifierWhitelist()": FunctionFragment;
    "OptimisticOracle()": FunctionFragment;
    "OptimisticOracleV2()": FunctionFragment;
    "OptimisticOracleV3()": FunctionFragment;
    "Oracle()": FunctionFragment;
    "OracleHub()": FunctionFragment;
    "OracleSpoke()": FunctionFragment;
    "Registry()": FunctionFragment;
    "SkinnyOptimisticOracle()": FunctionFragment;
    "Store()": FunctionFragment;
  };

  getFunction(
    nameOrSignatureOrTopic:
      | "Bridge"
      | "ChildMessenger"
      | "CollateralWhitelist"
      | "FinancialContractsAdmin"
      | "GenericHandler"
      | "IdentifierWhitelist"
      | "OptimisticOracle"
      | "OptimisticOracleV2"
      | "OptimisticOracleV3"
      | "Oracle"
      | "OracleHub"
      | "OracleSpoke"
      | "Registry"
      | "SkinnyOptimisticOracle"
      | "Store"
  ): FunctionFragment;

  encodeFunctionData(functionFragment: "Bridge", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "ChildMessenger",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "CollateralWhitelist",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "FinancialContractsAdmin",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "GenericHandler",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "IdentifierWhitelist",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "OptimisticOracle",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "OptimisticOracleV2",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "OptimisticOracleV3",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "Oracle", values?: undefined): string;
  encodeFunctionData(functionFragment: "OracleHub", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "OracleSpoke",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "Registry", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "SkinnyOptimisticOracle",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "Store", values?: undefined): string;

  decodeFunctionResult(functionFragment: "Bridge", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "ChildMessenger",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "CollateralWhitelist",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "FinancialContractsAdmin",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "GenericHandler",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "IdentifierWhitelist",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "OptimisticOracle",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "OptimisticOracleV2",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "OptimisticOracleV3",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "Oracle", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "OracleHub", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "OracleSpoke",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "Registry", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "SkinnyOptimisticOracle",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "Store", data: BytesLike): Result;

  events: {};
}

export interface OracleInterfaces extends BaseContract {
  connect(signerOrProvider: Signer | Provider | string): this;
  attach(addressOrName: string): this;
  deployed(): Promise<this>;

  interface: OracleInterfacesInterface;

  queryFilter<TEvent extends TypedEvent>(
    event: TypedEventFilter<TEvent>,
    fromBlockOrBlockhash?: string | number | undefined,
    toBlock?: string | number | undefined
  ): Promise<Array<TEvent>>;

  listeners<TEvent extends TypedEvent>(
    eventFilter?: TypedEventFilter<TEvent>
  ): Array<TypedListener<TEvent>>;
  listeners(eventName?: string): Array<Listener>;
  removeAllListeners<TEvent extends TypedEvent>(
    eventFilter: TypedEventFilter<TEvent>
  ): this;
  removeAllListeners(eventName?: string): this;
  off: OnEvent<this>;
  on: OnEvent<this>;
  once: OnEvent<this>;
  removeListener: OnEvent<this>;

  functions: {
    Bridge(overrides?: CallOverrides): Promise<[string]>;

    ChildMessenger(overrides?: CallOverrides): Promise<[string]>;

    CollateralWhitelist(overrides?: CallOverrides): Promise<[string]>;

    FinancialContractsAdmin(overrides?: CallOverrides): Promise<[string]>;

    GenericHandler(overrides?: CallOverrides): Promise<[string]>;

    IdentifierWhitelist(overrides?: CallOverrides): Promise<[string]>;

    OptimisticOracle(overrides?: CallOverrides): Promise<[string]>;

    OptimisticOracleV2(overrides?: CallOverrides): Promise<[string]>;

    OptimisticOracleV3(overrides?: CallOverrides): Promise<[string]>;

    Oracle(overrides?: CallOverrides): Promise<[string]>;

    OracleHub(overrides?: CallOverrides): Promise<[string]>;

    OracleSpoke(overrides?: CallOverrides): Promise<[string]>;

    Registry(overrides?: CallOverrides): Promise<[string]>;

    SkinnyOptimisticOracle(overrides?: CallOverrides): Promise<[string]>;

    Store(overrides?: CallOverrides): Promise<[string]>;
  };

  Bridge(overrides?: CallOverrides): Promise<string>;

  ChildMessenger(overrides?: CallOverrides): Promise<string>;

  CollateralWhitelist(overrides?: CallOverrides): Promise<string>;

  FinancialContractsAdmin(overrides?: CallOverrides): Promise<string>;

  GenericHandler(overrides?: CallOverrides): Promise<string>;

  IdentifierWhitelist(overrides?: CallOverrides): Promise<string>;

  OptimisticOracle(overrides?: CallOverrides): Promise<string>;

  OptimisticOracleV2(overrides?: CallOverrides): Promise<string>;

  OptimisticOracleV3(overrides?: CallOverrides): Promise<string>;

  Oracle(overrides?: CallOverrides): Promise<string>;

  OracleHub(overrides?: CallOverrides): Promise<string>;

  OracleSpoke(overrides?: CallOverrides): Promise<string>;

  Registry(overrides?: CallOverrides): Promise<string>;

  SkinnyOptimisticOracle(overrides?: CallOverrides): Promise<string>;

  Store(overrides?: CallOverrides): Promise<string>;

  callStatic: {
    Bridge(overrides?: CallOverrides): Promise<string>;

    ChildMessenger(overrides?: CallOverrides): Promise<string>;

    CollateralWhitelist(overrides?: CallOverrides): Promise<string>;

    FinancialContractsAdmin(overrides?: CallOverrides): Promise<string>;

    GenericHandler(overrides?: CallOverrides): Promise<string>;

    IdentifierWhitelist(overrides?: CallOverrides): Promise<string>;

    OptimisticOracle(overrides?: CallOverrides): Promise<string>;

    OptimisticOracleV2(overrides?: CallOverrides): Promise<string>;

    OptimisticOracleV3(overrides?: CallOverrides): Promise<string>;

    Oracle(overrides?: CallOverrides): Promise<string>;

    OracleHub(overrides?: CallOverrides): Promise<string>;

    OracleSpoke(overrides?: CallOverrides): Promise<string>;

    Registry(overrides?: CallOverrides): Promise<string>;

    SkinnyOptimisticOracle(overrides?: CallOverrides): Promise<string>;

    Store(overrides?: CallOverrides): Promise<string>;
  };

  filters: {};

  estimateGas: {
    Bridge(overrides?: CallOverrides): Promise<BigNumber>;

    ChildMessenger(overrides?: CallOverrides): Promise<BigNumber>;

    CollateralWhitelist(overrides?: CallOverrides): Promise<BigNumber>;

    FinancialContractsAdmin(overrides?: CallOverrides): Promise<BigNumber>;

    GenericHandler(overrides?: CallOverrides): Promise<BigNumber>;

    IdentifierWhitelist(overrides?: CallOverrides): Promise<BigNumber>;

    OptimisticOracle(overrides?: CallOverrides): Promise<BigNumber>;

    OptimisticOracleV2(overrides?: CallOverrides): Promise<BigNumber>;

    OptimisticOracleV3(overrides?: CallOverrides): Promise<BigNumber>;

    Oracle(overrides?: CallOverrides): Promise<BigNumber>;

    OracleHub(overrides?: CallOverrides): Promise<BigNumber>;

    OracleSpoke(overrides?: CallOverrides): Promise<BigNumber>;

    Registry(overrides?: CallOverrides): Promise<BigNumber>;

    SkinnyOptimisticOracle(overrides?: CallOverrides): Promise<BigNumber>;

    Store(overrides?: CallOverrides): Promise<BigNumber>;
  };

  populateTransaction: {
    Bridge(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    ChildMessenger(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    CollateralWhitelist(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    FinancialContractsAdmin(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    GenericHandler(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    IdentifierWhitelist(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    OptimisticOracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    OptimisticOracleV2(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    OptimisticOracleV3(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    Oracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    OracleHub(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    OracleSpoke(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    Registry(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    SkinnyOptimisticOracle(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    Store(overrides?: CallOverrides): Promise<PopulatedTransaction>;
  };
}
