/// /// /// import { BeetStruct } from '@metaplex-foundation/beet'; import { PublicKey } from '@solana/web3.js'; import BigNumber from 'bignumber.js'; type RealizedYield = { gainPerSecond: BigNumber; apr: BigNumber; buffer: Buffer[]; }; export declare const realizedYieldStruct: BeetStruct>; type FeesV1 = { feeMultiplier: BigNumber; controllerFee: BigNumber; platformFee: BigNumber; withdrawFee: BigNumber; depositFee: BigNumber; feeWallet: PublicKey; totalCollectedA: BigNumber; totalCollectedB: BigNumber; buffer: BigNumber[]; }; export declare const feesV1Struct: BeetStruct>; type VaultBaseV1 = { nonce: number; tag: number[]; pda: PublicKey; pdaNonce: number; pdaAlignment: number[]; totalDepositedBalance: BigNumber; totalShares: BigNumber; underlyingMint: PublicKey; underlyingWithdrawQueue: PublicKey; underlyingDepositQueue: PublicKey; underlyingCompoundQueue: PublicKey; sharesMint: PublicKey; withdrawsPaused: number; depositsPaused: number; compoundPaused: number; supportsCompound: number; rebasePaused: number; rebalancePaused: number; stateAlignment: number[]; precisionFactor: BigNumber; lastCompoundTime: BigNumber; compoundInterval: BigNumber; slippageTolerance: number; slipAlignment: number[]; fees: FeesV1; farm: BigNumber[]; configured: number; configuredAlignment: number[]; pendingFees: BigNumber; totalDepositedBalanceCap: BigNumber; realizedYield: RealizedYield; buffer: BigNumber[]; }; export declare const vaultBaseV1Struct: BeetStruct>; export declare enum ProgramType { SplUnmodified = 0, SplModifiedSolend = 1, MangoV3 = 2, Unknown = 3 } type StandaloneVaultCacheV1 = { vaultAddress: PublicKey; depositedBalance: BigNumber; programType: ProgramType; programAddress: PublicKey; sharesMint: PublicKey; sharesAccount: PublicKey; alignment: number[]; buffer: BigNumber[]; }; export declare const standaloneVaultCacheV1Struct: BeetStruct>; export type MultiDepositOptimizerV1 = { buffer: Buffer; base: VaultBaseV1; lastRebaseSlot: BigNumber; standaloneVaults: StandaloneVaultCacheV1[]; targetVault: PublicKey; stateTransitionAccount: PublicKey; minimumRebalanceAmount: BigNumber; pading: number[]; }; export declare const multiDepositOptimizerV1Struct: BeetStruct>; type DepositTrackingV1 = { buffer: Buffer; owner: PublicKey; vault: PublicKey; pdaNonce: number; queueNonce: number; alignment: number[]; shares: BigNumber; depositedBalance: BigNumber; lastDepositTime: BigNumber; pendingWithdrawAmount: BigNumber; totalDepositedUnderlying: BigNumber; totalWithdrawnUnderlying: BigNumber; lastPendingReward: BigNumber; rewardPerSharePaid: BigNumber; extraDataAccount: PublicKey; padding: number[]; }; export declare const depositTrackingV1Struct: BeetStruct>; export type LastUpdateSlot = { slot: BigNumber; stale: number; }; export declare const lastUpdateSlotStruct: BeetStruct>; export type Liquidity = { mintPubKey: PublicKey; mintDecimals: number; supplyPubKey: PublicKey; feeReceiver: PublicKey; oraclePubKey: PublicKey; availableAmount: BigNumber; borrowedAmountWads: BigNumber; cumulativeBorrowRate: BigNumber; marketPrice: BigNumber; platformAmountWads: BigNumber; platformFees: number; collateralMint: PublicKey; }; export declare const liquidityStruct: BeetStruct>; export type LendingReserve = { version: number; lastUpdateSlot: LastUpdateSlot; lendingMarket: PublicKey; borrowAuthorizer: PublicKey; liquidity: Liquidity; }; export declare const lendingReserveStruct: BeetStruct>; export type Obligation = { obligationAccount: PublicKey; coinAmount: BigNumber; pcAmount: BigNumber; depositedLpTokens: BigNumber; positionState: number; }; export declare const obligationStruct: BeetStruct>; export type UserFarm = { buffer: Buffer; authority: PublicKey; leveragedFarm: PublicKey; userFarmNumber: number; numberOfObligations: number; numberOfUserFarms: number; nonce: number; obligations: Obligation[]; }; export declare const userFarmStruct: BeetStruct>; export type ObligationLiquity = { borrowReserve: PublicKey; cumulativeBorrowRateWads: BigNumber; borrowedAmountWads: BigNumber; marketValue: BigNumber; }; export declare const obligationLiquityStruct: BeetStruct>; export type LendingObligation = { version: number; lastUpdateSlot: LastUpdateSlot; lendingMarket: PublicKey; owner: PublicKey; borrowedValue: BigNumber; vaultShares: BigNumber; lpTokens: BigNumber; coinDeposits: BigNumber; pcDeposits: BigNumber; depositsMarketValue: BigNumber; lpDecimals: number; coinDecimals: number; pcDecimals: number; depositsLen: number; borrowsLen: number; obligationLiquidities: ObligationLiquity[]; }; export declare const lendingObligationStruct: BeetStruct>; export {};