import { PublicKey } from "@solana/web3.js"; export type QuoteParams = { inputMint: string; outputMint: string; amount: number; slippageBps?: number; swapMode?: string; onlyDirectRoutes?: boolean; asLegacyTransaction?: boolean; maxAccounts?: number; dexes?: string[]; excludeDexes?: string[]; instructionVersion: "V1" | "V2"; }; export type QuoteResponse = { inputMint: string; inAmount: string; outputMint: string; outAmount: string; otherAmountThreshold: string; swapMode: string; slippageBps: number; platformFee: any; priceImpactPct: string; routePlan: any[]; contextSlot: number; timeTaken: number; }; export type TokenListItem = { address: string; name: string; symbol: string; decimals: number; logoURI: string; tags: string[]; usdPrice: number; slot: number; }; export declare class JupTokenList { readonly tokens: TokenListItem[]; readonly mintMap: Map; constructor(tokens: TokenListItem[]); getByMint(mintAddress: string | PublicKey): TokenListItem | undefined; getBySymbol(symbol: string): TokenListItem | undefined; } export type JupiterInstruction = { programId: string; accounts: { pubkey: string; isSigner: boolean; isWritable: boolean; }[]; data: string; }; export type SwapInstructions = { tokenLedgerInstruction?: JupiterInstruction | null; otherInstructions?: JupiterInstruction[]; computeBudgetInstructions: JupiterInstruction[]; setupInstructions?: JupiterInstruction[]; swapInstruction: JupiterInstruction; cleanupInstruction?: JupiterInstruction; addressLookupTableAddresses: string[]; }; export declare const JUPITER_API_DEFAULT = "https://api.jup.ag"; export type TokenPrice = { mint: string; usdPrice: number; decimals: number; blockId: number; }; export type FetchTokensListOptions = { forceRefresh?: boolean; includeStakePools?: boolean; }; export declare function withStakePoolTokens(tokenList: JupTokenList): JupTokenList; export declare class JupiterApiClient { swapApiBaseUrl: string; isCustomSwapApi: boolean; apiKey: string | null; private tokenListCache; private tokenListCacheTtl; constructor(options?: { apiKey?: string; swapApiBaseUrl?: string; cacheTtl?: number; }); fetchTokenPrices(mints: string[]): Promise; fetchTokensList(forceRefresh?: boolean): Promise; fetchTokensListV2(options?: FetchTokensListOptions): Promise; fetchProgramLabels(): Promise<{ [key: string]: string; }>; getQuoteResponse(quoteParams: QuoteParams): Promise; getSwapInstructions(quoteResponse: any, from: PublicKey, trackingAccount?: PublicKey): Promise; }