import type { BaseContract, BytesLike, FunctionFragment, Result, Interface, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../../../common"; export declare namespace IPoolDataProvider { type TokenDataStruct = { symbol: string; tokenAddress: AddressLike; }; type TokenDataStructOutput = [symbol: string, tokenAddress: string] & { symbol: string; tokenAddress: string; }; } export interface AaveV3ProtocolDataProviderInterface extends Interface { getFunction(nameOrSignature: "ADDRESSES_PROVIDER" | "getATokenTotalSupply" | "getAllATokens" | "getAllReservesTokens" | "getDebtCeiling" | "getDebtCeilingDecimals" | "getFlashLoanEnabled" | "getInterestRateStrategyAddress" | "getLiquidationProtocolFee" | "getPaused" | "getReserveCaps" | "getReserveConfigurationData" | "getReserveData" | "getReserveEModeCategory" | "getReserveTokensAddresses" | "getSiloedBorrowing" | "getTotalDebt" | "getUnbackedMintCap" | "getUserReserveData"): FunctionFragment; encodeFunctionData(functionFragment: "ADDRESSES_PROVIDER", values?: undefined): string; encodeFunctionData(functionFragment: "getATokenTotalSupply", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getAllATokens", values?: undefined): string; encodeFunctionData(functionFragment: "getAllReservesTokens", values?: undefined): string; encodeFunctionData(functionFragment: "getDebtCeiling", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getDebtCeilingDecimals", values?: undefined): string; encodeFunctionData(functionFragment: "getFlashLoanEnabled", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getInterestRateStrategyAddress", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getLiquidationProtocolFee", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getPaused", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getReserveCaps", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getReserveConfigurationData", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getReserveData", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getReserveEModeCategory", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getReserveTokensAddresses", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getSiloedBorrowing", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getTotalDebt", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getUnbackedMintCap", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getUserReserveData", values: [AddressLike, AddressLike]): string; decodeFunctionResult(functionFragment: "ADDRESSES_PROVIDER", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getATokenTotalSupply", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAllATokens", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAllReservesTokens", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDebtCeiling", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDebtCeilingDecimals", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getFlashLoanEnabled", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getInterestRateStrategyAddress", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getLiquidationProtocolFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPaused", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getReserveCaps", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getReserveConfigurationData", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getReserveData", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getReserveEModeCategory", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getReserveTokensAddresses", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getSiloedBorrowing", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTotalDebt", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getUnbackedMintCap", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getUserReserveData", data: BytesLike): Result; } export interface AaveV3ProtocolDataProvider extends BaseContract { connect(runner?: ContractRunner | null): AaveV3ProtocolDataProvider; waitForDeployment(): Promise; interface: AaveV3ProtocolDataProviderInterface; 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; ADDRESSES_PROVIDER: TypedContractMethod<[], [string], "view">; getATokenTotalSupply: TypedContractMethod<[ asset: AddressLike ], [ bigint ], "view">; getAllATokens: TypedContractMethod<[ ], [ IPoolDataProvider.TokenDataStructOutput[] ], "view">; getAllReservesTokens: TypedContractMethod<[ ], [ IPoolDataProvider.TokenDataStructOutput[] ], "view">; getDebtCeiling: TypedContractMethod<[asset: AddressLike], [bigint], "view">; getDebtCeilingDecimals: TypedContractMethod<[], [bigint], "view">; getFlashLoanEnabled: TypedContractMethod<[ asset: AddressLike ], [ boolean ], "view">; getInterestRateStrategyAddress: TypedContractMethod<[ asset: AddressLike ], [ string ], "view">; getLiquidationProtocolFee: TypedContractMethod<[ asset: AddressLike ], [ bigint ], "view">; getPaused: TypedContractMethod<[asset: AddressLike], [boolean], "view">; getReserveCaps: TypedContractMethod<[ asset: AddressLike ], [ [bigint, bigint] & { borrowCap: bigint; supplyCap: bigint; } ], "view">; getReserveConfigurationData: TypedContractMethod<[ asset: AddressLike ], [ [ bigint, bigint, bigint, bigint, bigint, boolean, boolean, boolean, boolean, boolean ] & { decimals: bigint; ltv: bigint; liquidationThreshold: bigint; liquidationBonus: bigint; reserveFactor: bigint; usageAsCollateralEnabled: boolean; borrowingEnabled: boolean; stableBorrowRateEnabled: boolean; isActive: boolean; isFrozen: boolean; } ], "view">; getReserveData: TypedContractMethod<[ asset: AddressLike ], [ [ bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint ] & { unbacked: bigint; accruedToTreasuryScaled: bigint; totalAToken: bigint; totalStableDebt: bigint; totalVariableDebt: bigint; liquidityRate: bigint; variableBorrowRate: bigint; stableBorrowRate: bigint; averageStableBorrowRate: bigint; liquidityIndex: bigint; variableBorrowIndex: bigint; lastUpdateTimestamp: bigint; } ], "view">; getReserveEModeCategory: TypedContractMethod<[ asset: AddressLike ], [ bigint ], "view">; getReserveTokensAddresses: TypedContractMethod<[ asset: AddressLike ], [ [ string, string, string ] & { aTokenAddress: string; stableDebtTokenAddress: string; variableDebtTokenAddress: string; } ], "view">; getSiloedBorrowing: TypedContractMethod<[ asset: AddressLike ], [ boolean ], "view">; getTotalDebt: TypedContractMethod<[asset: AddressLike], [bigint], "view">; getUnbackedMintCap: TypedContractMethod<[ asset: AddressLike ], [ bigint ], "view">; getUserReserveData: TypedContractMethod<[ asset: AddressLike, user: AddressLike ], [ [ bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, boolean ] & { currentATokenBalance: bigint; currentStableDebt: bigint; currentVariableDebt: bigint; principalStableDebt: bigint; scaledVariableDebt: bigint; stableBorrowRate: bigint; liquidityRate: bigint; stableRateLastUpdated: bigint; usageAsCollateralEnabled: boolean; } ], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "ADDRESSES_PROVIDER"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "getATokenTotalSupply"): TypedContractMethod<[asset: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getAllATokens"): TypedContractMethod<[ ], [ IPoolDataProvider.TokenDataStructOutput[] ], "view">; getFunction(nameOrSignature: "getAllReservesTokens"): TypedContractMethod<[ ], [ IPoolDataProvider.TokenDataStructOutput[] ], "view">; getFunction(nameOrSignature: "getDebtCeiling"): TypedContractMethod<[asset: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getDebtCeilingDecimals"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getFlashLoanEnabled"): TypedContractMethod<[asset: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "getInterestRateStrategyAddress"): TypedContractMethod<[asset: AddressLike], [string], "view">; getFunction(nameOrSignature: "getLiquidationProtocolFee"): TypedContractMethod<[asset: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getPaused"): TypedContractMethod<[asset: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "getReserveCaps"): TypedContractMethod<[ asset: AddressLike ], [ [bigint, bigint] & { borrowCap: bigint; supplyCap: bigint; } ], "view">; getFunction(nameOrSignature: "getReserveConfigurationData"): TypedContractMethod<[ asset: AddressLike ], [ [ bigint, bigint, bigint, bigint, bigint, boolean, boolean, boolean, boolean, boolean ] & { decimals: bigint; ltv: bigint; liquidationThreshold: bigint; liquidationBonus: bigint; reserveFactor: bigint; usageAsCollateralEnabled: boolean; borrowingEnabled: boolean; stableBorrowRateEnabled: boolean; isActive: boolean; isFrozen: boolean; } ], "view">; getFunction(nameOrSignature: "getReserveData"): TypedContractMethod<[ asset: AddressLike ], [ [ bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint ] & { unbacked: bigint; accruedToTreasuryScaled: bigint; totalAToken: bigint; totalStableDebt: bigint; totalVariableDebt: bigint; liquidityRate: bigint; variableBorrowRate: bigint; stableBorrowRate: bigint; averageStableBorrowRate: bigint; liquidityIndex: bigint; variableBorrowIndex: bigint; lastUpdateTimestamp: bigint; } ], "view">; getFunction(nameOrSignature: "getReserveEModeCategory"): TypedContractMethod<[asset: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getReserveTokensAddresses"): TypedContractMethod<[ asset: AddressLike ], [ [ string, string, string ] & { aTokenAddress: string; stableDebtTokenAddress: string; variableDebtTokenAddress: string; } ], "view">; getFunction(nameOrSignature: "getSiloedBorrowing"): TypedContractMethod<[asset: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "getTotalDebt"): TypedContractMethod<[asset: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getUnbackedMintCap"): TypedContractMethod<[asset: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getUserReserveData"): TypedContractMethod<[ asset: AddressLike, user: AddressLike ], [ [ bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, boolean ] & { currentATokenBalance: bigint; currentStableDebt: bigint; currentVariableDebt: bigint; principalStableDebt: bigint; scaledVariableDebt: bigint; stableBorrowRate: bigint; liquidityRate: bigint; stableRateLastUpdated: bigint; usageAsCollateralEnabled: boolean; } ], "view">; filters: {}; }