import { Account } from "@solana/spl-token"; import { Connection, Keypair, PublicKey, Transaction, TransactionInstruction, VersionedTransaction } from "@solana/web3.js"; import { UserTokenBalance, TokenInfo, SolanaNFT, NFT, NFTCollection } from "../types"; export interface JupiterQuoteResponse { inputMint: string; inAmount: string; outputMint: string; outAmount: string; otherAmountThreshold: string; swapMode: string; slippageBps: number; platformFee: null | any; priceImpactPct: string; routePlan: RoutePlan[]; contextSlot: number; timeTaken: number; } interface RoutePlan { swapInfo: SwapInfo; percent: number; } interface SwapInfo { ammKey: string; label: string; inputMint: string; outputMint: string; inAmount: string; outAmount: string; feeAmount: string; feeMint: string; } interface JupiterSwapResponse { swapTransaction: string; lastValidBlockHeight: number; prioritizationFeeLamports: number; } interface SwapParams { fromToken: PublicKey; toToken: PublicKey; amount: number; slippageBps?: number; userPublicKey: PublicKey; } interface SwapResult { success: boolean; hash?: string; error?: string; inputAmount?: string; outputAmount?: string; priceImpact?: string; } export declare const createV0Transaction: (connection: Connection, inX: TransactionInstruction[], signers: Keypair[], payerPubKey: PublicKey, blockHash?: string, feePayerPubKey?: PublicKey) => Promise; export declare const createAtaAndIx: (token: PublicKey, ownerPublicKey: PublicKey, tokenProgramId: PublicKey, connection: Connection) => Promise<{ AtaTokenIx: TransactionInstruction | undefined; associatedToken: PublicKey; }>; export declare const getSureAssociatedTokenAddressAndAccount: (connection: Connection, token: PublicKey, owner: PublicKey) => Promise<{ ATA: PublicKey; programId: PublicKey; tokenAccount: Account; }>; export declare const getProgramIdOfToken: (owner: PublicKey, token: PublicKey, connection: Connection) => Promise; export declare const getSvmNativeBalance: (address: PublicKey, connection: Connection) => Promise<{ balance: import("bn.js"); formatted: number; decimal: number; }>; export declare const getTokenBalance: (address: PublicKey, token: PublicKey, connection: Connection) => Promise<0 | import("@solana/web3.js").TokenAmount>; export declare const getTokenAccountAccount: (token: PublicKey, address: PublicKey, connection: Connection) => Promise; export declare const getTransferNativeInx: (from: PublicKey, to: PublicKey, amount: number) => Promise; export declare const getTransferNativeTransaction: (from: Keypair, to: PublicKey, amount: number, connection: Connection) => Promise; export declare const getTokenInfo: (tokenAddress: PublicKey, connection: Connection, programId?: PublicKey) => Promise; export declare const getTransferTokenInx: (from: PublicKey, to: PublicKey, token: TokenInfo, amount: number, connection: Connection) => Promise; export declare const getTransferTokenTransaction: (from: Keypair, to: PublicKey, token: TokenInfo, amount: number, connection: Connection) => Promise; export declare const signTransaction: (transaction: VersionedTransaction | Transaction, signers: Keypair) => Promise; export declare const sendTransaction: (transaction: VersionedTransaction | Transaction, connection: Connection) => Promise; export declare const signAndSendTransaction: (transaction: VersionedTransaction | Transaction, connection: Connection, signers: Keypair, options?: { partialSign?: boolean; feePayerSigner?: Keypair; }) => Promise; export declare const discoverTokens: (ownerAddress: PublicKey, connection: Connection) => Promise[]>; export declare const getJupiterQuote: (inputMint: string, outputMint: string, amount: number, slippageBps?: number) => Promise; export declare const buildJupiterSwapTransaction: (quote: JupiterQuoteResponse, userPublicKey: string, prioritizationFeeLamports?: number, useSharedAccounts?: boolean) => Promise; export declare const executeJupiterSwap: (swapParams: SwapParams, connection: Connection, payer: Keypair) => Promise; export declare const uiAmountToBaseUnits: (uiAmount: number, decimals: number) => number; export declare const baseUnitsToUiAmount: (baseAmount: string | number, decimals: number) => number; export declare const getJupiterTokenList: () => Promise; export declare const validateJupiterTokens: (inputMint: string, outputMint: string) => Promise<{ valid: boolean; message?: string; }>; export declare const transformSolanaNFTToUnified: (nft: SolanaNFT) => NFT; export declare const fetchWalletNfts: (walletAddress: PublicKey, connection: Connection) => Promise; export declare const getNFTCollection: (walletAddress: PublicKey, collectionAddress: string, connection: Connection) => Promise; export {};