/// import { EuroMeta } from "@mithraic-labs/tokenized-euros"; import { BN } from "@project-serum/anchor"; import { PublicKey, Transaction } from "@solana/web3.js"; export declare type VaultAccount = { ownerAuthority: PublicKey; managerAuthority: PublicKey; taskerAuthority: PublicKey; vaultCollateralAssetAccount: PublicKey; withdrawalCollateralAssetAccount: PublicKey; vaultOwnershipTokenAccount: PublicKey; feeTokenAccount: PublicKey; collateralAssetMint: PublicKey; quoteAssetMint: PublicKey; vaultOwnershipTokenMint: PublicKey; pythPriceOracle: PublicKey; seedVaultTokenPerCollateral: ExchangeRate; endingExchangeRateDecimals: number; strategyType: number; vaultAccountBump: number; uniqueSeed: number; maxDeposits: BN; fees: VaultFees; currentEpoch: BN; currentEpochHistory: PublicKey; pendingCollateralAssetDeposits: BN; pendingWithdrawalTokens: BN; optionsCollateralHeld: BN; optionsActive: boolean; }; export declare type VaultFees = { managementFeeBps: BN; performanceFeeBps: BN; withdrawalFeeBps: BN; }; export declare enum VaultVisibility { Development = 0, Staging = 1, Production = 2 } export declare type VaultInfo = { id: string; name: string; version: number; strategyType: Strategy; visibility: VaultVisibility; accounts: { vaultAddress: string; collateralAssetMint: string; vaultOwnershipTokenMint: string; optionsUnderlyingMint: string; pythPriceOracle: string; feeTokenAccount: string; }; deposits: { current: number; max: number; }; fees: { performance: number; withdrawal: number; }; status: { currentEpoch: number; optionsActive: boolean; nextEpochStartTime: number; nextOptionMintTime: number; isDeprecated: boolean; }; stakingProviderUrl?: string; selectedStrike?: number; apy: { currentEpochApy: number; weightedApy: { targetDelta: number; averageHistoricalLoss: number; epochsCounted: number; averageSaleYield: number; apyBeforeFees: number; apyAfterFees: number; }; }; vaultHistory: VaultHistory[]; valuePerVaultToken: number; staking?: { metadata?: { usdValuePerVaultToken?: number; }; stakePoolKey: string; stakingApr: number[]; poolRewards: PoolReward[]; }; }; export declare type VaultHistory = { saleAmount: number; saleYield: number; priceAtExpiry: number; endingValuePerVaultToken: number; strikePrice: number; overallYield: number; percentageLossOnCollateral: number; epoch: number; optionMinted: string; startDate: number; epochHistoryKey: string; }; export declare type ExchangeRate = { rate: BN; decimals: number; }; export declare enum StrategyType { CALL = 0, PUT = 1 } export declare type DepositReceipt = { bump: number; depositAmount: BN; epochHistory: PublicKey; forStaking: boolean; lockupPeriod: number; receiptOwner: PublicKey; vaultAccount: PublicKey; }; export declare type WithdrawalReceipt = { bump: number; withdrawalAmount: BN; epochHistory: PublicKey; forStaking: boolean; lockupPeriod: number; receiptOwner: PublicKey; vaultAccount: PublicKey; }; export declare enum Strategy { Call = 0, Put = 1 } export declare type PoolReward = { metadata?: { rewardPoolApr?: number[]; rewardInUsdPerYearPerRewardUnit?: number; usdValuePerRewardToken?: number; }; tokenSymbol: string; rewardPoolKey: string; rewardTokensPerWeek: number; rewardMintAddress: string; multiplier: number; poolId: number; }; export declare type TokenInfo = { tokenSymbol?: string; tokenName: string; mintAddress: string; icon?: string; decimals: number; lowPrecisionDecimals: number; prefix?: string; isVaultToken?: boolean; coingeckoId?: string; }; export interface StakingRecord { stakedAmount: BN; lastEpochClaimedVec: number[]; rewardUnits: BN; recordOwner: PublicKey; stakePool: PublicKey; lockUpExpiry: BN; } export interface StakePool { currentEpoch: number; epochDuration: BN; inactiveEpochVec: number[]; nextEpochStartTime: BN; rewardPoolCount: number; stakePoolAuthority: PublicKey; stakePoolBump: number; stakingTokenAccount: PublicKey; stakingTokenAccountBump: number; stakingTokenMint: PublicKey; startingEpochVec: number[]; totalRewardUnits: BN; uniqueSeeds: number; } export interface EpochsToClaim { [key: number]: number[]; } export interface ClaimableRewardData { totalClaimableAmount: number; tokenSymbol: string; epochsToClaim: EpochsToClaim; } export interface ClaimableRewards { [rewardTokenMint: string]: ClaimableRewardData; } export declare type EpochHistory = { vaultAccount: PublicKey; epoch: BN; epochHistoryBump: number; optionMarketMetaVec: { euroMeta: PublicKey; optionSaleMarket: { isSaleEnabled: boolean; collateralAssetPerOptionToken: BN; }; optionTokenAccount: PublicKey; writerTokenAccount: PublicKey; }[]; optionSaleAmount: BN; endingCollateralPerVaultToken: { rate: BN; decimals: number; }; }; export interface TokenAccount { amount: number; delegatedAmount: number; isNative: number; mint: PublicKey; owner: PublicKey; state: number; } export interface TokenAccountWithKey extends TokenAccount { key: PublicKey; } export interface EuroMetaWithKey extends EuroMeta { key: PublicKey; } export interface AnchorWallet { publicKey: PublicKey; signTransaction(transaction: Transaction): Promise; signAllTransactions(transactions: Transaction[]): Promise; } export declare type VaultData = { amount: number; isCall: boolean; serumMarketKey: string; strike: number; expirationTimestamp: number; endTimestamp: number; collateralKey: string; optionMintKey: string; euroMetaAddress: string; underlyingMint: string; stableMint: string; }; //# sourceMappingURL=vault.d.ts.map