import { Provider } from '@ethersproject/providers'; import { BigNumber, BigNumberish, BytesLike, ContractTransaction, Signer } from 'ethers'; import { IKasuAllowListAbi__factory } from '../../contracts'; import { SdkConfig } from '../../sdk-config'; import { PortfolioUserTrancheBalance, UserApyBonus, UserPoolBalance, UserRequest, UserTrancheBalance } from './types'; export declare class UserLending { private _kasuConfig; private readonly _graph; private readonly _directus; private _dataService; private readonly _userManagerAbi; private readonly _lendingPoolManagerAbi; private readonly _userLoyaltyRewardsAbi; private readonly _clearingCoordinatorAbi; private readonly _systemVariablesAbi; readonly _signerOrProvider: Signer | Provider; constructor(_kasuConfig: SdkConfig, signerOrProvider: Signer | Provider); getUserTotalPendingAndActiveDepositedAmount(user: string): Promise<[BigNumber, BigNumber]>; getUserTotalPendingAndActiveDepositedAmountForCurrentEpoch(user: string): Promise<[BigNumber, BigNumber]>; hasUserRKSU(user: string): Promise; buildKycSignatureParams(userAddress: `0x${string}`, chainId: string): { contractAbi: IKasuAllowListAbi__factory; contractAddress: string; functionName: string; args: BytesLike[]; userAddress: string; chainId: string; }; buildDepositSwapData(fromToken: string, fromAmount: string, routerAddress: string, swapCallData: string, minAmountOut: string): BytesLike; requestDepositWithKyc(lendingPool: string, tranche: string, maxAmount: BigNumberish, swapData: BytesLike, fixedTermConfigId: BigNumberish, depositData: BytesLike, kycData: { blockExpiration: BigNumberish; signature: BytesLike; }, ethValue: string): Promise; requestDeposit(lendingPool: string, tranche: string, amount: BigNumberish, swapData: BytesLike, fixedTermConfigId: BigNumberish, depositData: BytesLike): Promise; withdrawAtExpiry(lendingPool: string, fixedTermDepositId: string): Promise; lockDepositForFixedTerm(lendingPool: string, tranche: string, amount: BigNumberish, fixedTermConfigId: BigNumberish): Promise; cancelDepositRequest(lendingPool: string, dNftID: BigNumberish): Promise; requestWithdrawal(lendingPool: string, tranche: string, amount: BigNumberish): Promise; requestWithdrawalInAsset(lendingPool: string, tranche: string, assetAmount: BigNumberish): Promise; /** @deprecated Use `requestWithdrawalInAsset` instead. */ requestWithdrawalInUSDC(lendingPool: string, tranche: string, amount: BigNumberish): Promise; requestWithdrawalMax(lendingPool: string, tranche: string, user: string): Promise; cancelWithdrawalRequest(lendingPool: string, dNftID: BigNumberish): Promise; claimRepaidLoss(lendingPool: string, tranche: string, lossId: BigNumberish): Promise; getUserRequests(userAddress: `0x${string}`, epochId: string): Promise; getCurrentEpoch(): Promise; getCurrentFtdBalance(poolId: string, userId: string): Promise>; getCurrentEpochFtdAmount(poolIds: string[], userId: string, currentEpoch: string): Promise>; getCurrentEpochDepositedAmount(lendingPoolIds: string[], userId: string): Promise>; convertSharesToAssets(sharesAmount: string, totalAssets: string, totalSupply: string): string; isClearingPending(poolId: string): Promise; isCancelable(status: string, lendingPoolId: string): Promise; getUserPoolBalance(user: string, poolIds: string[], provider?: Provider): Promise; getPortfolioUserTrancheBalances(user: string): Promise; getUserTrancheBalance(user: string, poolId: string, trancheId: string): Promise; getUserApyBonus(user: string): Promise; }