import { BN } from "@coral-xyz/anchor"; import { PublicKey, TransactionInstruction, TransactionSignature, VersionedTransaction } from "@solana/web3.js"; import { BaseClient, BaseTxBuilder, type ProtocolPolicyClient, type ProtocolPolicyTxBuilder, type TxOptions } from "./base"; import { JupiterSwapPolicy } from "../deser/integrationPolicies"; import { VaultClient } from "./vault"; import { JupiterApiClient, JupiterInstruction, QuoteParams, QuoteResponse, SwapInstructions } from "../utils/jupiterApi"; import { KaminoLendingClient } from "./kamino"; export type JupiterSwapOptions = { quoteParams?: QuoteParams; quoteResponse?: QuoteResponse; swapInstructions?: SwapInstructions; trackingAccount?: PublicKey; }; export type JupiterSwapV2OracleAccounts = { solUsdOracle?: PublicKey; inputTokenOracle?: PublicKey; outputTokenOracle?: PublicKey; kaminoReservesToRefresh: PublicKey[]; }; export type JupiterSwapV2Options = JupiterSwapOptions & { skipQuotePriceCheck?: boolean; }; declare class TxBuilder extends BaseTxBuilder implements ProtocolPolicyTxBuilder { private resolveSwapInstructionContext; getSwapV2OracleAccounts(inputMint: PublicKey, outputMint: PublicKey, skipQuotePriceCheck: boolean): Promise; /** * Returns the instructions for a Jupiter swap and the lookup tables */ swapIxs(options: JupiterSwapOptions, glamSigner: PublicKey): Promise<[TransactionInstruction[], PublicKey[]]>; swapV2Ixs(options: JupiterSwapV2Options, glamSigner: PublicKey): Promise<[TransactionInstruction[], PublicKey[]]>; swapTx(options: JupiterSwapOptions, txOptions?: TxOptions): Promise; swapV2Tx(options: JupiterSwapV2Options, txOptions?: TxOptions): Promise; setPolicyIx(policy: JupiterSwapPolicy, signer?: PublicKey): Promise; setPolicyTx(policy: JupiterSwapPolicy, txOptions?: TxOptions): Promise; clearPolicyIx(signer?: PublicKey): Promise; clearPolicyTx(txOptions?: TxOptions): Promise; getPreInstructions(signer: PublicKey, inputMint: PublicKey, outputMint: PublicKey, amount: BN, outputTokenProgram?: PublicKey): Promise; toTransactionInstruction: (ix: JupiterInstruction) => TransactionInstruction; } export declare class JupiterSwapClient implements ProtocolPolicyClient { readonly base: BaseClient; readonly vault: VaultClient; readonly klend: KaminoLendingClient; readonly txBuilder: TxBuilder; readonly jupApi: JupiterApiClient; constructor(base: BaseClient, vault: VaultClient, klend: KaminoLendingClient); swap(options: JupiterSwapOptions, txOptions?: TxOptions): Promise; swapV2(options: JupiterSwapV2Options, txOptions?: TxOptions): Promise; fetchPolicy(): Promise; setPolicy(policy: JupiterSwapPolicy, txOptions?: TxOptions): Promise; clearPolicy(txOptions?: TxOptions): Promise; } export {};