import { BN } from '@coral-xyz/anchor'; import { PublicKey, TransactionInstruction, Connection, Transaction, Cluster } from '@solana/web3.js'; import { Mint } from '@solana/spl-token'; import { AffiliateInfo, VaultImplementation, VaultState } from './types'; import { StrategyState } from './strategy'; export default class VaultImpl implements VaultImplementation { private connection; private cluster; private program; private affiliateId; private affiliateProgram; private allowOwnerOffCurve?; seedBaseKey?: PublicKey; tokenMint: Mint; tokenLpMint: Mint; vaultPda: PublicKey; tokenVaultPda: PublicKey; vaultState: VaultState; private constructor(); static createPermissionlessVaultInstruction(connection: Connection, payer: PublicKey, tokenMint: PublicKey, opt?: { cluster?: Cluster; programId?: string; }): Promise; static fetchMultipleUserBalance(connection: Connection, lpMintList: Array, owner: PublicKey): Promise>; static createMultiple(connection: Connection, tokenMints: Array, opt?: { seedBaseKey?: PublicKey; allowOwnerOffCurve?: boolean; cluster?: Cluster; programId?: string; affiliateId?: PublicKey; affiliateProgramId?: string; }): Promise>; static createMultipleWithPda(connection: Connection, vaultsPda: Array, opt?: { seedBaseKey?: PublicKey; allowOwnerOffCurve?: boolean; cluster?: Cluster; programId?: string; affiliateId?: PublicKey; affiliateProgramId?: string; }): Promise>; static create(connection: Connection, tokenAddress: PublicKey, opt?: { seedBaseKey?: PublicKey; allowOwnerOffCurve?: boolean; cluster?: Cluster; programId?: string; affiliateId?: PublicKey; affiliateProgramId?: string; }): Promise; getUserBalance(owner: PublicKey): Promise; /** To refetch the latest lpSupply */ /** Use vaultImpl.lpSupply to use cached result */ getVaultSupply(): Promise; getWithdrawableAmount(): Promise; refreshVaultState(): Promise; private createATAPreInstructions; private createAffiliateATAPreInstructions; deposit(owner: PublicKey, baseTokenAmount: BN): Promise; getStrategiesState(): Promise>; private getStrategyWithHighestLiquidity; withdraw(owner: PublicKey, baseTokenAmount: BN): Promise; private withdrawFromVaultReserve; getAffiliateInfo(): Promise; } //# sourceMappingURL=index.d.ts.map