import { BN } from "@coral-xyz/anchor"; import { Commitment, Keypair, PublicKey, TransactionSignature } from "@solana/web3.js"; import { BaseClient, type ProtocolPolicyClient, type TxOptions } from "../base"; import { LoopscaleVault } from "../../deser"; import { LoopscaleVaultPolicy } from "../../deser/integrationPolicies"; import { ClaimVaultRewardsAccounts, DepositWithdrawUserVaultAccounts, LoopscaleCoreClient, PriceVaultsAccounts, LoopscaleVaultStakeParams, LoopscaleVaultTxBuilder, LoopscaleVaultUnstakeParams, StakeUserVaultLpAccounts, UnstakeUserVaultLpAccounts } from "./core"; export type LoopscaleVaultDepositWithdrawAmounts = { amountIn: BN; minAmountOut: BN; } | { amountOut: BN; maxAmountIn: BN; }; export type LoopscaleVaultData = { lpDecimals: number; principalDecimals: number; accounts: DepositWithdrawUserVaultAccounts; }; export declare class LoopscaleVaultClient implements ProtocolPolicyClient { private readonly core; readonly txBuilder: LoopscaleVaultTxBuilder; constructor(core: LoopscaleCoreClient); get base(): BaseClient; get programId(): PublicKey; get integrationAuthorityPda(): PublicKey; getEventAuthorityPda(): PublicKey; getVaultPda(vaultNonce: PublicKey): PublicKey; getVaultStrategyPda(vault: PublicKey): PublicKey; getVaultRewardsInfoPda(vault: PublicKey): PublicKey; getVaultStakePda(stakeNonce: PublicKey, vault: PublicKey): PublicKey; getUserRewardsInfoPda(vaultStake: PublicKey): PublicKey; fetchVault(vault: PublicKey): Promise; resolveVaultData(vault: PublicKey): Promise; fetchPolicy(): Promise; setPolicy(policy: LoopscaleVaultPolicy, txOptions?: TxOptions): Promise; clearPolicy(txOptions?: TxOptions): Promise; depositUserVault(amounts: LoopscaleVaultDepositWithdrawAmounts, accounts: DepositWithdrawUserVaultAccounts, txOptions?: TxOptions): Promise; withdrawUserVault(amounts: LoopscaleVaultDepositWithdrawAmounts, accounts: DepositWithdrawUserVaultAccounts, txOptions?: TxOptions): Promise; stakeUserVaultLp(params: LoopscaleVaultStakeParams, accounts: StakeUserVaultLpAccounts, txOptions?: TxOptions, additionalSigners?: Keypair[]): Promise; unstakeUserVaultLp(params: LoopscaleVaultUnstakeParams, accounts: UnstakeUserVaultLpAccounts, txOptions?: TxOptions): Promise; claimVaultRewards(mints: PublicKey[], accounts: ClaimVaultRewardsAccounts, txOptions?: TxOptions): Promise; getPriceVaultsAccounts(commitment?: Commitment): Promise; }