import { Instantiable, InstantiableConfig } from '../../Instantiable.abstract'; import { Account } from '../../nevermined'; import { GenericContract, TxParameters, AaveCreditTemplate, AaveCreditTemplateParams, AgreementInstance } from '../../keeper'; import { AaveConfig } from '../../models'; export declare class AaveCredit extends Instantiable { template: AaveCreditTemplate; aaveConfig: AaveConfig; serviceType: 'aave-credit'; static getInstance(config: InstantiableConfig): Promise; create(did: string, nftTokenContract: string, nftAmount: number, collateralToken: string, collateralAmount: number, delegatedToken: string, delegatedAmount: number, interestRateMode: number, borrower: string, lender: string, from: Account, timeLocks?: number[], timeOuts?: number[], txParams?: TxParameters): Promise<{ agreementId: string; data: AgreementInstance; }>; lockNft(agreementId: string, nftContractAddress: string, nftAmount: number, from?: Account, did?: string, vaultAddress?: string): Promise; depositCollateral(agreementId: string, collateralAsset: string, collateralAmount: number, delegatedAsset: string, delegatedAmount: number, interestRateMode: number, from: Account, useWethGateway?: boolean, did?: string, vaultAddress?: string): Promise; borrow(agreementId: string, delegatedAsset: string, delegatedAmount: number, interestRateMode: number, from: Account, did?: string, vaultAddress?: string): Promise; repayDebt(agreementId: string, delegatedAsset: string, delegatedAmount: number, interestRateMode: number, from?: Account, did?: string, vaultAddress?: string): Promise; withdrawCollateral(agreementId: string, collateralAsset: string, collateralAmount: number, delegatedAsset: string, delegatedAmount: number, interestRateMode: number, from?: Account, did?: string, vaultAddress?: string): Promise; unlockNft(agreementId: string, nftContractAddress: string, from?: Account, did?: string, vaultAddress?: string): Promise; getVaultContract(agreementId: string, from: string, vaultAddress?: string): Promise; getTotalActualDebt(agreementId: string, from: Account, vaultAddress?: string): Promise; getActualCreditDebt(agreementId: string, from: Account, vaultAddress?: string): Promise; getCreditAssetDebt(agreementId: string, from: Account, vaultAddress?: string): Promise; getAssetPrice(agreementId: string, tokenAddress: string, from: Account, vaultAddress?: string): Promise; getBorrowedAmount(agreementId: string, from: Account, vaultAddress?: string): Promise; delegatedAmount(agreementId: string, borrower: string, delegatedToken: string, interestRateMode: number, from: Account, vaultAddress?: string): Promise; }