/* 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 IUniswapPricingLibrary {
  export type PoolRouteConfigStruct = {
    pool: AddressLike;
    zeroForOne: boolean;
    twapInterval: BigNumberish;
    token0Decimals: BigNumberish;
    token1Decimals: BigNumberish;
  };

  export type PoolRouteConfigStructOutput = [
    pool: string,
    zeroForOne: boolean,
    twapInterval: bigint,
    token0Decimals: bigint,
    token1Decimals: bigint
  ] & {
    pool: string;
    zeroForOne: boolean;
    twapInterval: bigint;
    token0Decimals: bigint;
    token1Decimals: bigint;
  };
}

export declare namespace ILenderCommitmentGroup_V2 {
  export type CommitmentGroupConfigStruct = {
    principalTokenAddress: AddressLike;
    collateralTokenAddress: AddressLike;
    marketId: BigNumberish;
    maxLoanDuration: BigNumberish;
    interestRateLowerBound: BigNumberish;
    interestRateUpperBound: BigNumberish;
    liquidityThresholdPercent: BigNumberish;
    collateralRatio: BigNumberish;
  };

  export type CommitmentGroupConfigStructOutput = [
    principalTokenAddress: string,
    collateralTokenAddress: string,
    marketId: bigint,
    maxLoanDuration: bigint,
    interestRateLowerBound: bigint,
    interestRateUpperBound: bigint,
    liquidityThresholdPercent: bigint,
    collateralRatio: bigint
  ] & {
    principalTokenAddress: string;
    collateralTokenAddress: string;
    marketId: bigint;
    maxLoanDuration: bigint;
    interestRateLowerBound: bigint;
    interestRateUpperBound: bigint;
    liquidityThresholdPercent: bigint;
    collateralRatio: bigint;
  };
}

export interface LenderCommitmentGroup_Pool_V2Interface extends Interface {
  getFunction(
    nameOrSignature:
      | "EXCHANGE_RATE_EXPANSION_FACTOR"
      | "MIN_TWAP_INTERVAL"
      | "ORACLE_MANAGER"
      | "SMART_COMMITMENT_FORWARDER"
      | "STANDARD_EXPANSION_FACTOR"
      | "TELLER_V2"
      | "UNISWAP_EXPANSION_FACTOR"
      | "UNISWAP_PRICING_HELPER"
      | "UNISWAP_V3_FACTORY"
      | "acceptFundsForAcceptBid"
      | "activeBids"
      | "activeBidsAmountDueRemaining"
      | "allowance"
      | "approve"
      | "asset"
      | "balanceOf"
      | "borrowingPaused"
      | "calculateCollateralRequiredToBorrowPrincipal"
      | "calculateCollateralTokensAmountEquivalentToPrincipalTokens"
      | "collateralRatio"
      | "collateralToken"
      | "convertToAssets"
      | "convertToShares"
      | "decimals"
      | "decreaseAllowance"
      | "deposit"
      | "excessivePrincipalTokensRepaid"
      | "getCollateralTokenAddress"
      | "getCollateralTokenType"
      | "getLastUnpausedAt"
      | "getMarketId"
      | "getMaxLoanDuration"
      | "getMinInterestRate"
      | "getMinimumAmountDifferenceToCloseDefaultedLoan"
      | "getPoolUtilizationRatio"
      | "getPrincipalAmountAvailableToBorrow"
      | "getPrincipalForCollateralForPoolRoutes"
      | "getPrincipalTokenAddress"
      | "getSharesLastTransferredAt"
      | "getTokenDifferenceFromLiquidations"
      | "increaseAllowance"
      | "initialize"
      | "interestRateLowerBound"
      | "interestRateUpperBound"
      | "lastUnpausedAt"
      | "liquidateDefaultedLoanWithIncentive"
      | "liquidationAuctionPaused"
      | "liquidityThresholdPercent"
      | "maxDeposit"
      | "maxLoanDuration"
      | "maxMint"
      | "maxPrincipalPerCollateralAmount"
      | "maxRedeem"
      | "maxWithdraw"
      | "mint"
      | "name"
      | "owner"
      | "pauseBorrowing"
      | "pauseLiquidationAuction"
      | "pausePool"
      | "paused"
      | "poolIsActivated"
      | "poolOracleRoutes"
      | "previewDeposit"
      | "previewMint"
      | "previewRedeem"
      | "previewWithdraw"
      | "principalToken"
      | "redeem"
      | "renounceOwnership"
      | "repayLoanCallback"
      | "setMaxPrincipalPerCollateralAmount"
      | "setWithdrawDelayBypassForAccount"
      | "sharesExchangeRate"
      | "sharesExchangeRateInverse"
      | "symbol"
      | "totalAssets"
      | "totalInterestCollected"
      | "totalPrincipalTokensCommitted"
      | "totalPrincipalTokensLended"
      | "totalPrincipalTokensRepaid"
      | "totalPrincipalTokensWithdrawn"
      | "totalSupply"
      | "transfer"
      | "transferFrom"
      | "transferOwnership"
      | "unpauseBorrowing"
      | "unpauseLiquidationAuction"
      | "unpausePool"
      | "withdraw"
      | "withdrawDelayBypassForAccount"
      | "withdrawDelayTimeSeconds"
      | "withdrawFromEscrowVault"
  ): FunctionFragment;

  getEvent(
    nameOrSignatureOrTopic:
      | "Approval"
      | "BorrowerAcceptedFunds"
      | "DefaultedLoanLiquidated"
      | "Deposit"
      | "Initialized"
      | "LoanRepaid"
      | "OwnershipTransferred"
      | "Paused"
      | "PausedBorrowing"
      | "PausedLiquidationAuction"
      | "PoolInitialized"
      | "SharesLastTransferredAt"
      | "Transfer"
      | "Unpaused"
      | "UnpausedBorrowing"
      | "UnpausedLiquidationAuction"
      | "Withdraw"
      | "WithdrawFromEscrow"
  ): EventFragment;

  encodeFunctionData(
    functionFragment: "EXCHANGE_RATE_EXPANSION_FACTOR",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "MIN_TWAP_INTERVAL",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "ORACLE_MANAGER",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "SMART_COMMITMENT_FORWARDER",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "STANDARD_EXPANSION_FACTOR",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "TELLER_V2", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "UNISWAP_EXPANSION_FACTOR",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "UNISWAP_PRICING_HELPER",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "UNISWAP_V3_FACTORY",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "acceptFundsForAcceptBid",
    values: [
      AddressLike,
      BigNumberish,
      BigNumberish,
      BigNumberish,
      AddressLike,
      BigNumberish,
      BigNumberish,
      BigNumberish
    ]
  ): string;
  encodeFunctionData(
    functionFragment: "activeBids",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "activeBidsAmountDueRemaining",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "allowance",
    values: [AddressLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "approve",
    values: [AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(functionFragment: "asset", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "balanceOf",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "borrowingPaused",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "calculateCollateralRequiredToBorrowPrincipal",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "calculateCollateralTokensAmountEquivalentToPrincipalTokens",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "collateralRatio",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "collateralToken",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "convertToAssets",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "convertToShares",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "decreaseAllowance",
    values: [AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "deposit",
    values: [BigNumberish, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "excessivePrincipalTokensRepaid",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getCollateralTokenAddress",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getCollateralTokenType",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getLastUnpausedAt",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getMarketId",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getMaxLoanDuration",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getMinInterestRate",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getMinimumAmountDifferenceToCloseDefaultedLoan",
    values: [BigNumberish, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getPoolUtilizationRatio",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getPrincipalAmountAvailableToBorrow",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getPrincipalForCollateralForPoolRoutes",
    values: [IUniswapPricingLibrary.PoolRouteConfigStruct[]]
  ): string;
  encodeFunctionData(
    functionFragment: "getPrincipalTokenAddress",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getSharesLastTransferredAt",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getTokenDifferenceFromLiquidations",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "increaseAllowance",
    values: [AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "initialize",
    values: [
      ILenderCommitmentGroup_V2.CommitmentGroupConfigStruct,
      IUniswapPricingLibrary.PoolRouteConfigStruct[]
    ]
  ): string;
  encodeFunctionData(
    functionFragment: "interestRateLowerBound",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "interestRateUpperBound",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "lastUnpausedAt",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "liquidateDefaultedLoanWithIncentive",
    values: [BigNumberish, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "liquidationAuctionPaused",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "liquidityThresholdPercent",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "maxDeposit",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "maxLoanDuration",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "maxMint",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "maxPrincipalPerCollateralAmount",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "maxRedeem",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "maxWithdraw",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "mint",
    values: [BigNumberish, AddressLike]
  ): string;
  encodeFunctionData(functionFragment: "name", values?: undefined): string;
  encodeFunctionData(functionFragment: "owner", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "pauseBorrowing",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "pauseLiquidationAuction",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "pausePool", values?: undefined): string;
  encodeFunctionData(functionFragment: "paused", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "poolIsActivated",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "poolOracleRoutes",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "previewDeposit",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "previewMint",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "previewRedeem",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "previewWithdraw",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "principalToken",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "redeem",
    values: [BigNumberish, AddressLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "renounceOwnership",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "repayLoanCallback",
    values: [BigNumberish, AddressLike, BigNumberish, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setMaxPrincipalPerCollateralAmount",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setWithdrawDelayBypassForAccount",
    values: [AddressLike, boolean]
  ): string;
  encodeFunctionData(
    functionFragment: "sharesExchangeRate",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "sharesExchangeRateInverse",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "symbol", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "totalAssets",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "totalInterestCollected",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "totalPrincipalTokensCommitted",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "totalPrincipalTokensLended",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "totalPrincipalTokensRepaid",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "totalPrincipalTokensWithdrawn",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "totalSupply",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "transfer",
    values: [AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "transferFrom",
    values: [AddressLike, AddressLike, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "transferOwnership",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "unpauseBorrowing",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "unpauseLiquidationAuction",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "unpausePool",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "withdraw",
    values: [BigNumberish, AddressLike, AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "withdrawDelayBypassForAccount",
    values: [AddressLike]
  ): string;
  encodeFunctionData(
    functionFragment: "withdrawDelayTimeSeconds",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "withdrawFromEscrowVault",
    values: [BigNumberish]
  ): string;

  decodeFunctionResult(
    functionFragment: "EXCHANGE_RATE_EXPANSION_FACTOR",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "MIN_TWAP_INTERVAL",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "ORACLE_MANAGER",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "SMART_COMMITMENT_FORWARDER",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "STANDARD_EXPANSION_FACTOR",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "TELLER_V2", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "UNISWAP_EXPANSION_FACTOR",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "UNISWAP_PRICING_HELPER",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "UNISWAP_V3_FACTORY",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "acceptFundsForAcceptBid",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "activeBids", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "activeBidsAmountDueRemaining",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "asset", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "borrowingPaused",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "calculateCollateralRequiredToBorrowPrincipal",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "calculateCollateralTokensAmountEquivalentToPrincipalTokens",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "collateralRatio",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "collateralToken",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "convertToAssets",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "convertToShares",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "decreaseAllowance",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "excessivePrincipalTokensRepaid",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getCollateralTokenAddress",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getCollateralTokenType",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getLastUnpausedAt",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getMarketId",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getMaxLoanDuration",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getMinInterestRate",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getMinimumAmountDifferenceToCloseDefaultedLoan",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getPoolUtilizationRatio",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getPrincipalAmountAvailableToBorrow",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getPrincipalForCollateralForPoolRoutes",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getPrincipalTokenAddress",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getSharesLastTransferredAt",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getTokenDifferenceFromLiquidations",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "increaseAllowance",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "interestRateLowerBound",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "interestRateUpperBound",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "lastUnpausedAt",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "liquidateDefaultedLoanWithIncentive",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "liquidationAuctionPaused",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "liquidityThresholdPercent",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "maxDeposit", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "maxLoanDuration",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "maxMint", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "maxPrincipalPerCollateralAmount",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "maxRedeem", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "maxWithdraw",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "pauseBorrowing",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "pauseLiquidationAuction",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "pausePool", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "poolIsActivated",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "poolOracleRoutes",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "previewDeposit",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "previewMint",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "previewRedeem",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "previewWithdraw",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "principalToken",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "redeem", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "renounceOwnership",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "repayLoanCallback",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setMaxPrincipalPerCollateralAmount",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setWithdrawDelayBypassForAccount",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "sharesExchangeRate",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "sharesExchangeRateInverse",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "totalAssets",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "totalInterestCollected",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "totalPrincipalTokensCommitted",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "totalPrincipalTokensLended",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "totalPrincipalTokensRepaid",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "totalPrincipalTokensWithdrawn",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "totalSupply",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "transferFrom",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "transferOwnership",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "unpauseBorrowing",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "unpauseLiquidationAuction",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "unpausePool",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "withdrawDelayBypassForAccount",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "withdrawDelayTimeSeconds",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "withdrawFromEscrowVault",
    data: BytesLike
  ): Result;
}

export namespace ApprovalEvent {
  export type InputTuple = [
    owner: AddressLike,
    spender: AddressLike,
    value: BigNumberish
  ];
  export type OutputTuple = [owner: string, spender: string, value: bigint];
  export interface OutputObject {
    owner: string;
    spender: string;
    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 BorrowerAcceptedFundsEvent {
  export type InputTuple = [
    borrower: AddressLike,
    bidId: BigNumberish,
    principalAmount: BigNumberish,
    collateralAmount: BigNumberish,
    loanDuration: BigNumberish,
    interestRate: BigNumberish
  ];
  export type OutputTuple = [
    borrower: string,
    bidId: bigint,
    principalAmount: bigint,
    collateralAmount: bigint,
    loanDuration: bigint,
    interestRate: bigint
  ];
  export interface OutputObject {
    borrower: string;
    bidId: bigint;
    principalAmount: bigint;
    collateralAmount: bigint;
    loanDuration: bigint;
    interestRate: 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 DefaultedLoanLiquidatedEvent {
  export type InputTuple = [
    bidId: BigNumberish,
    liquidator: AddressLike,
    amountDue: BigNumberish,
    tokenAmountDifference: BigNumberish
  ];
  export type OutputTuple = [
    bidId: bigint,
    liquidator: string,
    amountDue: bigint,
    tokenAmountDifference: bigint
  ];
  export interface OutputObject {
    bidId: bigint;
    liquidator: string;
    amountDue: bigint;
    tokenAmountDifference: 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 DepositEvent {
  export type InputTuple = [
    caller: AddressLike,
    owner: AddressLike,
    assets: BigNumberish,
    shares: BigNumberish
  ];
  export type OutputTuple = [
    caller: string,
    owner: string,
    assets: bigint,
    shares: bigint
  ];
  export interface OutputObject {
    caller: string;
    owner: string;
    assets: bigint;
    shares: 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 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 LoanRepaidEvent {
  export type InputTuple = [
    bidId: BigNumberish,
    repayer: AddressLike,
    principalAmount: BigNumberish,
    interestAmount: BigNumberish,
    totalPrincipalRepaid: BigNumberish,
    totalInterestCollected: BigNumberish
  ];
  export type OutputTuple = [
    bidId: bigint,
    repayer: string,
    principalAmount: bigint,
    interestAmount: bigint,
    totalPrincipalRepaid: bigint,
    totalInterestCollected: bigint
  ];
  export interface OutputObject {
    bidId: bigint;
    repayer: string;
    principalAmount: bigint;
    interestAmount: bigint;
    totalPrincipalRepaid: bigint;
    totalInterestCollected: 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 OwnershipTransferredEvent {
  export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike];
  export type OutputTuple = [previousOwner: string, newOwner: string];
  export interface OutputObject {
    previousOwner: string;
    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 PausedEvent {
  export type InputTuple = [account: AddressLike];
  export type OutputTuple = [account: string];
  export interface OutputObject {
    account: 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 PausedBorrowingEvent {
  export type InputTuple = [account: AddressLike];
  export type OutputTuple = [account: string];
  export interface OutputObject {
    account: 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 PausedLiquidationAuctionEvent {
  export type InputTuple = [account: AddressLike];
  export type OutputTuple = [account: string];
  export interface OutputObject {
    account: 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 PoolInitializedEvent {
  export type InputTuple = [
    principalTokenAddress: AddressLike,
    collateralTokenAddress: AddressLike,
    marketId: BigNumberish,
    maxLoanDuration: BigNumberish,
    interestRateLowerBound: BigNumberish,
    interestRateUpperBound: BigNumberish,
    liquidityThresholdPercent: BigNumberish,
    loanToValuePercent: BigNumberish
  ];
  export type OutputTuple = [
    principalTokenAddress: string,
    collateralTokenAddress: string,
    marketId: bigint,
    maxLoanDuration: bigint,
    interestRateLowerBound: bigint,
    interestRateUpperBound: bigint,
    liquidityThresholdPercent: bigint,
    loanToValuePercent: bigint
  ];
  export interface OutputObject {
    principalTokenAddress: string;
    collateralTokenAddress: string;
    marketId: bigint;
    maxLoanDuration: bigint;
    interestRateLowerBound: bigint;
    interestRateUpperBound: bigint;
    liquidityThresholdPercent: bigint;
    loanToValuePercent: 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 SharesLastTransferredAtEvent {
  export type InputTuple = [
    recipient: AddressLike,
    transferredAt: BigNumberish
  ];
  export type OutputTuple = [recipient: string, transferredAt: bigint];
  export interface OutputObject {
    recipient: string;
    transferredAt: 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 TransferEvent {
  export type InputTuple = [
    from: AddressLike,
    to: AddressLike,
    value: BigNumberish
  ];
  export type OutputTuple = [from: string, to: string, value: bigint];
  export interface OutputObject {
    from: string;
    to: string;
    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 UnpausedEvent {
  export type InputTuple = [account: AddressLike];
  export type OutputTuple = [account: string];
  export interface OutputObject {
    account: 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 UnpausedBorrowingEvent {
  export type InputTuple = [account: AddressLike];
  export type OutputTuple = [account: string];
  export interface OutputObject {
    account: 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 UnpausedLiquidationAuctionEvent {
  export type InputTuple = [account: AddressLike];
  export type OutputTuple = [account: string];
  export interface OutputObject {
    account: 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 WithdrawEvent {
  export type InputTuple = [
    caller: AddressLike,
    receiver: AddressLike,
    owner: AddressLike,
    assets: BigNumberish,
    shares: BigNumberish
  ];
  export type OutputTuple = [
    caller: string,
    receiver: string,
    owner: string,
    assets: bigint,
    shares: bigint
  ];
  export interface OutputObject {
    caller: string;
    receiver: string;
    owner: string;
    assets: bigint;
    shares: 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 WithdrawFromEscrowEvent {
  export type InputTuple = [amount: BigNumberish];
  export type OutputTuple = [amount: bigint];
  export interface OutputObject {
    amount: 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 LenderCommitmentGroup_Pool_V2 extends BaseContract {
  connect(runner?: ContractRunner | null): LenderCommitmentGroup_Pool_V2;
  waitForDeployment(): Promise<this>;

  interface: LenderCommitmentGroup_Pool_V2Interface;

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

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

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

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

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

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

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

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

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

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

  acceptFundsForAcceptBid: TypedContractMethod<
    [
      _borrower: AddressLike,
      _bidId: BigNumberish,
      _principalAmount: BigNumberish,
      _collateralAmount: BigNumberish,
      _collateralTokenAddress: AddressLike,
      _collateralTokenId: BigNumberish,
      _loanDuration: BigNumberish,
      _interestRate: BigNumberish
    ],
    [void],
    "nonpayable"
  >;

  activeBids: TypedContractMethod<[arg0: BigNumberish], [boolean], "view">;

  activeBidsAmountDueRemaining: TypedContractMethod<
    [arg0: BigNumberish],
    [bigint],
    "view"
  >;

  allowance: TypedContractMethod<
    [owner: AddressLike, spender: AddressLike],
    [bigint],
    "view"
  >;

  approve: TypedContractMethod<
    [spender: AddressLike, amount: BigNumberish],
    [boolean],
    "nonpayable"
  >;

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

  balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">;

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

  calculateCollateralRequiredToBorrowPrincipal: TypedContractMethod<
    [_principalAmount: BigNumberish],
    [bigint],
    "view"
  >;

  calculateCollateralTokensAmountEquivalentToPrincipalTokens: TypedContractMethod<
    [principalAmount: BigNumberish],
    [bigint],
    "view"
  >;

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

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

  convertToAssets: TypedContractMethod<
    [shares: BigNumberish],
    [bigint],
    "view"
  >;

  convertToShares: TypedContractMethod<
    [assets: BigNumberish],
    [bigint],
    "view"
  >;

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

  decreaseAllowance: TypedContractMethod<
    [spender: AddressLike, subtractedValue: BigNumberish],
    [boolean],
    "nonpayable"
  >;

  deposit: TypedContractMethod<
    [assets: BigNumberish, receiver: AddressLike],
    [bigint],
    "nonpayable"
  >;

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

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

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

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

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

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

  getMinInterestRate: TypedContractMethod<
    [amountDelta: BigNumberish],
    [bigint],
    "view"
  >;

  getMinimumAmountDifferenceToCloseDefaultedLoan: TypedContractMethod<
    [_amountOwed: BigNumberish, _loanDefaultedTimestamp: BigNumberish],
    [bigint],
    "view"
  >;

  getPoolUtilizationRatio: TypedContractMethod<
    [activeLoansAmountDelta: BigNumberish],
    [bigint],
    "view"
  >;

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

  getPrincipalForCollateralForPoolRoutes: TypedContractMethod<
    [poolOracleRoutes: IUniswapPricingLibrary.PoolRouteConfigStruct[]],
    [bigint],
    "view"
  >;

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

  getSharesLastTransferredAt: TypedContractMethod<
    [owner: AddressLike],
    [bigint],
    "view"
  >;

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

  increaseAllowance: TypedContractMethod<
    [spender: AddressLike, addedValue: BigNumberish],
    [boolean],
    "nonpayable"
  >;

  initialize: TypedContractMethod<
    [
      _commitmentGroupConfig: ILenderCommitmentGroup_V2.CommitmentGroupConfigStruct,
      _poolOracleRoutes: IUniswapPricingLibrary.PoolRouteConfigStruct[]
    ],
    [void],
    "nonpayable"
  >;

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

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

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

  liquidateDefaultedLoanWithIncentive: TypedContractMethod<
    [_bidId: BigNumberish, _tokenAmountDifference: BigNumberish],
    [void],
    "nonpayable"
  >;

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

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

  maxDeposit: TypedContractMethod<[arg0: AddressLike], [bigint], "view">;

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

  maxMint: TypedContractMethod<[arg0: AddressLike], [bigint], "view">;

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

  maxRedeem: TypedContractMethod<[owner: AddressLike], [bigint], "view">;

  maxWithdraw: TypedContractMethod<[owner: AddressLike], [bigint], "view">;

  mint: TypedContractMethod<
    [shares: BigNumberish, receiver: AddressLike],
    [bigint],
    "nonpayable"
  >;

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

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

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

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

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

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

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

  poolOracleRoutes: TypedContractMethod<
    [arg0: BigNumberish],
    [
      [string, boolean, bigint, bigint, bigint] & {
        pool: string;
        zeroForOne: boolean;
        twapInterval: bigint;
        token0Decimals: bigint;
        token1Decimals: bigint;
      }
    ],
    "view"
  >;

  previewDeposit: TypedContractMethod<[assets: BigNumberish], [bigint], "view">;

  previewMint: TypedContractMethod<[shares: BigNumberish], [bigint], "view">;

  previewRedeem: TypedContractMethod<[shares: BigNumberish], [bigint], "view">;

  previewWithdraw: TypedContractMethod<
    [assets: BigNumberish],
    [bigint],
    "view"
  >;

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

  redeem: TypedContractMethod<
    [shares: BigNumberish, receiver: AddressLike, owner: AddressLike],
    [bigint],
    "nonpayable"
  >;

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

  repayLoanCallback: TypedContractMethod<
    [
      _bidId: BigNumberish,
      repayer: AddressLike,
      principalAmount: BigNumberish,
      interestAmount: BigNumberish
    ],
    [void],
    "nonpayable"
  >;

  setMaxPrincipalPerCollateralAmount: TypedContractMethod<
    [_maxPrincipalPerCollateralAmount: BigNumberish],
    [void],
    "nonpayable"
  >;

  setWithdrawDelayBypassForAccount: TypedContractMethod<
    [_addr: AddressLike, _bypass: boolean],
    [void],
    "nonpayable"
  >;

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

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

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

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

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

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

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

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

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

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

  transfer: TypedContractMethod<
    [to: AddressLike, amount: BigNumberish],
    [boolean],
    "nonpayable"
  >;

  transferFrom: TypedContractMethod<
    [from: AddressLike, to: AddressLike, amount: BigNumberish],
    [boolean],
    "nonpayable"
  >;

  transferOwnership: TypedContractMethod<
    [newOwner: AddressLike],
    [void],
    "nonpayable"
  >;

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

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

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

  withdraw: TypedContractMethod<
    [assets: BigNumberish, receiver: AddressLike, owner: AddressLike],
    [bigint],
    "nonpayable"
  >;

  withdrawDelayBypassForAccount: TypedContractMethod<
    [arg0: AddressLike],
    [boolean],
    "view"
  >;

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

  withdrawFromEscrowVault: TypedContractMethod<
    [_amount: BigNumberish],
    [void],
    "nonpayable"
  >;

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

  getFunction(
    nameOrSignature: "EXCHANGE_RATE_EXPANSION_FACTOR"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "MIN_TWAP_INTERVAL"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "ORACLE_MANAGER"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "SMART_COMMITMENT_FORWARDER"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "STANDARD_EXPANSION_FACTOR"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "TELLER_V2"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "UNISWAP_EXPANSION_FACTOR"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "UNISWAP_PRICING_HELPER"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "UNISWAP_V3_FACTORY"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "acceptFundsForAcceptBid"
  ): TypedContractMethod<
    [
      _borrower: AddressLike,
      _bidId: BigNumberish,
      _principalAmount: BigNumberish,
      _collateralAmount: BigNumberish,
      _collateralTokenAddress: AddressLike,
      _collateralTokenId: BigNumberish,
      _loanDuration: BigNumberish,
      _interestRate: BigNumberish
    ],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "activeBids"
  ): TypedContractMethod<[arg0: BigNumberish], [boolean], "view">;
  getFunction(
    nameOrSignature: "activeBidsAmountDueRemaining"
  ): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "allowance"
  ): TypedContractMethod<
    [owner: AddressLike, spender: AddressLike],
    [bigint],
    "view"
  >;
  getFunction(
    nameOrSignature: "approve"
  ): TypedContractMethod<
    [spender: AddressLike, amount: BigNumberish],
    [boolean],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "asset"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "balanceOf"
  ): TypedContractMethod<[account: AddressLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "borrowingPaused"
  ): TypedContractMethod<[], [boolean], "view">;
  getFunction(
    nameOrSignature: "calculateCollateralRequiredToBorrowPrincipal"
  ): TypedContractMethod<[_principalAmount: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "calculateCollateralTokensAmountEquivalentToPrincipalTokens"
  ): TypedContractMethod<[principalAmount: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "collateralRatio"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "collateralToken"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "convertToAssets"
  ): TypedContractMethod<[shares: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "convertToShares"
  ): TypedContractMethod<[assets: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "decimals"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "decreaseAllowance"
  ): TypedContractMethod<
    [spender: AddressLike, subtractedValue: BigNumberish],
    [boolean],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "deposit"
  ): TypedContractMethod<
    [assets: BigNumberish, receiver: AddressLike],
    [bigint],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "excessivePrincipalTokensRepaid"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getCollateralTokenAddress"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "getCollateralTokenType"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getLastUnpausedAt"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getMarketId"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getMaxLoanDuration"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getMinInterestRate"
  ): TypedContractMethod<[amountDelta: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "getMinimumAmountDifferenceToCloseDefaultedLoan"
  ): TypedContractMethod<
    [_amountOwed: BigNumberish, _loanDefaultedTimestamp: BigNumberish],
    [bigint],
    "view"
  >;
  getFunction(
    nameOrSignature: "getPoolUtilizationRatio"
  ): TypedContractMethod<
    [activeLoansAmountDelta: BigNumberish],
    [bigint],
    "view"
  >;
  getFunction(
    nameOrSignature: "getPrincipalAmountAvailableToBorrow"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "getPrincipalForCollateralForPoolRoutes"
  ): TypedContractMethod<
    [poolOracleRoutes: IUniswapPricingLibrary.PoolRouteConfigStruct[]],
    [bigint],
    "view"
  >;
  getFunction(
    nameOrSignature: "getPrincipalTokenAddress"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "getSharesLastTransferredAt"
  ): TypedContractMethod<[owner: AddressLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "getTokenDifferenceFromLiquidations"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "increaseAllowance"
  ): TypedContractMethod<
    [spender: AddressLike, addedValue: BigNumberish],
    [boolean],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "initialize"
  ): TypedContractMethod<
    [
      _commitmentGroupConfig: ILenderCommitmentGroup_V2.CommitmentGroupConfigStruct,
      _poolOracleRoutes: IUniswapPricingLibrary.PoolRouteConfigStruct[]
    ],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "interestRateLowerBound"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "interestRateUpperBound"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "lastUnpausedAt"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "liquidateDefaultedLoanWithIncentive"
  ): TypedContractMethod<
    [_bidId: BigNumberish, _tokenAmountDifference: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "liquidationAuctionPaused"
  ): TypedContractMethod<[], [boolean], "view">;
  getFunction(
    nameOrSignature: "liquidityThresholdPercent"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "maxDeposit"
  ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "maxLoanDuration"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "maxMint"
  ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "maxPrincipalPerCollateralAmount"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "maxRedeem"
  ): TypedContractMethod<[owner: AddressLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "maxWithdraw"
  ): TypedContractMethod<[owner: AddressLike], [bigint], "view">;
  getFunction(
    nameOrSignature: "mint"
  ): TypedContractMethod<
    [shares: BigNumberish, receiver: AddressLike],
    [bigint],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "name"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "owner"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "pauseBorrowing"
  ): TypedContractMethod<[], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "pauseLiquidationAuction"
  ): TypedContractMethod<[], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "pausePool"
  ): TypedContractMethod<[], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "paused"
  ): TypedContractMethod<[], [boolean], "view">;
  getFunction(
    nameOrSignature: "poolIsActivated"
  ): TypedContractMethod<[], [boolean], "view">;
  getFunction(
    nameOrSignature: "poolOracleRoutes"
  ): TypedContractMethod<
    [arg0: BigNumberish],
    [
      [string, boolean, bigint, bigint, bigint] & {
        pool: string;
        zeroForOne: boolean;
        twapInterval: bigint;
        token0Decimals: bigint;
        token1Decimals: bigint;
      }
    ],
    "view"
  >;
  getFunction(
    nameOrSignature: "previewDeposit"
  ): TypedContractMethod<[assets: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "previewMint"
  ): TypedContractMethod<[shares: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "previewRedeem"
  ): TypedContractMethod<[shares: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "previewWithdraw"
  ): TypedContractMethod<[assets: BigNumberish], [bigint], "view">;
  getFunction(
    nameOrSignature: "principalToken"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "redeem"
  ): TypedContractMethod<
    [shares: BigNumberish, receiver: AddressLike, owner: AddressLike],
    [bigint],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "renounceOwnership"
  ): TypedContractMethod<[], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "repayLoanCallback"
  ): TypedContractMethod<
    [
      _bidId: BigNumberish,
      repayer: AddressLike,
      principalAmount: BigNumberish,
      interestAmount: BigNumberish
    ],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setMaxPrincipalPerCollateralAmount"
  ): TypedContractMethod<
    [_maxPrincipalPerCollateralAmount: BigNumberish],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "setWithdrawDelayBypassForAccount"
  ): TypedContractMethod<
    [_addr: AddressLike, _bypass: boolean],
    [void],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "sharesExchangeRate"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "sharesExchangeRateInverse"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "symbol"
  ): TypedContractMethod<[], [string], "view">;
  getFunction(
    nameOrSignature: "totalAssets"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "totalInterestCollected"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "totalPrincipalTokensCommitted"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "totalPrincipalTokensLended"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "totalPrincipalTokensRepaid"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "totalPrincipalTokensWithdrawn"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "totalSupply"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "transfer"
  ): TypedContractMethod<
    [to: AddressLike, amount: BigNumberish],
    [boolean],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "transferFrom"
  ): TypedContractMethod<
    [from: AddressLike, to: AddressLike, amount: BigNumberish],
    [boolean],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "transferOwnership"
  ): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "unpauseBorrowing"
  ): TypedContractMethod<[], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "unpauseLiquidationAuction"
  ): TypedContractMethod<[], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "unpausePool"
  ): TypedContractMethod<[], [void], "nonpayable">;
  getFunction(
    nameOrSignature: "withdraw"
  ): TypedContractMethod<
    [assets: BigNumberish, receiver: AddressLike, owner: AddressLike],
    [bigint],
    "nonpayable"
  >;
  getFunction(
    nameOrSignature: "withdrawDelayBypassForAccount"
  ): TypedContractMethod<[arg0: AddressLike], [boolean], "view">;
  getFunction(
    nameOrSignature: "withdrawDelayTimeSeconds"
  ): TypedContractMethod<[], [bigint], "view">;
  getFunction(
    nameOrSignature: "withdrawFromEscrowVault"
  ): TypedContractMethod<[_amount: BigNumberish], [void], "nonpayable">;

  getEvent(
    key: "Approval"
  ): TypedContractEvent<
    ApprovalEvent.InputTuple,
    ApprovalEvent.OutputTuple,
    ApprovalEvent.OutputObject
  >;
  getEvent(
    key: "BorrowerAcceptedFunds"
  ): TypedContractEvent<
    BorrowerAcceptedFundsEvent.InputTuple,
    BorrowerAcceptedFundsEvent.OutputTuple,
    BorrowerAcceptedFundsEvent.OutputObject
  >;
  getEvent(
    key: "DefaultedLoanLiquidated"
  ): TypedContractEvent<
    DefaultedLoanLiquidatedEvent.InputTuple,
    DefaultedLoanLiquidatedEvent.OutputTuple,
    DefaultedLoanLiquidatedEvent.OutputObject
  >;
  getEvent(
    key: "Deposit"
  ): TypedContractEvent<
    DepositEvent.InputTuple,
    DepositEvent.OutputTuple,
    DepositEvent.OutputObject
  >;
  getEvent(
    key: "Initialized"
  ): TypedContractEvent<
    InitializedEvent.InputTuple,
    InitializedEvent.OutputTuple,
    InitializedEvent.OutputObject
  >;
  getEvent(
    key: "LoanRepaid"
  ): TypedContractEvent<
    LoanRepaidEvent.InputTuple,
    LoanRepaidEvent.OutputTuple,
    LoanRepaidEvent.OutputObject
  >;
  getEvent(
    key: "OwnershipTransferred"
  ): TypedContractEvent<
    OwnershipTransferredEvent.InputTuple,
    OwnershipTransferredEvent.OutputTuple,
    OwnershipTransferredEvent.OutputObject
  >;
  getEvent(
    key: "Paused"
  ): TypedContractEvent<
    PausedEvent.InputTuple,
    PausedEvent.OutputTuple,
    PausedEvent.OutputObject
  >;
  getEvent(
    key: "PausedBorrowing"
  ): TypedContractEvent<
    PausedBorrowingEvent.InputTuple,
    PausedBorrowingEvent.OutputTuple,
    PausedBorrowingEvent.OutputObject
  >;
  getEvent(
    key: "PausedLiquidationAuction"
  ): TypedContractEvent<
    PausedLiquidationAuctionEvent.InputTuple,
    PausedLiquidationAuctionEvent.OutputTuple,
    PausedLiquidationAuctionEvent.OutputObject
  >;
  getEvent(
    key: "PoolInitialized"
  ): TypedContractEvent<
    PoolInitializedEvent.InputTuple,
    PoolInitializedEvent.OutputTuple,
    PoolInitializedEvent.OutputObject
  >;
  getEvent(
    key: "SharesLastTransferredAt"
  ): TypedContractEvent<
    SharesLastTransferredAtEvent.InputTuple,
    SharesLastTransferredAtEvent.OutputTuple,
    SharesLastTransferredAtEvent.OutputObject
  >;
  getEvent(
    key: "Transfer"
  ): TypedContractEvent<
    TransferEvent.InputTuple,
    TransferEvent.OutputTuple,
    TransferEvent.OutputObject
  >;
  getEvent(
    key: "Unpaused"
  ): TypedContractEvent<
    UnpausedEvent.InputTuple,
    UnpausedEvent.OutputTuple,
    UnpausedEvent.OutputObject
  >;
  getEvent(
    key: "UnpausedBorrowing"
  ): TypedContractEvent<
    UnpausedBorrowingEvent.InputTuple,
    UnpausedBorrowingEvent.OutputTuple,
    UnpausedBorrowingEvent.OutputObject
  >;
  getEvent(
    key: "UnpausedLiquidationAuction"
  ): TypedContractEvent<
    UnpausedLiquidationAuctionEvent.InputTuple,
    UnpausedLiquidationAuctionEvent.OutputTuple,
    UnpausedLiquidationAuctionEvent.OutputObject
  >;
  getEvent(
    key: "Withdraw"
  ): TypedContractEvent<
    WithdrawEvent.InputTuple,
    WithdrawEvent.OutputTuple,
    WithdrawEvent.OutputObject
  >;
  getEvent(
    key: "WithdrawFromEscrow"
  ): TypedContractEvent<
    WithdrawFromEscrowEvent.InputTuple,
    WithdrawFromEscrowEvent.OutputTuple,
    WithdrawFromEscrowEvent.OutputObject
  >;

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

    "BorrowerAcceptedFunds(address,uint256,uint256,uint256,uint32,uint16)": TypedContractEvent<
      BorrowerAcceptedFundsEvent.InputTuple,
      BorrowerAcceptedFundsEvent.OutputTuple,
      BorrowerAcceptedFundsEvent.OutputObject
    >;
    BorrowerAcceptedFunds: TypedContractEvent<
      BorrowerAcceptedFundsEvent.InputTuple,
      BorrowerAcceptedFundsEvent.OutputTuple,
      BorrowerAcceptedFundsEvent.OutputObject
    >;

    "DefaultedLoanLiquidated(uint256,address,uint256,int256)": TypedContractEvent<
      DefaultedLoanLiquidatedEvent.InputTuple,
      DefaultedLoanLiquidatedEvent.OutputTuple,
      DefaultedLoanLiquidatedEvent.OutputObject
    >;
    DefaultedLoanLiquidated: TypedContractEvent<
      DefaultedLoanLiquidatedEvent.InputTuple,
      DefaultedLoanLiquidatedEvent.OutputTuple,
      DefaultedLoanLiquidatedEvent.OutputObject
    >;

    "Deposit(address,address,uint256,uint256)": TypedContractEvent<
      DepositEvent.InputTuple,
      DepositEvent.OutputTuple,
      DepositEvent.OutputObject
    >;
    Deposit: TypedContractEvent<
      DepositEvent.InputTuple,
      DepositEvent.OutputTuple,
      DepositEvent.OutputObject
    >;

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

    "LoanRepaid(uint256,address,uint256,uint256,uint256,uint256)": TypedContractEvent<
      LoanRepaidEvent.InputTuple,
      LoanRepaidEvent.OutputTuple,
      LoanRepaidEvent.OutputObject
    >;
    LoanRepaid: TypedContractEvent<
      LoanRepaidEvent.InputTuple,
      LoanRepaidEvent.OutputTuple,
      LoanRepaidEvent.OutputObject
    >;

    "OwnershipTransferred(address,address)": TypedContractEvent<
      OwnershipTransferredEvent.InputTuple,
      OwnershipTransferredEvent.OutputTuple,
      OwnershipTransferredEvent.OutputObject
    >;
    OwnershipTransferred: TypedContractEvent<
      OwnershipTransferredEvent.InputTuple,
      OwnershipTransferredEvent.OutputTuple,
      OwnershipTransferredEvent.OutputObject
    >;

    "Paused(address)": TypedContractEvent<
      PausedEvent.InputTuple,
      PausedEvent.OutputTuple,
      PausedEvent.OutputObject
    >;
    Paused: TypedContractEvent<
      PausedEvent.InputTuple,
      PausedEvent.OutputTuple,
      PausedEvent.OutputObject
    >;

    "PausedBorrowing(address)": TypedContractEvent<
      PausedBorrowingEvent.InputTuple,
      PausedBorrowingEvent.OutputTuple,
      PausedBorrowingEvent.OutputObject
    >;
    PausedBorrowing: TypedContractEvent<
      PausedBorrowingEvent.InputTuple,
      PausedBorrowingEvent.OutputTuple,
      PausedBorrowingEvent.OutputObject
    >;

    "PausedLiquidationAuction(address)": TypedContractEvent<
      PausedLiquidationAuctionEvent.InputTuple,
      PausedLiquidationAuctionEvent.OutputTuple,
      PausedLiquidationAuctionEvent.OutputObject
    >;
    PausedLiquidationAuction: TypedContractEvent<
      PausedLiquidationAuctionEvent.InputTuple,
      PausedLiquidationAuctionEvent.OutputTuple,
      PausedLiquidationAuctionEvent.OutputObject
    >;

    "PoolInitialized(address,address,uint256,uint32,uint16,uint16,uint16,uint16)": TypedContractEvent<
      PoolInitializedEvent.InputTuple,
      PoolInitializedEvent.OutputTuple,
      PoolInitializedEvent.OutputObject
    >;
    PoolInitialized: TypedContractEvent<
      PoolInitializedEvent.InputTuple,
      PoolInitializedEvent.OutputTuple,
      PoolInitializedEvent.OutputObject
    >;

    "SharesLastTransferredAt(address,uint256)": TypedContractEvent<
      SharesLastTransferredAtEvent.InputTuple,
      SharesLastTransferredAtEvent.OutputTuple,
      SharesLastTransferredAtEvent.OutputObject
    >;
    SharesLastTransferredAt: TypedContractEvent<
      SharesLastTransferredAtEvent.InputTuple,
      SharesLastTransferredAtEvent.OutputTuple,
      SharesLastTransferredAtEvent.OutputObject
    >;

    "Transfer(address,address,uint256)": TypedContractEvent<
      TransferEvent.InputTuple,
      TransferEvent.OutputTuple,
      TransferEvent.OutputObject
    >;
    Transfer: TypedContractEvent<
      TransferEvent.InputTuple,
      TransferEvent.OutputTuple,
      TransferEvent.OutputObject
    >;

    "Unpaused(address)": TypedContractEvent<
      UnpausedEvent.InputTuple,
      UnpausedEvent.OutputTuple,
      UnpausedEvent.OutputObject
    >;
    Unpaused: TypedContractEvent<
      UnpausedEvent.InputTuple,
      UnpausedEvent.OutputTuple,
      UnpausedEvent.OutputObject
    >;

    "UnpausedBorrowing(address)": TypedContractEvent<
      UnpausedBorrowingEvent.InputTuple,
      UnpausedBorrowingEvent.OutputTuple,
      UnpausedBorrowingEvent.OutputObject
    >;
    UnpausedBorrowing: TypedContractEvent<
      UnpausedBorrowingEvent.InputTuple,
      UnpausedBorrowingEvent.OutputTuple,
      UnpausedBorrowingEvent.OutputObject
    >;

    "UnpausedLiquidationAuction(address)": TypedContractEvent<
      UnpausedLiquidationAuctionEvent.InputTuple,
      UnpausedLiquidationAuctionEvent.OutputTuple,
      UnpausedLiquidationAuctionEvent.OutputObject
    >;
    UnpausedLiquidationAuction: TypedContractEvent<
      UnpausedLiquidationAuctionEvent.InputTuple,
      UnpausedLiquidationAuctionEvent.OutputTuple,
      UnpausedLiquidationAuctionEvent.OutputObject
    >;

    "Withdraw(address,address,address,uint256,uint256)": TypedContractEvent<
      WithdrawEvent.InputTuple,
      WithdrawEvent.OutputTuple,
      WithdrawEvent.OutputObject
    >;
    Withdraw: TypedContractEvent<
      WithdrawEvent.InputTuple,
      WithdrawEvent.OutputTuple,
      WithdrawEvent.OutputObject
    >;

    "WithdrawFromEscrow(uint256)": TypedContractEvent<
      WithdrawFromEscrowEvent.InputTuple,
      WithdrawFromEscrowEvent.OutputTuple,
      WithdrawFromEscrowEvent.OutputObject
    >;
    WithdrawFromEscrow: TypedContractEvent<
      WithdrawFromEscrowEvent.InputTuple,
      WithdrawFromEscrowEvent.OutputTuple,
      WithdrawFromEscrowEvent.OutputObject
    >;
  };
}
