/// /// /// import { BeetStruct, FixableBeetStruct } from '@metaplex-foundation/beet'; import { PublicKey } from '@solana/web3.js'; import BigNumber from 'bignumber.js'; export type BigFractionBytes = { value0: BigNumber; value1: BigNumber; value2: BigNumber; value3: BigNumber; padding: BigNumber; padding1: BigNumber; }; export declare const bigFractionBytesStruct: BeetStruct>; export type ObligationLiquidity = { borrowReserve: PublicKey; cumulativeBorrowRateBsf: BigFractionBytes; padding: BigNumber; borrowedAmountSf: BigNumber; marketValueSf: BigNumber; borrowFactorAdjustedMarketValueSf: BigNumber; padding2: BigNumber[]; }; export declare const obligationLiquidityStruct: BeetStruct>; export type ObligationCollateral = { depositReserve: PublicKey; depositedAmount: BigNumber; marketValueSf: BigNumber; padding: BigNumber[]; }; export declare const obligationCollateralStruct: BeetStruct>; export type LastUpdate = { slot: BigNumber; stale: number; placeholder: number[]; }; export declare const lastUpdateStruct: BeetStruct>; export type Obligation = { buffer: Buffer; tag: BigNumber; lastUpdate: LastUpdate; lendingMarket: PublicKey; owner: PublicKey; deposits: ObligationCollateral[]; lowestReserveDepositLtv: BigNumber; depositedValueSf: BigNumber; borrows: ObligationLiquidity[]; borrowFactorAdjustedDebtValueSf: BigNumber; borrowedAssetsMarketValueSf: BigNumber; allowedBorrowValueSf: BigNumber; unhealthyBorrowValueSf: BigNumber; depositsAssetTiers: number[]; borrowsAssetTiers: number[]; elevationGroup: number; reserved: number; referrer: PublicKey; padding3: BigNumber[]; }; export declare const obligationStruct: BeetStruct>; export type ElevationGroup = { maxLiquidationBonusBps: number; id: number; ltvPct: number; liquidationThresholdPct: number; allowNewLoans: number; reserved: number[]; padding: Buffer; }; export declare const elevationGroupStruct: BeetStruct>; export type LendingMarket = { buffer: Buffer; version: BigNumber; bumpSeed: BigNumber; lendingMarketOwner: PublicKey; lendingMarketOwnerCached: PublicKey; quoteCurrency: number[]; referralFeeBps: number; emergencyMode: number; reserved: number[]; priceRefreshTriggerToMaxAgePct: number; liquidationMaxDebtCloseFactorPct: number; insolvencyRiskUnhealthyLtvPct: number; minFullLiquidationAmountThreshold: BigNumber; maxLiquidatableDebtMarketValueAtOnce: BigNumber; globalUnhealthyBorrowValue: BigNumber; globalAllowedBorrowValue: BigNumber; riskCouncil: PublicKey; multiplierPointsTagBoost: number[]; elevationGroups: ElevationGroup[]; elevationGroupPadding: BigNumber[]; padding1: BigNumber[]; }; export declare const lendingMarketStruct: BeetStruct>; export type WithdrawalCaps = { configCapacity: BigNumber; currentTotal: BigNumber; lastIntervalStartTimestamp: BigNumber; configIntervalLengthSeconds: BigNumber; }; export declare const withdrawalCapsStruct: BeetStruct>; export type PythConfiguration = { price: PublicKey; }; export declare const pythConfigurationStruct: BeetStruct>; export type SwitchboardConfiguration = { priceAggregator: PublicKey; twapAggregator: PublicKey; }; export declare const switchboardConfigurationStruct: BeetStruct>; export type ScopeConfiguration = { priceFeed: PublicKey; priceChain: number[]; twapChain: number[]; }; export declare const scopeConfigurationStruct: BeetStruct>; export type PriceHeuristic = { lower: BigNumber; upper: BigNumber; exp: BigNumber; }; export declare const priceHeuristicStruct: BeetStruct>; export type TokenInfo = { name: number[]; heuristic: PriceHeuristic; maxTwapDivergenceBps: BigNumber; maxAgePriceSeconds: BigNumber; maxAgeTwapSeconds: BigNumber; scopeConfiguration: ScopeConfiguration; switchboardConfiguration: SwitchboardConfiguration; pythConfiguration: PythConfiguration; padding: Buffer; }; export declare const tokenInfoStruct: BeetStruct>; export type CurvePoint = { utilizationRateBps: number; borrowRateBps: number; }; export declare const CurvePointStruct: BeetStruct>; export type BorrowRateCurve = { points: CurvePoint[]; }; export declare const borrowRateCurveStruct: FixableBeetStruct>; export type ReserveFees = { borrowFeeSf: BigNumber; flashLoanFeeSf: BigNumber; padding: number[]; }; export declare const reserveFeesStruct: BeetStruct>; export type ReserveConfig = { status: number; assetTier: number; reserved0: number[]; multiplierSideBoost: number[]; multiplierTagBoost: number[]; protocolTakeRatePct: number; protocolLiquidationFeePct: number; loanToValuePct: number; liquidationThresholdPct: number; minLiquidationBonusBps: number; maxLiquidationBonusBps: number; badDebtLiquidationBonusBps: number; deleveragingMarginCallPeriodSecs: BigNumber; deleveragingThresholdSlotsPerBps: BigNumber; fees: ReserveFees; borrowRateCurve: BorrowRateCurve; borrowFactorPct: BigNumber; depositLimit: BigNumber; borrowLimit: BigNumber; tokenInfo: TokenInfo; depositWithdrawalCap: WithdrawalCaps; debtWithdrawalCap: WithdrawalCaps; elevationGroups: number[]; reserved1: number[]; }; export declare const reserveConfigStruct: FixableBeetStruct>; export type ReserveCollateral = { mintPubkey: PublicKey; mintTotalSupply: BigNumber; supplyVault: PublicKey; padding1: BigNumber[]; padding2: BigNumber[]; }; export declare const reserveCollateralStruct: BeetStruct>; export type ReserveLiquidity = { mintPubkey: PublicKey; supplyVault: PublicKey; feeVault: PublicKey; availableAmount: BigNumber; borrowedAmountSf: BigNumber; marketPriceSf: BigNumber; marketPriceLastUpdatedTs: BigNumber; mintDecimals: BigNumber; depositLimitCrossedSlot: BigNumber; borrowLimitCrossedSlot: BigNumber; cumulativeBorrowRateBsf: BigFractionBytes; accumulatedProtocolFeesSf: BigNumber; accumulatedReferrerFeesSf: BigNumber; pendingReferrerFeesSf: BigNumber; absoluteReferralRateSf: BigNumber; padding2: BigNumber[]; padding3: BigNumber[]; }; export declare const reserveLiquidityStruct: BeetStruct>; export type Reserve = { buffer: Buffer; version: BigNumber; lastUpdate: LastUpdate; lendingMarket: PublicKey; farmCollateral: PublicKey; farmDebt: PublicKey; liquidity: ReserveLiquidity; reserveLiquidityPadding: BigNumber[]; collateral: ReserveCollateral; reserveCollateralPadding: BigNumber[]; config: ReserveConfig; configPadding: BigNumber[]; padding: BigNumber[]; }; export declare const reserveStruct: FixableBeetStruct>;