import { AnchorProvider } from '@coral-xyz/anchor'; import type { Connection, PublicKey } from '@solana/web3.js'; export type ISolanaRpcEndpoint = `https://${string}`; export type ISolanaNetwork = 'devnet' | 'mainnet-beta' | 'testnet' | 'localnet'; export interface ISolanaConnectionOptions { endpoint?: ISolanaRpcEndpoint; connection?: Connection; provider?: AnchorProvider; network?: ISolanaNetwork; } export interface ISolanaVaultState { operator: PublicKey | null; admin: PublicKey | null; shareMint: PublicKey | null; depositMint: PublicKey | null; feeRecipient: PublicKey | null; withdrawalFee: number | null; deployedAum: number | null; pdaBump: number[] | null; paused: boolean | null; vaultVersion: number[] | null; } export interface ISolanaToken { address: string; symbol: any; decimals: number; name: any; image: any; program: any; mintAuthority: any; freezeAuthority: any; supply: string; shareMintAddress: string; } export interface ISolanaVaultConfig { programId: string; vaultState: string; shareMint: string; vaultTokenAta: string; depositMint: string; network: ISolanaNetwork; } export interface ISolanaDepositResult { success: boolean; signature?: string; sharesMinted?: number; error?: string; } export interface ISolanaWithdrawResult { success: boolean; signature?: string; tokensWithdrawn?: number; error?: string; } export interface ISolanaVaultStats { totalAssets: number; totalShares: number; isPaused: boolean; withdrawalFee: number; admin: string; operator: string; feeRecipient: string; lastUpdated: Date; }