///
///
import { AccountInfo, PublicKey } from '@solana/web3.js';
import BigNumber from 'bignumber.js';
import { Parser } from '../util';
import { LastUpdate } from './lastUpdate';
export interface Obligation {
version: number;
lastUpdate: LastUpdate;
lendingMarket: PublicKey;
owner: PublicKey;
deposits: ObligationCollateral[];
borrows: ObligationLiquidity[];
depositedValue: BigNumber;
borrowedValue: BigNumber;
allowedBorrowValue: BigNumber;
unhealthyBorrowValue: BigNumber;
}
export interface ObligationCollateral {
depositReserve: PublicKey;
depositedAmount: bigint;
marketValue: BigNumber;
}
export interface ObligationLiquidity {
borrowReserve: PublicKey;
cumulativeBorrowRateWads: BigNumber;
borrowedAmountWads: BigNumber;
marketValue: BigNumber;
}
/** @internal */
export interface ObligationDataFlat {
version: number;
lastUpdate: LastUpdate;
lendingMarket: PublicKey;
owner: PublicKey;
depositedValue: BigNumber;
borrowedValue: BigNumber;
allowedBorrowValue: BigNumber;
unhealthyBorrowValue: BigNumber;
padding: Buffer;
depositsLen: number;
borrowsLen: number;
dataFlat: Buffer;
}
/** @internal */
export declare const ObligationCollateralLayout: import("buffer-layout").Layout;
/** @internal */
export declare const ObligationLiquidityLayout: import("buffer-layout").Layout;
/** @internal */
export declare const ObligationLayout: import("buffer-layout").Layout;
export declare const OBLIGATION_SIZE: number;
export declare const isObligation: (info: AccountInfo) => boolean;
export declare const parseObligation: Parser;