import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../../common"; export type MarketParamsStruct = { loanToken: AddressLike; collateralToken: AddressLike; oracle: AddressLike; irm: AddressLike; lltv: BigNumberish; }; export type MarketParamsStructOutput = [ loanToken: string, collateralToken: string, oracle: string, irm: string, lltv: bigint ] & { loanToken: string; collateralToken: string; oracle: string; irm: string; lltv: bigint; }; export type MarketStruct = { totalSupplyAssets: BigNumberish; totalSupplyShares: BigNumberish; totalBorrowAssets: BigNumberish; totalBorrowShares: BigNumberish; lastUpdate: BigNumberish; fee: BigNumberish; }; export type MarketStructOutput = [ totalSupplyAssets: bigint, totalSupplyShares: bigint, totalBorrowAssets: bigint, totalBorrowShares: bigint, lastUpdate: bigint, fee: bigint ] & { totalSupplyAssets: bigint; totalSupplyShares: bigint; totalBorrowAssets: bigint; totalBorrowShares: bigint; lastUpdate: bigint; fee: bigint; }; export interface BlueIrmInterface extends Interface { getFunction(nameOrSignature: "borrowRate" | "borrowRateView"): FunctionFragment; encodeFunctionData(functionFragment: "borrowRate", values: [MarketParamsStruct, MarketStruct]): string; encodeFunctionData(functionFragment: "borrowRateView", values: [MarketParamsStruct, MarketStruct]): string; decodeFunctionResult(functionFragment: "borrowRate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "borrowRateView", data: BytesLike): Result; } export interface BlueIrm extends BaseContract { connect(runner?: ContractRunner | null): BlueIrm; waitForDeployment(): Promise; interface: BlueIrmInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; borrowRate: TypedContractMethod<[ marketParams: MarketParamsStruct, market: MarketStruct ], [ bigint ], "nonpayable">; borrowRateView: TypedContractMethod<[ marketParams: MarketParamsStruct, market: MarketStruct ], [ bigint ], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "borrowRate"): TypedContractMethod<[ marketParams: MarketParamsStruct, market: MarketStruct ], [ bigint ], "nonpayable">; getFunction(nameOrSignature: "borrowRateView"): TypedContractMethod<[ marketParams: MarketParamsStruct, market: MarketStruct ], [ bigint ], "view">; filters: {}; }