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 AaveProtocolDataProvider { type TokenDataStruct = { symbol: string; tokenAddress: AddressLike; }; type TokenDataStructOutput = [symbol: string, tokenAddress: string] & { symbol: string; tokenAddress: string; }; } export interface AaveV2ProtocolDataProviderInterface extends Interface { getFunction(nameOrSignature: "ADDRESSES_PROVIDER" | "getAllATokens" | "getAllReservesTokens" | "getReserveConfigurationData" | "getReserveData" | "getReserveTokensAddresses" | "getUserReserveData"): FunctionFragment; encodeFunctionData(functionFragment: "ADDRESSES_PROVIDER", values?: undefined): string; encodeFunctionData(functionFragment: "getAllATokens", values?: undefined): string; encodeFunctionData(functionFragment: "getAllReservesTokens", values?: undefined): string; encodeFunctionData(functionFragment: "getReserveConfigurationData", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getReserveData", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getReserveTokensAddresses", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getUserReserveData", values: [AddressLike, AddressLike]): string; decodeFunctionResult(functionFragment: "ADDRESSES_PROVIDER", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAllATokens", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAllReservesTokens", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getReserveConfigurationData", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getReserveData", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getReserveTokensAddresses", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getUserReserveData", data: BytesLike): Result; } export interface AaveV2ProtocolDataProvider extends BaseContract { connect(runner?: ContractRunner | null): AaveV2ProtocolDataProvider; waitForDeployment(): Promise; interface: AaveV2ProtocolDataProviderInterface; 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">; getAllATokens: TypedContractMethod<[ ], [ AaveProtocolDataProvider.TokenDataStructOutput[] ], "view">; getAllReservesTokens: TypedContractMethod<[ ], [ AaveProtocolDataProvider.TokenDataStructOutput[] ], "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 ] & { availableLiquidity: bigint; totalStableDebt: bigint; totalVariableDebt: bigint; liquidityRate: bigint; variableBorrowRate: bigint; stableBorrowRate: bigint; averageStableBorrowRate: bigint; liquidityIndex: bigint; variableBorrowIndex: bigint; lastUpdateTimestamp: bigint; } ], "view">; getReserveTokensAddresses: TypedContractMethod<[ asset: AddressLike ], [ [ string, string, string ] & { aTokenAddress: string; stableDebtTokenAddress: string; variableDebtTokenAddress: string; } ], "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: "getAllATokens"): TypedContractMethod<[ ], [ AaveProtocolDataProvider.TokenDataStructOutput[] ], "view">; getFunction(nameOrSignature: "getAllReservesTokens"): TypedContractMethod<[ ], [ AaveProtocolDataProvider.TokenDataStructOutput[] ], "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 ] & { availableLiquidity: bigint; totalStableDebt: bigint; totalVariableDebt: bigint; liquidityRate: bigint; variableBorrowRate: bigint; stableBorrowRate: bigint; averageStableBorrowRate: bigint; liquidityIndex: bigint; variableBorrowIndex: bigint; lastUpdateTimestamp: bigint; } ], "view">; getFunction(nameOrSignature: "getReserveTokensAddresses"): TypedContractMethod<[ asset: AddressLike ], [ [ string, string, string ] & { aTokenAddress: string; stableDebtTokenAddress: string; variableDebtTokenAddress: string; } ], "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: {}; }