///
///
///
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 {};