import { SuiClientTypes } from "@mysten/sui/client"; import BigNumber from "bignumber.js"; import { PoolReward, PoolRewardManager } from "../_generated/suilend/liquidity-mining/structs"; import { Reserve } from "../_generated/suilend/reserve/structs"; import * as simulate from "../utils/simulate"; export type ParsedReserve = ReturnType; export type ParsedReserveConfig = ReturnType; export type ParsedPoolRewardManager = ReturnType; export type ParsedPoolReward = NonNullable>; export declare const parseReserve: (reserve: Reserve, coinMetadataMap: Record, share?: simulate.ConfidenceShare, kBps?: BigNumber) => { 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; }; /** * @deprecated since version 1.1.19. Use `token.symbol` instead. */ symbol: string; /** * @deprecated since version 1.1.19. Use `token.name` instead. */ name: string; /** * @deprecated since version 1.1.19. Use `token.iconUrl` instead. */ iconUrl: string | null; /** * @deprecated since version 1.1.19. Use `token.description` instead. */ description: string; /** * @deprecated since version 1.0.3. Use `depositedAmount` instead. */ totalDeposits: BigNumber; }; export declare const parseReserveConfig: (reserve: Reserve) => { $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; }[]; }; export declare const parsePoolRewardManager: (poolRewardManager: PoolRewardManager, coinMetadataMap: Record) => { $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; }; export declare const parsePoolReward: (poolReward: PoolReward | null, rewardIndex: number, coinMetadataMap: Record) => { $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; } | null;