import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../../../common"; export declare namespace IUiPoolDataProvider { type AggregatedReserveDataStruct = { underlyingAsset: AddressLike; name: string; symbol: string; decimals: BigNumberish; baseLTVasCollateral: BigNumberish; reserveLiquidationThreshold: BigNumberish; reserveLiquidationBonus: BigNumberish; reserveFactor: BigNumberish; usageAsCollateralEnabled: boolean; borrowingEnabled: boolean; stableBorrowRateEnabled: boolean; isActive: boolean; isFrozen: boolean; liquidityIndex: BigNumberish; variableBorrowIndex: BigNumberish; liquidityRate: BigNumberish; variableBorrowRate: BigNumberish; stableBorrowRate: BigNumberish; lastUpdateTimestamp: BigNumberish; aTokenAddress: AddressLike; stableDebtTokenAddress: AddressLike; variableDebtTokenAddress: AddressLike; interestRateStrategyAddress: AddressLike; availableLiquidity: BigNumberish; totalPrincipalStableDebt: BigNumberish; averageStableRate: BigNumberish; stableDebtLastUpdateTimestamp: BigNumberish; totalScaledVariableDebt: BigNumberish; priceInEth: BigNumberish; variableRateSlope1: BigNumberish; variableRateSlope2: BigNumberish; stableRateSlope1: BigNumberish; stableRateSlope2: BigNumberish; aEmissionPerSecond: BigNumberish; vEmissionPerSecond: BigNumberish; sEmissionPerSecond: BigNumberish; aIncentivesLastUpdateTimestamp: BigNumberish; vIncentivesLastUpdateTimestamp: BigNumberish; sIncentivesLastUpdateTimestamp: BigNumberish; aTokenIncentivesIndex: BigNumberish; vTokenIncentivesIndex: BigNumberish; sTokenIncentivesIndex: BigNumberish; }; type AggregatedReserveDataStructOutput = [ underlyingAsset: string, name: string, symbol: string, decimals: bigint, baseLTVasCollateral: bigint, reserveLiquidationThreshold: bigint, reserveLiquidationBonus: bigint, reserveFactor: bigint, usageAsCollateralEnabled: boolean, borrowingEnabled: boolean, stableBorrowRateEnabled: boolean, isActive: boolean, isFrozen: boolean, liquidityIndex: bigint, variableBorrowIndex: bigint, liquidityRate: bigint, variableBorrowRate: bigint, stableBorrowRate: bigint, lastUpdateTimestamp: bigint, aTokenAddress: string, stableDebtTokenAddress: string, variableDebtTokenAddress: string, interestRateStrategyAddress: string, availableLiquidity: bigint, totalPrincipalStableDebt: bigint, averageStableRate: bigint, stableDebtLastUpdateTimestamp: bigint, totalScaledVariableDebt: bigint, priceInEth: bigint, variableRateSlope1: bigint, variableRateSlope2: bigint, stableRateSlope1: bigint, stableRateSlope2: bigint, aEmissionPerSecond: bigint, vEmissionPerSecond: bigint, sEmissionPerSecond: bigint, aIncentivesLastUpdateTimestamp: bigint, vIncentivesLastUpdateTimestamp: bigint, sIncentivesLastUpdateTimestamp: bigint, aTokenIncentivesIndex: bigint, vTokenIncentivesIndex: bigint, sTokenIncentivesIndex: bigint ] & { underlyingAsset: string; name: string; symbol: string; decimals: bigint; baseLTVasCollateral: bigint; reserveLiquidationThreshold: bigint; reserveLiquidationBonus: bigint; reserveFactor: bigint; usageAsCollateralEnabled: boolean; borrowingEnabled: boolean; stableBorrowRateEnabled: boolean; isActive: boolean; isFrozen: boolean; liquidityIndex: bigint; variableBorrowIndex: bigint; liquidityRate: bigint; variableBorrowRate: bigint; stableBorrowRate: bigint; lastUpdateTimestamp: bigint; aTokenAddress: string; stableDebtTokenAddress: string; variableDebtTokenAddress: string; interestRateStrategyAddress: string; availableLiquidity: bigint; totalPrincipalStableDebt: bigint; averageStableRate: bigint; stableDebtLastUpdateTimestamp: bigint; totalScaledVariableDebt: bigint; priceInEth: bigint; variableRateSlope1: bigint; variableRateSlope2: bigint; stableRateSlope1: bigint; stableRateSlope2: bigint; aEmissionPerSecond: bigint; vEmissionPerSecond: bigint; sEmissionPerSecond: bigint; aIncentivesLastUpdateTimestamp: bigint; vIncentivesLastUpdateTimestamp: bigint; sIncentivesLastUpdateTimestamp: bigint; aTokenIncentivesIndex: bigint; vTokenIncentivesIndex: bigint; sTokenIncentivesIndex: bigint; }; type UserReserveDataStruct = { underlyingAsset: AddressLike; scaledATokenBalance: BigNumberish; usageAsCollateralEnabledOnUser: boolean; stableBorrowRate: BigNumberish; scaledVariableDebt: BigNumberish; principalStableDebt: BigNumberish; stableBorrowLastUpdateTimestamp: BigNumberish; aTokenincentivesUserIndex: BigNumberish; vTokenincentivesUserIndex: BigNumberish; sTokenincentivesUserIndex: BigNumberish; }; type UserReserveDataStructOutput = [ underlyingAsset: string, scaledATokenBalance: bigint, usageAsCollateralEnabledOnUser: boolean, stableBorrowRate: bigint, scaledVariableDebt: bigint, principalStableDebt: bigint, stableBorrowLastUpdateTimestamp: bigint, aTokenincentivesUserIndex: bigint, vTokenincentivesUserIndex: bigint, sTokenincentivesUserIndex: bigint ] & { underlyingAsset: string; scaledATokenBalance: bigint; usageAsCollateralEnabledOnUser: boolean; stableBorrowRate: bigint; scaledVariableDebt: bigint; principalStableDebt: bigint; stableBorrowLastUpdateTimestamp: bigint; aTokenincentivesUserIndex: bigint; vTokenincentivesUserIndex: bigint; sTokenincentivesUserIndex: bigint; }; type IncentivesControllerDataStruct = { userUnclaimedRewards: BigNumberish; emissionEndTimestamp: BigNumberish; }; type IncentivesControllerDataStructOutput = [ userUnclaimedRewards: bigint, emissionEndTimestamp: bigint ] & { userUnclaimedRewards: bigint; emissionEndTimestamp: bigint; }; } export interface UiPoolDataProviderInterface extends Interface { getFunction(nameOrSignature: "MOCK_USD_ADDRESS" | "getReservesData" | "getReservesList" | "getSimpleReservesData" | "getUserReservesData" | "incentivesController" | "oracle"): FunctionFragment; encodeFunctionData(functionFragment: "MOCK_USD_ADDRESS", values?: undefined): string; encodeFunctionData(functionFragment: "getReservesData", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "getReservesList", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getSimpleReservesData", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getUserReservesData", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "incentivesController", values?: undefined): string; encodeFunctionData(functionFragment: "oracle", values?: undefined): string; decodeFunctionResult(functionFragment: "MOCK_USD_ADDRESS", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getReservesData", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getReservesList", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getSimpleReservesData", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getUserReservesData", data: BytesLike): Result; decodeFunctionResult(functionFragment: "incentivesController", data: BytesLike): Result; decodeFunctionResult(functionFragment: "oracle", data: BytesLike): Result; } export interface UiPoolDataProvider extends BaseContract { connect(runner?: ContractRunner | null): UiPoolDataProvider; waitForDeployment(): Promise; interface: UiPoolDataProviderInterface; 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; MOCK_USD_ADDRESS: TypedContractMethod<[], [string], "view">; getReservesData: TypedContractMethod<[ provider: AddressLike, user: AddressLike ], [ [ IUiPoolDataProvider.AggregatedReserveDataStructOutput[], IUiPoolDataProvider.UserReserveDataStructOutput[], bigint, IUiPoolDataProvider.IncentivesControllerDataStructOutput ] ], "view">; getReservesList: TypedContractMethod<[ provider: AddressLike ], [ string[] ], "view">; getSimpleReservesData: TypedContractMethod<[ provider: AddressLike ], [ [IUiPoolDataProvider.AggregatedReserveDataStructOutput[], bigint, bigint] ], "view">; getUserReservesData: TypedContractMethod<[ provider: AddressLike, user: AddressLike ], [ [IUiPoolDataProvider.UserReserveDataStructOutput[], bigint] ], "view">; incentivesController: TypedContractMethod<[], [string], "view">; oracle: TypedContractMethod<[], [string], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "MOCK_USD_ADDRESS"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "getReservesData"): TypedContractMethod<[ provider: AddressLike, user: AddressLike ], [ [ IUiPoolDataProvider.AggregatedReserveDataStructOutput[], IUiPoolDataProvider.UserReserveDataStructOutput[], bigint, IUiPoolDataProvider.IncentivesControllerDataStructOutput ] ], "view">; getFunction(nameOrSignature: "getReservesList"): TypedContractMethod<[provider: AddressLike], [string[]], "view">; getFunction(nameOrSignature: "getSimpleReservesData"): TypedContractMethod<[ provider: AddressLike ], [ [IUiPoolDataProvider.AggregatedReserveDataStructOutput[], bigint, bigint] ], "view">; getFunction(nameOrSignature: "getUserReservesData"): TypedContractMethod<[ provider: AddressLike, user: AddressLike ], [ [IUiPoolDataProvider.UserReserveDataStructOutput[], bigint] ], "view">; getFunction(nameOrSignature: "incentivesController"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "oracle"): TypedContractMethod<[], [string], "view">; filters: {}; }