import { BN, Program, Wallet } from '@coral-xyz/anchor'; import { Connection, PublicKey, Transaction, VersionedTransaction } from '@solana/web3.js'; import { Vault } from "./types/vault.js"; import { AddWithdrawSupplyEvent, CanceledWithdrawRequestEvent, ClaimWithdrawEvent, CloseBatchEvent, CollectDepositFeeEvent, CollectPerformanceFeeEvent, CollectRevenueFeeEvent, CollectWithdrawFeeEvent, ConcludeBatchEvent, DepositEvent, OpenNewBatchEvent, ProcessUserBatchEvent, RequestWithdrawEvent, TransferTempEvent, WithdrawSupplyEvent } from "./types/vault-event-types.js"; import { ProgramStatusType, VaultStatusType, FeeReceiverDetail, UserStatusType } from "./types/vault-enums.js"; export declare class VaultLib { program: Program; connection: Connection; constructor(programId: PublicKey, connection: Connection, wallet: Wallet); signTransaction(tx: Transaction, secretKey: string): Transaction; signVersionTransaction(tx: VersionedTransaction, secretKey: string): VersionedTransaction; addSignatureInTransaction(tx: Transaction, signerAddress: PublicKey, signature: Buffer): Transaction; addSignatureInVersionTransaction(tx: VersionedTransaction, signerAddress: PublicKey, signature: Buffer): VersionedTransaction; addFeePayerAndRecentBlockHashInTransaction(tx: Transaction, feePayer: PublicKey, units?: number): Promise; isPdaAddressInitialize(pdaAddress: PublicKey): Promise; getProgramConfigAccountPdaAndBump(): [PublicKey, number]; getVaultDetailAccountPdaAndBump(vaultName: string): [PublicKey, number]; getVaultDepositTreasureAccountPdaAndBump(vaultDetail: PublicKey): [PublicKey, number]; getVaultWithdrawTreasureAccountPdaAndBump(vaultDetail: PublicKey): [PublicKey, number]; getVaultTempWithdrawTreasureAccountPdaAndBump(vaultDetail: PublicKey): [PublicKey, number]; getVaultDepositFeeDetailAccountPdaAndBump(vaultDetail: PublicKey): [PublicKey, number]; getVaultWithdrawFeeDetailAccountPdaAndBump(vaultDetail: PublicKey): [PublicKey, number]; getVaultPerformanceFeeDetailAccountPdaAndBump(vaultDetail: PublicKey): [PublicKey, number]; getVaultRevenueFeeDetailAccountPdaAndBump(vaultDetail: PublicKey): [PublicKey, number]; getVaultBatchDetailAccountPdaAndBump(vaultDetail: PublicKey, batchIndex: number): [PublicKey, number]; getUserDetailAccountPdaAndBump(vaultDetail: PublicKey, user: PublicKey): [PublicKey, number]; getUserBatchDetailAccountPdaAndBump(userDetail: PublicKey, batchIndex: number): [PublicKey, number]; getUserDepositDetailAccountPdaAndBump(userDetail: PublicKey, depositIndex: number): [PublicKey, number]; getUserWithdrawDetailAccountPdaAndBump(userDetail: PublicKey, withdrawIndex: number): [PublicKey, number]; getProgramConfigAccountData(): Promise<{ lastBlockTimestamp: BN; mainSigningAuthority: PublicKey; programStatus: ({ halted?: undefined; } & { normal: Record; }) | ({ normal?: undefined; } & { halted: Record; }); pendingMainSigningAuthority: PublicKey | null; }>; getVaultDetailAccountData(vaultName: string): Promise<{ lastBlockTimestamp: BN; name: string; owner: PublicKey; mint: PublicKey; operator: PublicKey; processTxFeeReceiver: PublicKey; depositReceiver: PublicKey; withdrawAuthority: PublicKey; processTxFee: BN; currentWithdrawTreasureBalance: BN; currentDepositTreasureBalance: BN; currentSharePrice: BN; totalDepositAmount: BN; totalProcessedDepositAmount: BN; currentShares: BN; totalShares: BN; userCount: number; depositCount: number; requestedWithdrawCount: number; totalRequestedWithdrawAmount: BN; totalDepositFee: BN; totalWithdrawFee: BN; totalPerformanceFee: BN; totalRevenueFee: BN; vaultStatus: ({ halted?: undefined; } & { normal: Record; }) | ({ normal?: undefined; } & { halted: Record; }); vaultBatchStatus: ({ batchOpen?: undefined; batchClose?: undefined; } & { draft: Record; }) | ({ draft?: undefined; batchClose?: undefined; } & { batchOpen: Record; }) | ({ draft?: undefined; batchOpen?: undefined; } & { batchClose: Record; }); batchCount: number; batchUsers: number; processedBatchUser: number; totalAddedWithdrawTreasureAmount: BN; addedWithdrawTreasureCount: number; totalWithdrawTreasureAmount: BN; withdrawTreasureCount: number; totalDepositTreasureTransferAmount: BN; depositTreasureTransferCount: number; inProcessDepositTreasureAmount: BN; totalProcessTxFee: BN; processTxFeeCount: number; totalCancelRequestedWithdrawAmount: BN; totalCancelPerformanceFee: BN; cancelRequestedWithdrawCount: number; concludedBatchCount: number; totalWithdrawClaimedAmount: BN; withdrawClaimedCount: number; totalTransferTempAmount: BN; transferTempCount: number; }>; getVaultDepositFeeDetailAccountData(vaultName: string): Promise<{ lastBlockTimestamp: BN; enable: boolean; basePoint: number; minimumClaimableFee: BN; totalFeeReceived: BN; totalFeeClaimed: BN; feeReceiveCount: number; feeClaimCount: number; receivers: { receiver: PublicKey; basePoint: number; }[]; }>; getVaultWithdrawFeeDetailAccountData(vaultName: string): Promise<{ lastBlockTimestamp: BN; enable: boolean; basePoint: number; minimumClaimableFee: BN; totalFeeReceived: BN; totalFeeClaimed: BN; feeReceiveCount: number; feeClaimCount: number; receivers: { receiver: PublicKey; basePoint: number; }[]; }>; getVaultPerformanceFeeDetailAccountData(vaultName: string): Promise<{ lastBlockTimestamp: BN; enable: boolean; basePoint: number; minimumClaimableFee: BN; totalFeeReceived: BN; totalFeeClaimed: BN; feeReceiveCount: number; feeClaimCount: number; receivers: { receiver: PublicKey; basePoint: number; }[]; }>; getVaultBatchDetailAccountData(vaultName: string, batchIndex: number): Promise<{ lastBlockTimestamp: BN; openAt: BN; closeAt: BN; totalDepositAmount: BN; totalRequestedWithdrawAmount: BN; totalDepositFee: BN; totalWithdrawFee: BN; totalPerformanceFee: BN; totalRevenueFee: BN; sharePrice: BN; batchIndex: number; depositCount: number; requestedWithdrawCount: number; batchUsers: number; processedBatchUser: number; status: ({ close?: undefined; concluded?: undefined; } & { open: Record; }) | ({ open?: undefined; concluded?: undefined; } & { close: Record; }) | ({ open?: undefined; close?: undefined; } & { concluded: Record; }); depositDeltaAmount: BN; withdrawDeltaAmount: BN; totalCancelRequestedWithdrawAmount: BN; totalCancelPerformanceFee: BN; cancelRequestedWithdrawCount: number; totalWithdrawClaimedAmount: BN; withdrawClaimedCount: number; }>; getUserDetailAccountData(vaultName: string, user: PublicKey): Promise<{ lastBlockTimestamp: BN; user: PublicKey; name: string; currentShares: BN; totalShares: BN; totalDepositAmount: BN; totalRequestedWithdrawAmount: BN; depositCount: number; requestedWithdrawCount: number; participatedBatchCount: number; processedParticipatedBatchCount: number; status: ({ halted?: undefined; } & { normal: Record; }) | ({ normal?: undefined; } & { halted: Record; }); totalCancelRequestedWithdrawAmount: BN; cancelRequestedWithdrawCount: number; totalWithdrawClaimedAmount: BN; withdrawClaimedCount: number; }>; getUserDepositDetailAccountData(vaultName: string, user: PublicKey, depositIndex: number): Promise<{ lastBlockTimestamp: BN; user: PublicKey; name: string; depositIndex: number; batchIndex: number; depositAmount: BN; }>; getUserWithdrawDetailAccountData(vaultName: string, user: PublicKey, withdrawIndex: number): Promise<{ lastBlockTimestamp: BN; user: PublicKey; name: string; withdrawIndex: number; batchIndex: number; requestedWithdrawAmount: BN; performanceFee: BN; status: ({ canceled?: undefined; claimed?: undefined; } & { pending: Record; }) | ({ pending?: undefined; claimed?: undefined; } & { canceled: Record; }) | ({ pending?: undefined; canceled?: undefined; } & { claimed: Record; }); }>; getCurrentVaultBatchIndex(vaultName: string): Promise; getCurrentUserDepositIndex(vaultName: string, user: PublicKey): Promise; getCurrentUserWithdrawIndex(vaultName: string, user: PublicKey): Promise; createInitializeTransaction(feeAndRentPayer: PublicKey, mainSigningAuthority: PublicKey, systemProgram: PublicKey, rent: PublicKey): Promise; createUpdateProgramStatusTransaction(mainSigningAuthority: PublicKey, programStatus: ProgramStatusType): Promise; createTransferProgramMainAuthorityTransaction(mainSigningAuthority: PublicKey, newMainSigningAuthority: PublicKey): Promise; createAcceptProgramMainAuthorityTransaction(acceptingMainSigningAuthority: PublicKey): Promise; createCancelProgramMainAuthorityTransaction(mainSigningAuthority: PublicKey): Promise; createInitializeVaultTransaction(feeAndRentPayer: PublicKey, mainSigningAuthority: PublicKey, vaultName: string, owner: PublicKey, tokenMintAccount: PublicKey, operator: PublicKey, processTxFeeReceiver: PublicKey, depositReceiver: PublicKey, processTxFee: BN, withdrawAuthority: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey, systemProgram: PublicKey, rent: PublicKey): Promise; createUpdateVaultStatusTransaction(mainSigningAuthority: PublicKey, vaultName: string, owner: PublicKey, vaultStatus: VaultStatusType, withdrawAuthority: PublicKey): Promise; createUpdateVaultTransaction(owner: PublicKey, vaultName: string, operator: PublicKey, processTxFeeReceiver: PublicKey, depositReceiver: PublicKey, processTxFee: BN): Promise; createInitializeVaultDepositFeeTransaction(feeAndRentPayer: PublicKey, owner: PublicKey, vaultName: string, enable: boolean, basePoint: number, minimumClaimableFee: BN, receivers: FeeReceiverDetail[], tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey, systemProgram: PublicKey, rent: PublicKey): Promise; createUpdateVaultDepositFeeTransaction(feeAndRentPayer: PublicKey, owner: PublicKey, vaultName: string, enable: boolean, basePoint: number, minimumClaimableFee: BN, receivers: FeeReceiverDetail[], tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey, systemProgram: PublicKey, rent: PublicKey): Promise; createInitializeVaultWithdrawFeeTransaction(feeAndRentPayer: PublicKey, owner: PublicKey, vaultName: string, enable: boolean, basePoint: number, minimumClaimableFee: BN, receivers: FeeReceiverDetail[], tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey, systemProgram: PublicKey, rent: PublicKey): Promise; createUpdateVaultWithdrawFeeTransaction(feeAndRentPayer: PublicKey, owner: PublicKey, vaultName: string, enable: boolean, basePoint: number, minimumClaimableFee: BN, receivers: FeeReceiverDetail[], tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey, systemProgram: PublicKey, rent: PublicKey): Promise; createInitializeVaultPerformanceFeeTransaction(feeAndRentPayer: PublicKey, owner: PublicKey, vaultName: string, enable: boolean, basePoint: number, minimumClaimableFee: BN, receivers: FeeReceiverDetail[], tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey, systemProgram: PublicKey, rent: PublicKey): Promise; createUpdateVaultPerformanceFeeTransaction(feeAndRentPayer: PublicKey, owner: PublicKey, vaultName: string, enable: boolean, basePoint: number, minimumClaimableFee: BN, receivers: FeeReceiverDetail[], tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey, systemProgram: PublicKey, rent: PublicKey): Promise; createInitializeVaultRevenueFeeTransaction(feeAndRentPayer: PublicKey, owner: PublicKey, vaultName: string, enable: boolean, basePoint: number, minimumClaimableFee: BN, receivers: FeeReceiverDetail[], tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey, systemProgram: PublicKey, rent: PublicKey): Promise; createUpdateVaultRevenueFeeTransaction(feeAndRentPayer: PublicKey, owner: PublicKey, vaultName: string, enable: boolean, basePoint: number, minimumClaimableFee: BN, receivers: FeeReceiverDetail[], tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey, systemProgram: PublicKey, rent: PublicKey): Promise; createAddWithdrawSupplyTransaction(supplyProvider: PublicKey, vaultName: string, supply: BN, tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey): Promise; createWithdrawSupplyTransaction(feeAndRentPayer: PublicKey, withdrawAuthority: PublicKey, vaultName: string, supply: BN, withdrawReceiver: PublicKey, tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey): Promise; createOpenNewBatchTransaction(feeAndRentPayer: PublicKey, operator: PublicKey, vaultName: string, batchIndex: number, sharePrice: BN, tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey, systemProgram: PublicKey, rent: PublicKey): Promise; createDepositTransaction(feeAndRentPayer: PublicKey, operator: PublicKey, depositProvider: PublicKey, user: PublicKey, vaultName: string, batchIndex: number, depositIndex: number, depositAmount: BN, depositTxFeeReceiver: PublicKey, tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey, systemProgram: PublicKey, rent: PublicKey): Promise; createCloseBatchTransaction(operator: PublicKey, vaultName: string, batchIndex: number): Promise; createUpdateUserStatusTransaction(operator: PublicKey, user: PublicKey, vaultName: string, userStatus: UserStatusType): Promise; createRequestWithdrawTransaction(feeAndRentPayer: PublicKey, operator: PublicKey, user: PublicKey, vaultName: string, batchIndex: number, withdrawIndex: number, withdrawAmount: BN, performanceFee: BN, systemProgram: PublicKey, rent: PublicKey): Promise; createCanceledWithdrawTransaction(operator: PublicKey, user: PublicKey, vaultName: string, withdrawIndex: number): Promise; createProcessUserBatchTransaction(operator: PublicKey, user: PublicKey, vaultName: string, batchIndex: number, tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey): Promise; createConcludeBatchTransaction(feeAndRentPayer: PublicKey, operator: PublicKey, vaultName: string, batchIndex: number, tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey): Promise; createClaimWithdrawTransaction(operator: PublicKey, user: PublicKey, vaultName: string, batchIndex: number, withdrawIndex: number, tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey): Promise; createCollectDepositFeeTransaction(collector: PublicKey, vaultName: string, feeAmount: BN, tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey): Promise; createCollectWithdrawFeeTransaction(collector: PublicKey, vaultName: string, feeAmount: BN, tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey): Promise; createCollectPerformanceFeeTransaction(collector: PublicKey, vaultName: string, feeAmount: BN, tokenMintAccount: PublicKey, tokenProgram: PublicKey, associatedTokenProgram: PublicKey): Promise; removeEventListener(eventId: number): Promise; addAddWithdrawSupplyEventListener(callback: (event: AddWithdrawSupplyEvent) => void): number; addWithdrawSupplyEventListener(callback: (event: WithdrawSupplyEvent) => void): number; addOpenNewBatchEventListener(callback: (event: OpenNewBatchEvent) => void): number; addDepositEventListener(callback: (event: DepositEvent) => void): number; addCloseBatchEventListener(callback: (event: CloseBatchEvent) => void): number; addRequestWithdrawEventListener(callback: (event: RequestWithdrawEvent) => void): number; addCollectDepositFeeEventListener(callback: (event: CollectDepositFeeEvent) => void): number; addCollectWithdrawFeeEventListener(callback: (event: CollectWithdrawFeeEvent) => void): number; addCollectPerformanceFeeEventListener(callback: (event: CollectPerformanceFeeEvent) => void): number; addCollectRevenueFeeEventListener(callback: (event: CollectRevenueFeeEvent) => void): number; addCanceledWithdrawRequestEventListener(callback: (event: CanceledWithdrawRequestEvent) => void): number; addProcessUserBatchEventListener(callback: (event: ProcessUserBatchEvent) => void): number; addConcludeBatchEventListener(callback: (event: ConcludeBatchEvent) => void): number; addClaimWithdrawEventListener(callback: (event: ClaimWithdrawEvent) => void): number; addTransferTempEventListener(callback: (event: TransferTempEvent) => void): number; toU32Bytes(num: number): Uint8Array; } //# sourceMappingURL=vault-lib.d.ts.map