import { BN } from "@coral-xyz/anchor"; import { PublicKey, VersionedTransaction, TransactionSignature, TransactionInstruction } from "@solana/web3.js"; import { BaseClient, BaseTxBuilder, ProtocolPolicyClient, ProtocolPolicyTxBuilder, TxOptions } from "./base"; import { TransferPolicy } from "../deser/integrationPolicies"; declare class TxBuilder extends BaseTxBuilder implements ProtocolPolicyTxBuilder { setPolicyIx(policy: TransferPolicy, signer?: PublicKey): Promise; setPolicyTx(policy: TransferPolicy, txOptions?: TxOptions): Promise; clearPolicyIx(signer?: PublicKey): Promise; clearPolicyTx(txOptions?: TxOptions): Promise; wrapIxs(amount: BN, glamSigner: PublicKey): Promise; wrapTx(amount: BN, txOptions: TxOptions): Promise; unwrapIx(glamSigner: PublicKey): Promise; unwrapTx(txOptions: TxOptions): Promise; systemTransferIx(amount: BN, to: PublicKey, glamSigner: PublicKey): Promise; systemTransferTx(amount: BN, to: PublicKey, txOptions: TxOptions): Promise; /** * Returns an instruction that closes the specified vault token account */ closeTokenAccountIx(tokenAccount: PublicKey, tokenProgram: PublicKey, signer?: PublicKey): Promise; closeTokenAccountsTx(pubkeys: PublicKey[], txOptions: TxOptions): Promise; depositSolIxs(lamports: number | BN, wrap: boolean, glamSigner: PublicKey): Promise; depositSolTx(lamports: number | BN, wrap?: boolean, txOptions?: TxOptions): Promise; depositIxs(asset: PublicKey, amount: number | BN, glamSigner: PublicKey): Promise; depositTx(asset: PublicKey, amount: number | BN, txOptions: TxOptions): Promise; /** * Transfers tokens held by the vault to the specified recipient */ tokenTransferIxs(mint: PublicKey, amount: number | BN, to: PublicKey, glamSigner: PublicKey): Promise; tokenTransferTx(mint: PublicKey, amount: number | BN, to: PublicKey, txOptions: TxOptions): Promise; } export declare class VaultClient implements ProtocolPolicyClient { readonly base: BaseClient; readonly txBuilder: TxBuilder; constructor(base: BaseClient); fetchPolicy(): Promise; setPolicy(policy: TransferPolicy, txOptions?: TxOptions): Promise; clearPolicy(txOptions?: TxOptions): Promise; /** * Wraps vault SOL to wSOL * * @param amount * @param txOptions */ wrap(amount: BN | number, txOptions?: TxOptions): Promise; /** * Unwraps vault wSOL to SOL * * @param txOptions */ unwrap(txOptions?: TxOptions): Promise; /** * Transfers SOL from vault to another account * * @param amount * @param to * @param txOptions */ systemTransfer(amount: BN | number, to: PublicKey | string, txOptions?: TxOptions): Promise; /** * Transfers token from vault to another account * * @param mint * @param amount * @param txOptions */ tokenTransfer(mint: PublicKey | string, amount: number | BN, to: PublicKey | string, txOptions?: TxOptions): Promise; /** * Closes multiple vault token accounts * * @param tokenAccounts * @param txOptions */ closeTokenAccounts(tokenAccounts: PublicKey[] | string[], txOptions?: TxOptions): Promise; /** * Deposits token to vault * * @param mint Token mint * @param amount * @param txOptions */ deposit(mint: PublicKey | string, amount: number | BN, txOptions?: TxOptions): Promise; /** * Deposits SOL to vault * * @param lamports * @param wrap Whether to wrap SOL to wSOL or not * @param txOptions */ depositSol(lamports: number | BN, wrap?: boolean, txOptions?: TxOptions): Promise; /** * Generates instructions to wrap SOL into wSOL if the vault doesn't have enough wSOL * * @param lamports Desired amount of wSOL * @returns Array of instructions, empty if wSOL is sufficient */ maybeWrapSol(lamports: number | BN, signer?: PublicKey): Promise; } export {};