///
///
///
import { BeetStruct } from '@metaplex-foundation/beet';
import { PublicKey } from '@solana/web3.js';
import BigNumber from 'bignumber.js';
export type Fees = {
borrowFeeWad: BigNumber;
flashLoanFeeWad: BigNumber;
hostFeePercentage: number;
};
export declare const feesStruct: BeetStruct>;
export type ReserveConfig = {
optimalUtilizationRate: number;
loanToValueRatio: number;
liquidationBonus: number;
liquidationThreshold: number;
minBorrowRate: number;
optimalBorrowRate: number;
maxBorrowRate: number;
fees: Fees;
depositLimit: BigNumber;
borrowLimit: BigNumber;
feeReceiver: PublicKey;
};
export declare const reserveConfigStruct: BeetStruct>;
export type Collateral = {
mintPubkey: PublicKey;
mintTotalSupply: BigNumber;
supplyPubkey: PublicKey;
};
export declare const collateralStruct: BeetStruct>;
export type Liquidity = {
mintPubkey: PublicKey;
mintDecimals: number;
supplyPubkey: PublicKey;
pythOracle: PublicKey;
switchboardOracle: PublicKey;
availableAmount: BigNumber;
borrowedAmountWads: BigNumber;
cumulativeBorrowRateWads: BigNumber;
marketPrice: BigNumber;
};
export declare const liquidityStruct: BeetStruct>;
export type LastUpdate = {
slot: BigNumber;
stale: number;
};
export declare const lastUpdateStruct: BeetStruct>;
export type Reserve = {
version: number;
lastUpdate: LastUpdate;
lendingMarket: PublicKey;
liquidity: Liquidity;
collateral: Collateral;
config: ReserveConfig;
padding: Buffer;
};
export declare const reserveStruct: BeetStruct>;
export type Obligation = {
version: number;
lastUpdate: LastUpdate;
lendingMarket: PublicKey;
owner: PublicKey;
depositedValue: BigNumber;
borrowedValue: BigNumber;
allowedBorrowValue: BigNumber;
unhealthyBorrowValue: BigNumber;
padding: Buffer;
depositsLen: number;
borrowsLen: number;
dataFlat: Buffer;
};
export declare const obligationStruct: BeetStruct>;
export type ObligationCollateral = {
depositReserve: PublicKey;
depositedAmount: BigNumber;
marketValue: BigNumber;
padding: Buffer;
};
export declare const obligationCollateralStruct: BeetStruct>;
export type ObligationLiquidity = {
borrowReserve: PublicKey;
cumulativeBorrowRateWads: BigNumber;
borrowedAmountWads: BigNumber;
marketValue: BigNumber;
padding: Buffer;
};
export declare const obligationLiquidityStruct: BeetStruct>;
export type ClaimStatus = {
buffer: Buffer;
isClaimed: boolean;
claimant: PublicKey;
claimedAt: BigNumber;
amount: BigNumber;
};
export declare const claimStatusStruct: BeetStruct>;
export type MerkleDistributor = {
buffer: Buffer;
base: PublicKey;
bump: number;
root: number[];
mint: PublicKey;
maxTotalClaim: BigNumber;
maxNumNodes: BigNumber;
totalAmountClaimed: BigNumber;
numNodesClaimed: BigNumber;
};
export declare const merkleDistributorStruct: BeetStruct>;