import { ReserveId } from "./ReserveId"; import { Asset } from "./Asset"; import { Share } from "./Share"; import { AssetExchangeRate } from "./AssetExchangeRate"; import { ReserveUtilizationRatio } from "./ReserveUtilizationRatio"; import { ReserveBorrowRate } from "./ReserveBorrowRate"; import { MintId } from "./MintId"; import { Apy } from "./Apy"; import { OracleId } from "./OracleId"; import { MarketId } from "./MarketId"; import { TokenAccountId } from "./TokenAccountId"; import { Percentage } from "./basic"; import { AssetPrice } from "./AssetPrice"; import { QuantityContext } from "./QuantityContext"; import { AssetValue } from "./AssetValue"; import { Parsed } from "../serialization/Parsed"; import { PublicKey, TransactionInstruction } from "@solana/web3.js"; import { ReserveCollateral, ReserveConfig, ReserveData, ReserveLiquidity } from "../structs"; import { RawData } from "../serialization/RawData"; import { StakingPoolId } from "./staking/StakingPoolId"; import { ExchangeRate } from "./ExchangeRate"; import BN from "bn.js"; export declare class ReserveInfo implements Parsed { private readonly reserveId; readonly marketId: MarketId; readonly asset: ReserveAssetInfo; readonly share: ReserveTokenInfo; readonly params: ReserveParams; private readonly stakingPoolId; readonly proto: ReserveData; constructor(reserveId: ReserveId, marketId: MarketId, asset: ReserveAssetInfo, share: ReserveTokenInfo, params: ReserveParams, stakingPoolId: StakingPoolId | undefined, proto: ReserveData); static fromRaw(raw: RawData): ReserveInfo; getProto(): ReserveData; getId(): ReserveId; getReserveId(): ReserveId; getMarketId(): MarketId; getAssetMintId(): MintId; getAssetBalanceId(): TokenAccountId; getShareMintId(): MintId; getShareBalanceId(): TokenAccountId; getOracleId(): OracleId | null; getFeeBalanceId(): TokenAccountId; getMarketCap(price?: AssetPrice): AssetValue; getTotalAsset(): Asset; getAvailableAssetValue(price?: AssetPrice): AssetValue; getAvailableAsset(): Asset; getBorrowedAssetValue(price?: AssetPrice): AssetValue; getBorrowedAsset(): Asset; getQuantityContext(): QuantityContext; getMarkPrice(): AssetPrice; getExchangeRatio(): AssetExchangeRate; getUtilizationRatio(): ReserveUtilizationRatio; getSupplyApy(): Apy; getBorrowApy(): Apy; getStakingPoolId(): StakingPoolId | undefined; getMarketAuthority(): Promise<[PublicKey, number]>; depositReserve({ amount, userLiquidityWallet, destinationCollateralWallet, userTransferAuthority, }: { amount: BN; userLiquidityWallet: PublicKey; destinationCollateralWallet: PublicKey; userTransferAuthority: PublicKey; }): Promise; depositObligationCollateral({ amount, userCollateralWallet, obligation, obligationOwner, userTransferAuthority, }: { amount: BN; userCollateralWallet: PublicKey; obligation: PublicKey; obligationOwner: PublicKey; userTransferAuthority: PublicKey; }): Promise; borrowObligationLiquidity({ amount, userWallet, owner, obligation, }: { amount: BN; userWallet: PublicKey; obligation: PublicKey; owner: PublicKey; userTransferAuthority: PublicKey; }): Promise; redeemCollateral({ amount, userCollateralWallet, destinationLiquidityWallet, userTransferAuthority, }: { amount: BN; userCollateralWallet: PublicKey; destinationLiquidityWallet: PublicKey; userTransferAuthority: PublicKey; }): Promise; } export declare class ReserveAssetInfo { private readonly mintId; private readonly oracleId; private readonly feeAccountId; private readonly supplyAccountId; private readonly available; private readonly borrowed; private readonly markPrice; private readonly cumulativeBorrowRate; private readonly quantityContext; constructor(mintId: MintId, oracleId: OracleId | null, feeBalanceId: TokenAccountId, supplyAccountId: TokenAccountId, available: Asset, borrowed: Asset, markPrice: AssetPrice, cumulativeBorrowRate: ExchangeRate, quantityContext: QuantityContext); static fromRaw(raw: ReserveLiquidity): ReserveAssetInfo; getMintId(): MintId; getOracleId(): OracleId | null; getFeeAccountId(): TokenAccountId; getSplAccountId(): TokenAccountId; getAvailableAsset(): Asset; getBorrowedAsset(): Asset; getMarkPrice(): AssetPrice; getCumulativeBorrowRate(): ExchangeRate; getQuantityContext(): QuantityContext; } export declare class ReserveTokenInfo { private readonly mintId; private readonly splAccountId; private readonly issuedShare; constructor(mintId: MintId, splAccount: TokenAccountId, issuedShare: Share); static fromRaw(raw: ReserveCollateral): ReserveTokenInfo; getMintId(): MintId; getSplAccountId(): TokenAccountId; getIssuedShare(): Share; } export declare class ReserveParams { loanToValueRatio: Percentage; optimalUtilizationRatio: ReserveUtilizationRatio; optimalBorrowRate: ReserveBorrowRate; minBorrowRate: ReserveBorrowRate; maxBorrowRate: ReserveBorrowRate; liquidationThreshold: Percentage; liquidationPenalty: Percentage; borrowFee: Percentage; constructor(loanToValueRatio: Percentage, optimalUtilizationRatio: ReserveUtilizationRatio, optimalBorrowRate: ReserveBorrowRate, minBorrowRate: ReserveBorrowRate, maxBorrowRate: ReserveBorrowRate, liquidationThreshold: Percentage, liquidationPenalty: Percentage, borrowFee: Percentage); static fromRaw(mintId: MintId, config: ReserveConfig): ReserveParams; } //# sourceMappingURL=ReserveInfo.d.ts.map