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 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 AdaptiveCurveIrmInterface extends Interface { getFunction(nameOrSignature: "MORPHO" | "borrowRate" | "borrowRateView" | "rateAtTarget"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "BorrowRateUpdate"): EventFragment; encodeFunctionData(functionFragment: "MORPHO", values?: undefined): string; encodeFunctionData(functionFragment: "borrowRate", values: [MarketParamsStruct, MarketStruct]): string; encodeFunctionData(functionFragment: "borrowRateView", values: [MarketParamsStruct, MarketStruct]): string; encodeFunctionData(functionFragment: "rateAtTarget", values: [BytesLike]): string; decodeFunctionResult(functionFragment: "MORPHO", data: BytesLike): Result; decodeFunctionResult(functionFragment: "borrowRate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "borrowRateView", data: BytesLike): Result; decodeFunctionResult(functionFragment: "rateAtTarget", data: BytesLike): Result; } export declare namespace BorrowRateUpdateEvent { type InputTuple = [ id: BytesLike, avgBorrowRate: BigNumberish, rateAtTarget: BigNumberish ]; type OutputTuple = [ id: string, avgBorrowRate: bigint, rateAtTarget: bigint ]; interface OutputObject { id: string; avgBorrowRate: bigint; rateAtTarget: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface AdaptiveCurveIrm extends BaseContract { connect(runner?: ContractRunner | null): AdaptiveCurveIrm; waitForDeployment(): Promise; interface: AdaptiveCurveIrmInterface; 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; MORPHO: TypedContractMethod<[], [string], "view">; borrowRate: TypedContractMethod<[ marketParams: MarketParamsStruct, market: MarketStruct ], [ bigint ], "nonpayable">; borrowRateView: TypedContractMethod<[ marketParams: MarketParamsStruct, market: MarketStruct ], [ bigint ], "view">; rateAtTarget: TypedContractMethod<[arg0: BytesLike], [bigint], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "MORPHO"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "borrowRate"): TypedContractMethod<[ marketParams: MarketParamsStruct, market: MarketStruct ], [ bigint ], "nonpayable">; getFunction(nameOrSignature: "borrowRateView"): TypedContractMethod<[ marketParams: MarketParamsStruct, market: MarketStruct ], [ bigint ], "view">; getFunction(nameOrSignature: "rateAtTarget"): TypedContractMethod<[arg0: BytesLike], [bigint], "view">; getEvent(key: "BorrowRateUpdate"): TypedContractEvent; filters: { "BorrowRateUpdate(bytes32,uint256,uint256)": TypedContractEvent; BorrowRateUpdate: TypedContractEvent; }; }