/* 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 interface MarketRegistryInterface extends Interface {
  getFunction(
    nameOrSignature:
      | "CURRENT_CODE_VERSION"
      | "MAX_MARKET_FEE_PERCENT"
      | "attestBorrower(uint256,address,uint256,uint8,bytes32,bytes32)"
      | "attestBorrower(uint256,address,uint256)"
      | "attestLender(uint256,address,uint256,uint8,bytes32,bytes32)"
      | "attestLender(uint256,address,uint256)"
      | "borrowerAttestationSchemaId"
      | "borrowerExitMarket"
      | "closeMarket"
      | "createMarket(address,uint32,uint32,uint32,uint16,bool,bool,uint8,uint8,string)"
      | "createMarket(address,uint32,uint32,uint32,uint16,bool,bool,string)"
      | "getAllVerifiedBorrowersForMarket"
      | "getAllVerifiedLendersForMarket"
      | "getBidExpirationTime"
      | "getMarketAttestationRequirements"
      | "getMarketData"
      | "getMarketFeeRecipient"
      | "getMarketOwner"
      | "getMarketURI"
      | "getMarketplaceFee"
      | "getPaymentCycle"
      | "getPaymentDefaultDuration"
      | "getPaymentType"
      | "initialize"
      | "isMarketClosed"
      | "isMarketOpen"
      | "isPayable"
      | "isVerifiedBorrower"
      | "isVerifiedLender"
      | "lenderAttestationSchemaId"
      | "lenderExitMarket"
      | "marketCount"
      | "resolve"
      | "revokeBorrower"
      | "revokeLender"
      | "setBidExpirationTime"
      | "setBorrowerAttestationRequired"
      | "setLenderAttestationRequired"
      | "setMarketFeePercent"
      | "setMarketFeeRecipient"
      | "setMarketPaymentType"
      | "setMarketURI"
      | "setPaymentCycle"
      | "setPaymentDefaultDuration"
      | "tellerAS"
      | "transferMarketOwnership"
      | "updateMarketSettings"
      | "version"
  ): FunctionFragment;

  getEvent(
    nameOrSignatureOrTopic:
      | "BorrowerAttestation"
      | "BorrowerExitMarket"
      | "BorrowerRevocation"
      | "Initialized"
      | "LenderAttestation"
      | "LenderExitMarket"
      | "LenderRevocation"
      | "MarketClosed"
      | "MarketCreated"
      | "SetBidExpirationTime"
      | "SetMarketBorrowerAttestation"
      | "SetMarketFee"
      | "SetMarketFeeRecipient"
      | "SetMarketLenderAttestation"
      | "SetMarketOwner"
      | "SetMarketPaymentType"
      | "SetMarketURI"
      | "SetPaymentCycle"
      | "SetPaymentCycleDuration"
      | "SetPaymentDefaultDuration"
  ): EventFragment;

  encodeFunctionData(
    functionFragment: "CURRENT_CODE_VERSION",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "MAX_MARKET_FEE_PERCENT",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "attestBorrower(uint256,address,uint256,uint8,bytes32,bytes32)",
    values: [
      BigNumberish,
      AddressLike,
      BigNumberish,
      BigNumberish,
      BytesLike,
      BytesLike
    ]
  ): string;
  encodeFunctionData(
    functionFragment: "attestBorrower(uint256,address,uint256)",
    values: [BigNumberish, AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "attestLender(uint256,address,uint256,uint8,bytes32,bytes32)",
    values: [
      BigNumberish,
      AddressLike,
      BigNumberish,
      BigNumberish,
      BytesLike,
      BytesLike
    ]
  ): string;
  encodeFunctionData(
    functionFragment: "attestLender(uint256,address,uint256)",
    values: [BigNumberish, AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "borrowerAttestationSchemaId",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "borrowerExitMarket",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "closeMarket",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "createMarket(address,uint32,uint32,uint32,uint16,bool,bool,uint8,uint8,string)",
    values: [
      AddressLike,
      BigNumberish,
      BigNumberish,
      BigNumberish,
      BigNumberish,
      boolean,
      boolean,
      BigNumberish,
      BigNumberish,
      string
    ]
  ): string;
  encodeFunctionData(
    functionFragment: "createMarket(address,uint32,uint32,uint32,uint16,bool,bool,string)",
    values: [
      AddressLike,
      BigNumberish,
      BigNumberish,
      BigNumberish,
      BigNumberish,
      boolean,
      boolean,
      string
    ]
  ): string;
  encodeFunctionData(
    functionFragment: "getAllVerifiedBorrowersForMarket",
    values: [BigNumberish, BigNumberish, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getAllVerifiedLendersForMarket",
    values: [BigNumberish, BigNumberish, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getBidExpirationTime",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getMarketAttestationRequirements",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getMarketData",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getMarketFeeRecipient",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getMarketOwner",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getMarketURI",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getMarketplaceFee",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getPaymentCycle",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getPaymentDefaultDuration",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getPaymentType",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "initialize",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "isMarketClosed",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "isMarketOpen",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(functionFragment: "isPayable", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "isVerifiedBorrower",
    values: [BigNumberish, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "isVerifiedLender",
    values: [BigNumberish, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "lenderAttestationSchemaId",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "lenderExitMarket",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "marketCount",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "resolve",
    values: [AddressLike, BytesLike, BytesLike, BigNumberish, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "revokeBorrower",
    values: [BigNumberish, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "revokeLender",
    values: [BigNumberish, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setBidExpirationTime",
    values: [BigNumberish, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setBorrowerAttestationRequired",
    values: [BigNumberish, boolean]
  ): string;
  encodeFunctionData(
    functionFragment: "setLenderAttestationRequired",
    values: [BigNumberish, boolean]
  ): string;
  encodeFunctionData(
    functionFragment: "setMarketFeePercent",
    values: [BigNumberish, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setMarketFeeRecipient",
    values: [BigNumberish, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setMarketPaymentType",
    values: [BigNumberish, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setMarketURI",
    values: [BigNumberish, string]
  ): string;
  encodeFunctionData(
    functionFragment: "setPaymentCycle",
    values: [BigNumberish, BigNumberish, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setPaymentDefaultDuration",
    values: [BigNumberish, BigNumberish]
  ): string;
  encodeFunctionData(functionFragment: "tellerAS", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "transferMarketOwnership",
    values: [BigNumberish, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "updateMarketSettings",
    values: [
      BigNumberish,
      BigNumberish,
      BigNumberish,
      BigNumberish,
      BigNumberish,
      BigNumberish,
      BigNumberish,
      boolean,
      boolean,
      string
    ]
  ): string;
  encodeFunctionData(functionFragment: "version", values?: undefined): string;

  decodeFunctionResult(
    functionFragment: "CURRENT_CODE_VERSION",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "MAX_MARKET_FEE_PERCENT",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "attestBorrower(uint256,address,uint256,uint8,bytes32,bytes32)",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "attestBorrower(uint256,address,uint256)",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "attestLender(uint256,address,uint256,uint8,bytes32,bytes32)",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "attestLender(uint256,address,uint256)",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "borrowerAttestationSchemaId",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "borrowerExitMarket",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "closeMarket",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "createMarket(address,uint32,uint32,uint32,uint16,bool,bool,uint8,uint8,string)",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "createMarket(address,uint32,uint32,uint32,uint16,bool,bool,string)",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getAllVerifiedBorrowersForMarket",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getAllVerifiedLendersForMarket",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getBidExpirationTime",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getMarketAttestationRequirements",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getMarketData",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getMarketFeeRecipient",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getMarketOwner",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getMarketURI",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getMarketplaceFee",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getPaymentCycle",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getPaymentDefaultDuration",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getPaymentType",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "isMarketClosed",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "isMarketOpen",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "isPayable", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "isVerifiedBorrower",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "isVerifiedLender",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "lenderAttestationSchemaId",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "lenderExitMarket",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "marketCount",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "resolve", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "revokeBorrower",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "revokeLender",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setBidExpirationTime",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setBorrowerAttestationRequired",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setLenderAttestationRequired",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setMarketFeePercent",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setMarketFeeRecipient",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setMarketPaymentType",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setMarketURI",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setPaymentCycle",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setPaymentDefaultDuration",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "tellerAS", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "transferMarketOwnership",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "updateMarketSettings",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "version", data: BytesLike): Result;
}

export namespace BorrowerAttestationEvent {
  export type InputTuple = [marketId: BigNumberish, borrower: AddressLike];
  export type OutputTuple = [marketId: bigint, borrower: string];
  export interface OutputObject {
    marketId: bigint;
    borrower: 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 BorrowerExitMarketEvent {
  export type InputTuple = [marketId: BigNumberish, borrower: AddressLike];
  export type OutputTuple = [marketId: bigint, borrower: string];
  export interface OutputObject {
    marketId: bigint;
    borrower: 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 BorrowerRevocationEvent {
  export type InputTuple = [marketId: BigNumberish, borrower: AddressLike];
  export type OutputTuple = [marketId: bigint, borrower: string];
  export interface OutputObject {
    marketId: bigint;
    borrower: 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 InitializedEvent {
  export type InputTuple = [version: BigNumberish];
  export type OutputTuple = [version: bigint];
  export interface OutputObject {
    version: 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 LenderAttestationEvent {
  export type InputTuple = [marketId: BigNumberish, lender: AddressLike];
  export type OutputTuple = [marketId: bigint, lender: string];
  export interface OutputObject {
    marketId: bigint;
    lender: 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 LenderExitMarketEvent {
  export type InputTuple = [marketId: BigNumberish, lender: AddressLike];
  export type OutputTuple = [marketId: bigint, lender: string];
  export interface OutputObject {
    marketId: bigint;
    lender: 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 LenderRevocationEvent {
  export type InputTuple = [marketId: BigNumberish, lender: AddressLike];
  export type OutputTuple = [marketId: bigint, lender: string];
  export interface OutputObject {
    marketId: bigint;
    lender: 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 MarketClosedEvent {
  export type InputTuple = [marketId: BigNumberish];
  export type OutputTuple = [marketId: bigint];
  export interface OutputObject {
    marketId: 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 MarketCreatedEvent {
  export type InputTuple = [owner: AddressLike, marketId: BigNumberish];
  export type OutputTuple = [owner: string, marketId: bigint];
  export interface OutputObject {
    owner: string;
    marketId: 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 SetBidExpirationTimeEvent {
  export type InputTuple = [marketId: BigNumberish, duration: BigNumberish];
  export type OutputTuple = [marketId: bigint, duration: bigint];
  export interface OutputObject {
    marketId: bigint;
    duration: 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 SetMarketBorrowerAttestationEvent {
  export type InputTuple = [marketId: BigNumberish, required: boolean];
  export type OutputTuple = [marketId: bigint, required: boolean];
  export interface OutputObject {
    marketId: bigint;
    required: boolean;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace SetMarketFeeEvent {
  export type InputTuple = [marketId: BigNumberish, feePct: BigNumberish];
  export type OutputTuple = [marketId: bigint, feePct: bigint];
  export interface OutputObject {
    marketId: bigint;
    feePct: 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 SetMarketFeeRecipientEvent {
  export type InputTuple = [marketId: BigNumberish, newRecipient: AddressLike];
  export type OutputTuple = [marketId: bigint, newRecipient: string];
  export interface OutputObject {
    marketId: bigint;
    newRecipient: 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 SetMarketLenderAttestationEvent {
  export type InputTuple = [marketId: BigNumberish, required: boolean];
  export type OutputTuple = [marketId: bigint, required: boolean];
  export interface OutputObject {
    marketId: bigint;
    required: boolean;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

export namespace SetMarketOwnerEvent {
  export type InputTuple = [marketId: BigNumberish, newOwner: AddressLike];
  export type OutputTuple = [marketId: bigint, newOwner: string];
  export interface OutputObject {
    marketId: bigint;
    newOwner: 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 SetMarketPaymentTypeEvent {
  export type InputTuple = [marketId: BigNumberish, paymentType: BigNumberish];
  export type OutputTuple = [marketId: bigint, paymentType: bigint];
  export interface OutputObject {
    marketId: bigint;
    paymentType: 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 SetMarketURIEvent {
  export type InputTuple = [marketId: BigNumberish, uri: string];
  export type OutputTuple = [marketId: bigint, uri: string];
  export interface OutputObject {
    marketId: bigint;
    uri: 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 SetPaymentCycleEvent {
  export type InputTuple = [
    marketId: BigNumberish,
    paymentCycleType: BigNumberish,
    value: BigNumberish
  ];
  export type OutputTuple = [
    marketId: bigint,
    paymentCycleType: bigint,
    value: bigint
  ];
  export interface OutputObject {
    marketId: bigint;
    paymentCycleType: bigint;
    value: 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 SetPaymentCycleDurationEvent {
  export type InputTuple = [marketId: BigNumberish, duration: BigNumberish];
  export type OutputTuple = [marketId: bigint, duration: bigint];
  export interface OutputObject {
    marketId: bigint;
    duration: 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 SetPaymentDefaultDurationEvent {
  export type InputTuple = [marketId: BigNumberish, duration: BigNumberish];
  export type OutputTuple = [marketId: bigint, duration: bigint];
  export interface OutputObject {
    marketId: bigint;
    duration: bigint;
  }
  export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
  export type Filter = TypedDeferredTopicFilter<Event>;
  export type Log = TypedEventLog<Event>;
  export type LogDescription = TypedLogDescription<Event>;
}

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

  interface: MarketRegistryInterface;

  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>;

  CURRENT_CODE_VERSION: TypedContractMethod<[], [bigint], "view">;

  MAX_MARKET_FEE_PERCENT: TypedContractMethod<[], [bigint], "view">;

  "attestBorrower(uint256,address,uint256,uint8,bytes32,bytes32)": TypedContractMethod<
    [
      _marketId: BigNumberish,
      _borrowerAddress: AddressLike,
      _expirationTime: BigNumberish,
      _v: BigNumberish,
      _r: BytesLike,
      _s: BytesLike
    ],
    [void],
    "nonpayable"
  >;

  "attestBorrower(uint256,address,uint256)": TypedContractMethod<
    [
      _marketId: BigNumberish,
      _borrowerAddress: AddressLike,
      _expirationTime: BigNumberish
    ],
    [void],
    "nonpayable"
  >;

  "attestLender(uint256,address,uint256,uint8,bytes32,bytes32)": TypedContractMethod<
    [
      _marketId: BigNumberish,
      _lenderAddress: AddressLike,
      _expirationTime: BigNumberish,
      _v: BigNumberish,
      _r: BytesLike,
      _s: BytesLike
    ],
    [void],
    "nonpayable"
  >;

  "attestLender(uint256,address,uint256)": TypedContractMethod<
    [
      _marketId: BigNumberish,
      _lenderAddress: AddressLike,
      _expirationTime: BigNumberish
    ],
    [void],
    "nonpayable"
  >;

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

  borrowerExitMarket: TypedContractMethod<
    [_marketId: BigNumberish],
    [void],
    "nonpayable"
  >;

  closeMarket: TypedContractMethod<
    [_marketId: BigNumberish],
    [void],
    "nonpayable"
  >;

  "createMarket(address,uint32,uint32,uint32,uint16,bool,bool,uint8,uint8,string)": TypedContractMethod<
    [
      _initialOwner: AddressLike,
      _paymentCycleDuration: BigNumberish,
      _paymentDefaultDuration: BigNumberish,
      _bidExpirationTime: BigNumberish,
      _feePercent: BigNumberish,
      _requireLenderAttestation: boolean,
      _requireBorrowerAttestation: boolean,
      _paymentType: BigNumberish,
      _paymentCycleType: BigNumberish,
      _uri: string
    ],
    [bigint],
    "nonpayable"
  >;

  "createMarket(address,uint32,uint32,uint32,uint16,bool,bool,string)": TypedContractMethod<
    [
      _initialOwner: AddressLike,
      _paymentCycleDuration: BigNumberish,
      _paymentDefaultDuration: BigNumberish,
      _bidExpirationTime: BigNumberish,
      _feePercent: BigNumberish,
      _requireLenderAttestation: boolean,
      _requireBorrowerAttestation: boolean,
      _uri: string
    ],
    [bigint],
    "nonpayable"
  >;

  getAllVerifiedBorrowersForMarket: TypedContractMethod<
    [_marketId: BigNumberish, _page: BigNumberish, _perPage: BigNumberish],
    [string[]],
    "view"
  >;

  getAllVerifiedLendersForMarket: TypedContractMethod<
    [_marketId: BigNumberish, _page: BigNumberish, _perPage: BigNumberish],
    [string[]],
    "view"
  >;

  getBidExpirationTime: TypedContractMethod<
    [marketId: BigNumberish],
    [bigint],
    "view"
  >;

  getMarketAttestationRequirements: TypedContractMethod<
    [_marketId: BigNumberish],
    [
      [boolean, boolean] & {
        lenderAttestationRequired: boolean;
        borrowerAttestationRequired: boolean;
      }
    ],
    "view"
  >;

  getMarketData: TypedContractMethod<
    [_marketId: BigNumberish],
    [
      [string, bigint, bigint, bigint, string, bigint, boolean] & {
        owner: string;
        paymentCycleDuration: bigint;
        paymentDefaultDuration: bigint;
        loanExpirationTime: bigint;
        metadataURI: string;
        marketplaceFeePercent: bigint;
        lenderAttestationRequired: boolean;
      }
    ],
    "view"
  >;

  getMarketFeeRecipient: TypedContractMethod<
    [_marketId: BigNumberish],
    [string],
    "view"
  >;

  getMarketOwner: TypedContractMethod<
    [_marketId: BigNumberish],
    [string],
    "view"
  >;

  getMarketURI: TypedContractMethod<
    [_marketId: BigNumberish],
    [string],
    "view"
  >;

  getMarketplaceFee: TypedContractMethod<
    [_marketId: BigNumberish],
    [bigint],
    "view"
  >;

  getPaymentCycle: TypedContractMethod<
    [_marketId: BigNumberish],
    [[bigint, bigint]],
    "view"
  >;

  getPaymentDefaultDuration: TypedContractMethod<
    [_marketId: BigNumberish],
    [bigint],
    "view"
  >;

  getPaymentType: TypedContractMethod<
    [_marketId: BigNumberish],
    [bigint],
    "view"
  >;

  initialize: TypedContractMethod<
    [_tellerAS: AddressLike],
    [void],
    "nonpayable"
  >;

  isMarketClosed: TypedContractMethod<
    [_marketId: BigNumberish],
    [boolean],
    "view"
  >;

  isMarketOpen: TypedContractMethod<
    [_marketId: BigNumberish],
    [boolean],
    "view"
  >;

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

  isVerifiedBorrower: TypedContractMethod<
    [_marketId: BigNumberish, _borrowerAddress: AddressLike],
    [[boolean, string] & { isVerified_: boolean; uuid_: string }],
    "view"
  >;

  isVerifiedLender: TypedContractMethod<
    [_marketId: BigNumberish, _lenderAddress: AddressLike],
    [[boolean, string] & { isVerified_: boolean; uuid_: string }],
    "view"
  >;

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

  lenderExitMarket: TypedContractMethod<
    [_marketId: BigNumberish],
    [void],
    "nonpayable"
  >;

  marketCount: TypedContractMethod<[], [bigint], "view">;

  resolve: TypedContractMethod<
    [
      recipient: AddressLike,
      schema: BytesLike,
      data: BytesLike,
      arg3: BigNumberish,
      attestor: AddressLike
    ],
    [boolean],
    "payable"
  >;

  revokeBorrower: TypedContractMethod<
    [_marketId: BigNumberish, _borrowerAddress: AddressLike],
    [void],
    "nonpayable"
  >;

  revokeLender: TypedContractMethod<
    [_marketId: BigNumberish, _lenderAddress: AddressLike],
    [void],
    "nonpayable"
  >;

  setBidExpirationTime: TypedContractMethod<
    [_marketId: BigNumberish, _duration: BigNumberish],
    [void],
    "nonpayable"
  >;

  setBorrowerAttestationRequired: TypedContractMethod<
    [_marketId: BigNumberish, _required: boolean],
    [void],
    "nonpayable"
  >;

  setLenderAttestationRequired: TypedContractMethod<
    [_marketId: BigNumberish, _required: boolean],
    [void],
    "nonpayable"
  >;

  setMarketFeePercent: TypedContractMethod<
    [_marketId: BigNumberish, _newPercent: BigNumberish],
    [void],
    "nonpayable"
  >;

  setMarketFeeRecipient: TypedContractMethod<
    [_marketId: BigNumberish, _recipient: AddressLike],
    [void],
    "nonpayable"
  >;

  setMarketPaymentType: TypedContractMethod<
    [_marketId: BigNumberish, _newPaymentType: BigNumberish],
    [void],
    "nonpayable"
  >;

  setMarketURI: TypedContractMethod<
    [_marketId: BigNumberish, _uri: string],
    [void],
    "nonpayable"
  >;

  setPaymentCycle: TypedContractMethod<
    [
      _marketId: BigNumberish,
      _paymentCycleType: BigNumberish,
      _duration: BigNumberish
    ],
    [void],
    "nonpayable"
  >;

  setPaymentDefaultDuration: TypedContractMethod<
    [_marketId: BigNumberish, _duration: BigNumberish],
    [void],
    "nonpayable"
  >;

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

  transferMarketOwnership: TypedContractMethod<
    [_marketId: BigNumberish, _newOwner: AddressLike],
    [void],
    "nonpayable"
  >;

  updateMarketSettings: TypedContractMethod<
    [
      _marketId: BigNumberish,
      _paymentCycleDuration: BigNumberish,
      _newPaymentType: BigNumberish,
      _paymentCycleType: BigNumberish,
      _paymentDefaultDuration: BigNumberish,
      _bidExpirationTime: BigNumberish,
      _feePercent: BigNumberish,
      _borrowerAttestationRequired: boolean,
      _lenderAttestationRequired: boolean,
      _metadataURI: string
    ],
    [void],
    "nonpayable"
  >;

  version: TypedContractMethod<[], [bigint], "view">;

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

  getFunction(
    nameOrSignature: "CURRENT_CODE_VERSION"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "MAX_MARKET_FEE_PERCENT"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "attestBorrower(uint256,address,uint256,uint8,bytes32,bytes32)"
  ): TypedContractMethod<
    [
      _marketId: BigNumberish,
      _borrowerAddress: AddressLike,
      _expirationTime: BigNumberish,
      _v: BigNumberish,
      _r: BytesLike,
      _s: BytesLike
    ],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "attestBorrower(uint256,address,uint256)"
  ): TypedContractMethod<
    [
      _marketId: BigNumberish,
      _borrowerAddress: AddressLike,
      _expirationTime: BigNumberish
    ],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "attestLender(uint256,address,uint256,uint8,bytes32,bytes32)"
  ): TypedContractMethod<
    [
      _marketId: BigNumberish,
      _lenderAddress: AddressLike,
      _expirationTime: BigNumberish,
      _v: BigNumberish,
      _r: BytesLike,
      _s: BytesLike
    ],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "attestLender(uint256,address,uint256)"
  ): TypedContractMethod<
    [
      _marketId: BigNumberish,
      _lenderAddress: AddressLike,
      _expirationTime: BigNumberish
    ],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "borrowerAttestationSchemaId"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "borrowerExitMarket"
  ): TypedContractMethod<[_marketId: BigNumberish], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "closeMarket"
  ): TypedContractMethod<[_marketId: BigNumberish], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "createMarket(address,uint32,uint32,uint32,uint16,bool,bool,uint8,uint8,string)"
  ): TypedContractMethod<
    [
      _initialOwner: AddressLike,
      _paymentCycleDuration: BigNumberish,
      _paymentDefaultDuration: BigNumberish,
      _bidExpirationTime: BigNumberish,
      _feePercent: BigNumberish,
      _requireLenderAttestation: boolean,
      _requireBorrowerAttestation: boolean,
      _paymentType: BigNumberish,
      _paymentCycleType: BigNumberish,
      _uri: string
    ],
    [bigint],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "createMarket(address,uint32,uint32,uint32,uint16,bool,bool,string)"
  ): TypedContractMethod<
    [
      _initialOwner: AddressLike,
      _paymentCycleDuration: BigNumberish,
      _paymentDefaultDuration: BigNumberish,
      _bidExpirationTime: BigNumberish,
      _feePercent: BigNumberish,
      _requireLenderAttestation: boolean,
      _requireBorrowerAttestation: boolean,
      _uri: string
    ],
    [bigint],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "getAllVerifiedBorrowersForMarket"
  ): TypedContractMethod<
    [_marketId: BigNumberish, _page: BigNumberish, _perPage: BigNumberish],
    [string[]],
    "view"
  >;
  getFunction(
    nameOrSignature: "getAllVerifiedLendersForMarket"
  ): TypedContractMethod<
    [_marketId: BigNumberish, _page: BigNumberish, _perPage: BigNumberish],
    [string[]],
    "view"
  >;
  getFunction(
    nameOrSignature: "getBidExpirationTime"
  ): TypedContractMethod<[marketId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "getMarketAttestationRequirements"
  ): TypedContractMethod<
    [_marketId: BigNumberish],
    [
      [boolean, boolean] & {
        lenderAttestationRequired: boolean;
        borrowerAttestationRequired: boolean;
      }
    ],
    "view"
  >;
  getFunction(
    nameOrSignature: "getMarketData"
  ): TypedContractMethod<
    [_marketId: BigNumberish],
    [
      [string, bigint, bigint, bigint, string, bigint, boolean] & {
        owner: string;
        paymentCycleDuration: bigint;
        paymentDefaultDuration: bigint;
        loanExpirationTime: bigint;
        metadataURI: string;
        marketplaceFeePercent: bigint;
        lenderAttestationRequired: boolean;
      }
    ],
    "view"
  >;
  getFunction(
    nameOrSignature: "getMarketFeeRecipient"
  ): TypedContractMethod<[_marketId: BigNumberish], [string], "view">;
  getFunction(
    nameOrSignature: "getMarketOwner"
  ): TypedContractMethod<[_marketId: BigNumberish], [string], "view">;
  getFunction(
    nameOrSignature: "getMarketURI"
  ): TypedContractMethod<[_marketId: BigNumberish], [string], "view">;
  getFunction(
    nameOrSignature: "getMarketplaceFee"
  ): TypedContractMethod<[_marketId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "getPaymentCycle"
  ): TypedContractMethod<[_marketId: BigNumberish], [[bigint, bigint]], "view">;
  getFunction(
    nameOrSignature: "getPaymentDefaultDuration"
  ): TypedContractMethod<[_marketId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "getPaymentType"
  ): TypedContractMethod<[_marketId: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "initialize"
  ): TypedContractMethod<[_tellerAS: AddressLike], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "isMarketClosed"
  ): TypedContractMethod<[_marketId: BigNumberish], [boolean], "view">;
  getFunction(
    nameOrSignature: "isMarketOpen"
  ): TypedContractMethod<[_marketId: BigNumberish], [boolean], "view">;
  getFunction(
    nameOrSignature: "isPayable"
  ): TypedContractMethod<[], [boolean], "view">;
  getFunction(
    nameOrSignature: "isVerifiedBorrower"
  ): TypedContractMethod<
    [_marketId: BigNumberish, _borrowerAddress: AddressLike],
    [[boolean, string] & { isVerified_: boolean; uuid_: string }],
    "view"
  >;
  getFunction(
    nameOrSignature: "isVerifiedLender"
  ): TypedContractMethod<
    [_marketId: BigNumberish, _lenderAddress: AddressLike],
    [[boolean, string] & { isVerified_: boolean; uuid_: string }],
    "view"
  >;
  getFunction(
    nameOrSignature: "lenderAttestationSchemaId"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "lenderExitMarket"
  ): TypedContractMethod<[_marketId: BigNumberish], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "marketCount"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "resolve"
  ): TypedContractMethod<
    [
      recipient: AddressLike,
      schema: BytesLike,
      data: BytesLike,
      arg3: BigNumberish,
      attestor: AddressLike
    ],
    [boolean],
    "payable"
  >;
  getFunction(
    nameOrSignature: "revokeBorrower"
  ): TypedContractMethod<
    [_marketId: BigNumberish, _borrowerAddress: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "revokeLender"
  ): TypedContractMethod<
    [_marketId: BigNumberish, _lenderAddress: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setBidExpirationTime"
  ): TypedContractMethod<
    [_marketId: BigNumberish, _duration: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setBorrowerAttestationRequired"
  ): TypedContractMethod<
    [_marketId: BigNumberish, _required: boolean],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setLenderAttestationRequired"
  ): TypedContractMethod<
    [_marketId: BigNumberish, _required: boolean],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setMarketFeePercent"
  ): TypedContractMethod<
    [_marketId: BigNumberish, _newPercent: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setMarketFeeRecipient"
  ): TypedContractMethod<
    [_marketId: BigNumberish, _recipient: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setMarketPaymentType"
  ): TypedContractMethod<
    [_marketId: BigNumberish, _newPaymentType: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setMarketURI"
  ): TypedContractMethod<
    [_marketId: BigNumberish, _uri: string],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setPaymentCycle"
  ): TypedContractMethod<
    [
      _marketId: BigNumberish,
      _paymentCycleType: BigNumberish,
      _duration: BigNumberish
    ],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setPaymentDefaultDuration"
  ): TypedContractMethod<
    [_marketId: BigNumberish, _duration: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "tellerAS"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "transferMarketOwnership"
  ): TypedContractMethod<
    [_marketId: BigNumberish, _newOwner: AddressLike],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "updateMarketSettings"
  ): TypedContractMethod<
    [
      _marketId: BigNumberish,
      _paymentCycleDuration: BigNumberish,
      _newPaymentType: BigNumberish,
      _paymentCycleType: BigNumberish,
      _paymentDefaultDuration: BigNumberish,
      _bidExpirationTime: BigNumberish,
      _feePercent: BigNumberish,
      _borrowerAttestationRequired: boolean,
      _lenderAttestationRequired: boolean,
      _metadataURI: string
    ],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "version"
  ): TypedContractMethod<[], [bigint], "view">;

  getEvent(
    key: "BorrowerAttestation"
  ): TypedContractEvent<
    BorrowerAttestationEvent.InputTuple,
    BorrowerAttestationEvent.OutputTuple,
    BorrowerAttestationEvent.OutputObject
  >;
  getEvent(
    key: "BorrowerExitMarket"
  ): TypedContractEvent<
    BorrowerExitMarketEvent.InputTuple,
    BorrowerExitMarketEvent.OutputTuple,
    BorrowerExitMarketEvent.OutputObject
  >;
  getEvent(
    key: "BorrowerRevocation"
  ): TypedContractEvent<
    BorrowerRevocationEvent.InputTuple,
    BorrowerRevocationEvent.OutputTuple,
    BorrowerRevocationEvent.OutputObject
  >;
  getEvent(
    key: "Initialized"
  ): TypedContractEvent<
    InitializedEvent.InputTuple,
    InitializedEvent.OutputTuple,
    InitializedEvent.OutputObject
  >;
  getEvent(
    key: "LenderAttestation"
  ): TypedContractEvent<
    LenderAttestationEvent.InputTuple,
    LenderAttestationEvent.OutputTuple,
    LenderAttestationEvent.OutputObject
  >;
  getEvent(
    key: "LenderExitMarket"
  ): TypedContractEvent<
    LenderExitMarketEvent.InputTuple,
    LenderExitMarketEvent.OutputTuple,
    LenderExitMarketEvent.OutputObject
  >;
  getEvent(
    key: "LenderRevocation"
  ): TypedContractEvent<
    LenderRevocationEvent.InputTuple,
    LenderRevocationEvent.OutputTuple,
    LenderRevocationEvent.OutputObject
  >;
  getEvent(
    key: "MarketClosed"
  ): TypedContractEvent<
    MarketClosedEvent.InputTuple,
    MarketClosedEvent.OutputTuple,
    MarketClosedEvent.OutputObject
  >;
  getEvent(
    key: "MarketCreated"
  ): TypedContractEvent<
    MarketCreatedEvent.InputTuple,
    MarketCreatedEvent.OutputTuple,
    MarketCreatedEvent.OutputObject
  >;
  getEvent(
    key: "SetBidExpirationTime"
  ): TypedContractEvent<
    SetBidExpirationTimeEvent.InputTuple,
    SetBidExpirationTimeEvent.OutputTuple,
    SetBidExpirationTimeEvent.OutputObject
  >;
  getEvent(
    key: "SetMarketBorrowerAttestation"
  ): TypedContractEvent<
    SetMarketBorrowerAttestationEvent.InputTuple,
    SetMarketBorrowerAttestationEvent.OutputTuple,
    SetMarketBorrowerAttestationEvent.OutputObject
  >;
  getEvent(
    key: "SetMarketFee"
  ): TypedContractEvent<
    SetMarketFeeEvent.InputTuple,
    SetMarketFeeEvent.OutputTuple,
    SetMarketFeeEvent.OutputObject
  >;
  getEvent(
    key: "SetMarketFeeRecipient"
  ): TypedContractEvent<
    SetMarketFeeRecipientEvent.InputTuple,
    SetMarketFeeRecipientEvent.OutputTuple,
    SetMarketFeeRecipientEvent.OutputObject
  >;
  getEvent(
    key: "SetMarketLenderAttestation"
  ): TypedContractEvent<
    SetMarketLenderAttestationEvent.InputTuple,
    SetMarketLenderAttestationEvent.OutputTuple,
    SetMarketLenderAttestationEvent.OutputObject
  >;
  getEvent(
    key: "SetMarketOwner"
  ): TypedContractEvent<
    SetMarketOwnerEvent.InputTuple,
    SetMarketOwnerEvent.OutputTuple,
    SetMarketOwnerEvent.OutputObject
  >;
  getEvent(
    key: "SetMarketPaymentType"
  ): TypedContractEvent<
    SetMarketPaymentTypeEvent.InputTuple,
    SetMarketPaymentTypeEvent.OutputTuple,
    SetMarketPaymentTypeEvent.OutputObject
  >;
  getEvent(
    key: "SetMarketURI"
  ): TypedContractEvent<
    SetMarketURIEvent.InputTuple,
    SetMarketURIEvent.OutputTuple,
    SetMarketURIEvent.OutputObject
  >;
  getEvent(
    key: "SetPaymentCycle"
  ): TypedContractEvent<
    SetPaymentCycleEvent.InputTuple,
    SetPaymentCycleEvent.OutputTuple,
    SetPaymentCycleEvent.OutputObject
  >;
  getEvent(
    key: "SetPaymentCycleDuration"
  ): TypedContractEvent<
    SetPaymentCycleDurationEvent.InputTuple,
    SetPaymentCycleDurationEvent.OutputTuple,
    SetPaymentCycleDurationEvent.OutputObject
  >;
  getEvent(
    key: "SetPaymentDefaultDuration"
  ): TypedContractEvent<
    SetPaymentDefaultDurationEvent.InputTuple,
    SetPaymentDefaultDurationEvent.OutputTuple,
    SetPaymentDefaultDurationEvent.OutputObject
  >;

  filters: {
    "BorrowerAttestation(uint256,address)": TypedContractEvent<
      BorrowerAttestationEvent.InputTuple,
      BorrowerAttestationEvent.OutputTuple,
      BorrowerAttestationEvent.OutputObject
    >;
    BorrowerAttestation: TypedContractEvent<
      BorrowerAttestationEvent.InputTuple,
      BorrowerAttestationEvent.OutputTuple,
      BorrowerAttestationEvent.OutputObject
    >;

    "BorrowerExitMarket(uint256,address)": TypedContractEvent<
      BorrowerExitMarketEvent.InputTuple,
      BorrowerExitMarketEvent.OutputTuple,
      BorrowerExitMarketEvent.OutputObject
    >;
    BorrowerExitMarket: TypedContractEvent<
      BorrowerExitMarketEvent.InputTuple,
      BorrowerExitMarketEvent.OutputTuple,
      BorrowerExitMarketEvent.OutputObject
    >;

    "BorrowerRevocation(uint256,address)": TypedContractEvent<
      BorrowerRevocationEvent.InputTuple,
      BorrowerRevocationEvent.OutputTuple,
      BorrowerRevocationEvent.OutputObject
    >;
    BorrowerRevocation: TypedContractEvent<
      BorrowerRevocationEvent.InputTuple,
      BorrowerRevocationEvent.OutputTuple,
      BorrowerRevocationEvent.OutputObject
    >;

    "Initialized(uint8)": TypedContractEvent<
      InitializedEvent.InputTuple,
      InitializedEvent.OutputTuple,
      InitializedEvent.OutputObject
    >;
    Initialized: TypedContractEvent<
      InitializedEvent.InputTuple,
      InitializedEvent.OutputTuple,
      InitializedEvent.OutputObject
    >;

    "LenderAttestation(uint256,address)": TypedContractEvent<
      LenderAttestationEvent.InputTuple,
      LenderAttestationEvent.OutputTuple,
      LenderAttestationEvent.OutputObject
    >;
    LenderAttestation: TypedContractEvent<
      LenderAttestationEvent.InputTuple,
      LenderAttestationEvent.OutputTuple,
      LenderAttestationEvent.OutputObject
    >;

    "LenderExitMarket(uint256,address)": TypedContractEvent<
      LenderExitMarketEvent.InputTuple,
      LenderExitMarketEvent.OutputTuple,
      LenderExitMarketEvent.OutputObject
    >;
    LenderExitMarket: TypedContractEvent<
      LenderExitMarketEvent.InputTuple,
      LenderExitMarketEvent.OutputTuple,
      LenderExitMarketEvent.OutputObject
    >;

    "LenderRevocation(uint256,address)": TypedContractEvent<
      LenderRevocationEvent.InputTuple,
      LenderRevocationEvent.OutputTuple,
      LenderRevocationEvent.OutputObject
    >;
    LenderRevocation: TypedContractEvent<
      LenderRevocationEvent.InputTuple,
      LenderRevocationEvent.OutputTuple,
      LenderRevocationEvent.OutputObject
    >;

    "MarketClosed(uint256)": TypedContractEvent<
      MarketClosedEvent.InputTuple,
      MarketClosedEvent.OutputTuple,
      MarketClosedEvent.OutputObject
    >;
    MarketClosed: TypedContractEvent<
      MarketClosedEvent.InputTuple,
      MarketClosedEvent.OutputTuple,
      MarketClosedEvent.OutputObject
    >;

    "MarketCreated(address,uint256)": TypedContractEvent<
      MarketCreatedEvent.InputTuple,
      MarketCreatedEvent.OutputTuple,
      MarketCreatedEvent.OutputObject
    >;
    MarketCreated: TypedContractEvent<
      MarketCreatedEvent.InputTuple,
      MarketCreatedEvent.OutputTuple,
      MarketCreatedEvent.OutputObject
    >;

    "SetBidExpirationTime(uint256,uint32)": TypedContractEvent<
      SetBidExpirationTimeEvent.InputTuple,
      SetBidExpirationTimeEvent.OutputTuple,
      SetBidExpirationTimeEvent.OutputObject
    >;
    SetBidExpirationTime: TypedContractEvent<
      SetBidExpirationTimeEvent.InputTuple,
      SetBidExpirationTimeEvent.OutputTuple,
      SetBidExpirationTimeEvent.OutputObject
    >;

    "SetMarketBorrowerAttestation(uint256,bool)": TypedContractEvent<
      SetMarketBorrowerAttestationEvent.InputTuple,
      SetMarketBorrowerAttestationEvent.OutputTuple,
      SetMarketBorrowerAttestationEvent.OutputObject
    >;
    SetMarketBorrowerAttestation: TypedContractEvent<
      SetMarketBorrowerAttestationEvent.InputTuple,
      SetMarketBorrowerAttestationEvent.OutputTuple,
      SetMarketBorrowerAttestationEvent.OutputObject
    >;

    "SetMarketFee(uint256,uint16)": TypedContractEvent<
      SetMarketFeeEvent.InputTuple,
      SetMarketFeeEvent.OutputTuple,
      SetMarketFeeEvent.OutputObject
    >;
    SetMarketFee: TypedContractEvent<
      SetMarketFeeEvent.InputTuple,
      SetMarketFeeEvent.OutputTuple,
      SetMarketFeeEvent.OutputObject
    >;

    "SetMarketFeeRecipient(uint256,address)": TypedContractEvent<
      SetMarketFeeRecipientEvent.InputTuple,
      SetMarketFeeRecipientEvent.OutputTuple,
      SetMarketFeeRecipientEvent.OutputObject
    >;
    SetMarketFeeRecipient: TypedContractEvent<
      SetMarketFeeRecipientEvent.InputTuple,
      SetMarketFeeRecipientEvent.OutputTuple,
      SetMarketFeeRecipientEvent.OutputObject
    >;

    "SetMarketLenderAttestation(uint256,bool)": TypedContractEvent<
      SetMarketLenderAttestationEvent.InputTuple,
      SetMarketLenderAttestationEvent.OutputTuple,
      SetMarketLenderAttestationEvent.OutputObject
    >;
    SetMarketLenderAttestation: TypedContractEvent<
      SetMarketLenderAttestationEvent.InputTuple,
      SetMarketLenderAttestationEvent.OutputTuple,
      SetMarketLenderAttestationEvent.OutputObject
    >;

    "SetMarketOwner(uint256,address)": TypedContractEvent<
      SetMarketOwnerEvent.InputTuple,
      SetMarketOwnerEvent.OutputTuple,
      SetMarketOwnerEvent.OutputObject
    >;
    SetMarketOwner: TypedContractEvent<
      SetMarketOwnerEvent.InputTuple,
      SetMarketOwnerEvent.OutputTuple,
      SetMarketOwnerEvent.OutputObject
    >;

    "SetMarketPaymentType(uint256,uint8)": TypedContractEvent<
      SetMarketPaymentTypeEvent.InputTuple,
      SetMarketPaymentTypeEvent.OutputTuple,
      SetMarketPaymentTypeEvent.OutputObject
    >;
    SetMarketPaymentType: TypedContractEvent<
      SetMarketPaymentTypeEvent.InputTuple,
      SetMarketPaymentTypeEvent.OutputTuple,
      SetMarketPaymentTypeEvent.OutputObject
    >;

    "SetMarketURI(uint256,string)": TypedContractEvent<
      SetMarketURIEvent.InputTuple,
      SetMarketURIEvent.OutputTuple,
      SetMarketURIEvent.OutputObject
    >;
    SetMarketURI: TypedContractEvent<
      SetMarketURIEvent.InputTuple,
      SetMarketURIEvent.OutputTuple,
      SetMarketURIEvent.OutputObject
    >;

    "SetPaymentCycle(uint256,uint8,uint32)": TypedContractEvent<
      SetPaymentCycleEvent.InputTuple,
      SetPaymentCycleEvent.OutputTuple,
      SetPaymentCycleEvent.OutputObject
    >;
    SetPaymentCycle: TypedContractEvent<
      SetPaymentCycleEvent.InputTuple,
      SetPaymentCycleEvent.OutputTuple,
      SetPaymentCycleEvent.OutputObject
    >;

    "SetPaymentCycleDuration(uint256,uint32)": TypedContractEvent<
      SetPaymentCycleDurationEvent.InputTuple,
      SetPaymentCycleDurationEvent.OutputTuple,
      SetPaymentCycleDurationEvent.OutputObject
    >;
    SetPaymentCycleDuration: TypedContractEvent<
      SetPaymentCycleDurationEvent.InputTuple,
      SetPaymentCycleDurationEvent.OutputTuple,
      SetPaymentCycleDurationEvent.OutputObject
    >;

    "SetPaymentDefaultDuration(uint256,uint32)": TypedContractEvent<
      SetPaymentDefaultDurationEvent.InputTuple,
      SetPaymentDefaultDurationEvent.OutputTuple,
      SetPaymentDefaultDurationEvent.OutputObject
    >;
    SetPaymentDefaultDuration: TypedContractEvent<
      SetPaymentDefaultDurationEvent.InputTuple,
      SetPaymentDefaultDurationEvent.OutputTuple,
      SetPaymentDefaultDurationEvent.OutputObject
    >;
  };
}
