///
///
import { BeetStruct } from '@metaplex-foundation/beet';
import { PublicKey } from '@solana/web3.js';
import BigNumber from 'bignumber.js';
export type VaultAsset = {
mint: PublicKey;
idleAta: PublicKey;
totalValue: BigNumber;
idleAtaAuthBump: number;
reserved: number[];
};
export declare const vaultAssetStruct: BeetStruct>;
export type VaultLp = {
mint: PublicKey;
mintBump: number;
mintAuthBump: number;
reserved: number[];
};
export declare const vaultLpStruct: BeetStruct>;
export type VaultConfiguration = {
maxCap: BigNumber;
startAtTs: BigNumber;
lockedProfitDegradationDuration: BigNumber;
withdrawalWaitingPeriod: BigNumber;
reserved: number[];
};
export declare const vaultConfigurationStruct: BeetStruct>;
export type FeeConfiguration = {
managerPerformanceFee: number;
adminPerformanceFee: number;
managerManagementFee: number;
adminManagementFee: number;
redemptionFee: number;
issuanceFee: number;
reserved: number[];
};
export declare const feeConfigurationStruct: BeetStruct>;
export type FeeUpdate = {
lastPerformanceFeeUpdateTs: BigNumber;
lastManagementFeeUpdateTs: BigNumber;
};
export declare const feeUpdateStruct: BeetStruct>;
export type FeeState = {
accumulatedLpManagerFees: BigNumber;
accumulatedLpAdminFees: BigNumber;
accumulatedLpProtocolFees: BigNumber;
reserved: number[];
};
export declare const feeStateStruct: BeetStruct>;
export type HighWaterMark = {
highestAssetPerLpDecimalBits: BigNumber;
lastUpdatedTs: BigNumber;
reserved: number[];
};
export declare const highWaterMarkStruct: BeetStruct>;
export type LockedProfitState = {
lastUpdatedLockedProfit: BigNumber;
lastReport: BigNumber;
};
export declare const lockedProfitStateStruct: BeetStruct>;
export type Vault = {
discriminator: number[];
name: number[];
description: number[];
asset: VaultAsset;
lp: VaultLp;
manager: PublicKey;
admin: PublicKey;
vaultConfiguration: VaultConfiguration;
feeConfiguration: FeeConfiguration;
feeUpdate: FeeUpdate;
feeState: FeeState;
highWaterMark: HighWaterMark;
lastUpdatedTs: BigNumber;
version: number;
padding0: number[];
lockedProfitState: LockedProfitState;
reserved: number[];
};
export declare const vaultStruct: BeetStruct>;