import BigNumber from "bignumber.js"; import { Obligation } from "../_generated/suilend/obligation/structs"; import { ParsedReserve } from "./reserve"; export type ParsedObligation = ReturnType; export type ParsedPosition = ParsedObligation["deposits"][0] | ParsedObligation["borrows"][0]; export declare const parseObligation: (obligation: Obligation, parsedReserveMap: { [coinType: string]: ParsedReserve; }, isStrategy?: boolean) => { id: string; depositedAmountUsd: BigNumber; borrowedAmountUsd: BigNumber; netValueUsd: BigNumber; weightedBorrowsUsd: BigNumber; maxPriceWeightedBorrowsUsd: BigNumber; borrowLimitUsd: BigNumber; minPriceBorrowLimitUsd: BigNumber; unhealthyBorrowValueUsd: BigNumber; depositPositionCount: number; borrowPositionCount: number; positionCount: number; deposits: { coinType: string; reserveArrayIndex: bigint; userRewardManagerIndex: number; userRewardManager: import("../_generated/suilend/liquidity-mining/structs").UserRewardManager; depositedAmount: BigNumber; depositedAmountUsd: BigNumber; depositedCtokenAmount: BigNumber; reserve: { config: { $typeName: `${string}::reserve_config::ReserveConfig`; openLtvPct: number; closeLtvPct: number; maxCloseLtvPct: number; borrowWeightBps: BigNumber; depositLimit: BigNumber; borrowLimit: BigNumber; liquidationBonusBps: number; maxLiquidationBonusBps: number; depositLimitUsd: BigNumber; borrowLimitUsd: BigNumber; borrowFeeBps: number; spreadFeeBps: number; protocolLiquidationFeeBps: number; isolated: boolean; openAttributedBorrowLimitUsd: number; closeAttributedBorrowLimitUsd: number; additionalFields: import("../_generated/_dependencies/sui/bag/structs").Bag; interestRate: { id: string; utilPercent: BigNumber; aprPercent: BigNumber; }[]; }; $typeName: `${string}::reserve::Reserve`; id: string; arrayIndex: bigint; coinType: string; mintDecimals: number; priceIdentifier: string; price: BigNumber; smoothedPrice: BigNumber; minPrice: BigNumber; maxPrice: BigNumber; priceLastUpdateTimestampS: bigint; availableAmount: BigNumber; ctokenSupply: BigNumber; borrowedAmount: BigNumber; cumulativeBorrowRate: BigNumber; interestLastUpdateTimestampS: bigint; unclaimedSpreadFees: BigNumber; attributedBorrowValue: BigNumber; depositsPoolRewardManager: { $typeName: `${string}::liquidity_mining::PoolRewardManager`; id: string; totalShares: bigint; poolRewards: { $typeName: `${string}::liquidity_mining::PoolReward`; id: string; poolRewardManagerId: string; coinType: string; startTimeMs: number; endTimeMs: number; totalRewards: BigNumber; allocatedRewards: BigNumber; cumulativeRewardsPerShare: BigNumber; numUserRewardManagers: bigint; rewardIndex: number; symbol: string; mintDecimals: number; }[]; lastUpdateTimeMs: bigint; }; borrowsPoolRewardManager: { $typeName: `${string}::liquidity_mining::PoolRewardManager`; id: string; totalShares: bigint; poolRewards: { $typeName: `${string}::liquidity_mining::PoolReward`; id: string; poolRewardManagerId: string; coinType: string; startTimeMs: number; endTimeMs: number; totalRewards: BigNumber; allocatedRewards: BigNumber; cumulativeRewardsPerShare: BigNumber; numUserRewardManagers: bigint; rewardIndex: number; symbol: string; mintDecimals: number; }[]; lastUpdateTimeMs: bigint; }; availableAmountUsd: BigNumber; borrowedAmountUsd: BigNumber; depositedAmount: BigNumber; depositedAmountUsd: BigNumber; cTokenExchangeRate: BigNumber; borrowAprPercent: BigNumber; depositAprPercent: BigNumber; utilizationPercent: BigNumber; token: { id: string | null; decimals: number; name: string; symbol: string; description: string; iconUrl: string | null; coinType: string; }; symbol: string; name: string; iconUrl: string | null; description: string; totalDeposits: BigNumber; }; original: Obligation; }[]; borrows: { coinType: string; reserveArrayIndex: bigint; userRewardManagerIndex: number; userRewardManager: import("../_generated/suilend/liquidity-mining/structs").UserRewardManager; borrowedAmount: BigNumber; borrowedAmountUsd: BigNumber; reserve: { config: { $typeName: `${string}::reserve_config::ReserveConfig`; openLtvPct: number; closeLtvPct: number; maxCloseLtvPct: number; borrowWeightBps: BigNumber; depositLimit: BigNumber; borrowLimit: BigNumber; liquidationBonusBps: number; maxLiquidationBonusBps: number; depositLimitUsd: BigNumber; borrowLimitUsd: BigNumber; borrowFeeBps: number; spreadFeeBps: number; protocolLiquidationFeeBps: number; isolated: boolean; openAttributedBorrowLimitUsd: number; closeAttributedBorrowLimitUsd: number; additionalFields: import("../_generated/_dependencies/sui/bag/structs").Bag; interestRate: { id: string; utilPercent: BigNumber; aprPercent: BigNumber; }[]; }; $typeName: `${string}::reserve::Reserve`; id: string; arrayIndex: bigint; coinType: string; mintDecimals: number; priceIdentifier: string; price: BigNumber; smoothedPrice: BigNumber; minPrice: BigNumber; maxPrice: BigNumber; priceLastUpdateTimestampS: bigint; availableAmount: BigNumber; ctokenSupply: BigNumber; borrowedAmount: BigNumber; cumulativeBorrowRate: BigNumber; interestLastUpdateTimestampS: bigint; unclaimedSpreadFees: BigNumber; attributedBorrowValue: BigNumber; depositsPoolRewardManager: { $typeName: `${string}::liquidity_mining::PoolRewardManager`; id: string; totalShares: bigint; poolRewards: { $typeName: `${string}::liquidity_mining::PoolReward`; id: string; poolRewardManagerId: string; coinType: string; startTimeMs: number; endTimeMs: number; totalRewards: BigNumber; allocatedRewards: BigNumber; cumulativeRewardsPerShare: BigNumber; numUserRewardManagers: bigint; rewardIndex: number; symbol: string; mintDecimals: number; }[]; lastUpdateTimeMs: bigint; }; borrowsPoolRewardManager: { $typeName: `${string}::liquidity_mining::PoolRewardManager`; id: string; totalShares: bigint; poolRewards: { $typeName: `${string}::liquidity_mining::PoolReward`; id: string; poolRewardManagerId: string; coinType: string; startTimeMs: number; endTimeMs: number; totalRewards: BigNumber; allocatedRewards: BigNumber; cumulativeRewardsPerShare: BigNumber; numUserRewardManagers: bigint; rewardIndex: number; symbol: string; mintDecimals: number; }[]; lastUpdateTimeMs: bigint; }; availableAmountUsd: BigNumber; borrowedAmountUsd: BigNumber; depositedAmount: BigNumber; depositedAmountUsd: BigNumber; cTokenExchangeRate: BigNumber; borrowAprPercent: BigNumber; depositAprPercent: BigNumber; utilizationPercent: BigNumber; token: { id: string | null; decimals: number; name: string; symbol: string; description: string; iconUrl: string | null; coinType: string; }; symbol: string; name: string; iconUrl: string | null; description: string; totalDeposits: BigNumber; }; original: Obligation; }[]; weightedConservativeBorrowUtilizationPercent: BigNumber; original: Obligation; /** * @deprecated since version 1.0.3. Use `depositedAmountUsd` instead. */ totalSupplyUsd: BigNumber; /** * @deprecated since version 1.0.3. Use `borrowedAmountUsd` instead. */ totalBorrowUsd: BigNumber; /** * @deprecated since version 1.0.3. Use `weightedBorrowsUsd` instead. */ totalWeightedBorrowUsd: BigNumber; /** * @deprecated since version 1.0.3. Use `maxPriceWeightedBorrowsUsd` instead. */ maxPriceTotalWeightedBorrowUsd: BigNumber; /** * @deprecated since version 1.0.3. Use `borrowLimitUsd` instead. */ borrowLimit: BigNumber; /** * @deprecated since version 1.0.3. Use `minPriceBorrowLimitUsd` instead. */ minPriceBorrowLimit: BigNumber; };