import { Connection, PublicKey, Transaction } from '@solana/web3.js';
import { SolanaCluster } from '@hubbleprotocol/hubble-config';
import Decimal from 'decimal.js';
import { DeserializedVersionedTransaction } from '../utils';
import { QuoteResponse, SwapInstructionsResponse, SwapResponse } from '@jup-ag/api';
export type SwapTransactionsResponse = {
    setupTransaction: string | undefined;
    swapTransaction: string;
    cleanupTransaction: string | undefined;
};
export declare class JupService {
    private readonly _connection;
    private readonly _cluster;
    constructor(connection: Connection, cluster: SolanaCluster);
    static getBestRouteV6: (userPublicKey: PublicKey, amount: Decimal, inputMint: PublicKey, outputMint: PublicKey, slippageBps: number, asLegacyTransaction?: boolean, maxAccounts?: number, onlyDirectRoutes?: boolean) => Promise<SwapResponse>;
    static getBestRouteQuoteV6: (amount: Decimal, inputMint: PublicKey, outputMint: PublicKey, slippageBps: number, asLegacyTransaction?: boolean, maxAccounts?: number, onlyDirectRoutes?: boolean) => Promise<QuoteResponse>;
    static getSwapIxsFromQuote: (userPublicKey: PublicKey, quote: QuoteResponse, wrapUnwrapSOL?: boolean, asLegacyTransaction?: boolean) => Promise<SwapInstructionsResponse>;
    static getPrice: (inputMint: PublicKey | string, outputMint: PublicKey | string) => Promise<number>;
    static getDollarPrice: (inputMint: PublicKey | string) => Promise<number>;
    static buildTransactionsFromSerialized: (serializedTransactions: Array<string | undefined>) => Transaction[];
    static deserealizeVersionedTransactions: (connection: Connection, serializedTransactions: Array<string | undefined>) => Promise<DeserializedVersionedTransaction>;
    static getLookupTableAccount: (connection: Connection, address: string | PublicKey) => Promise<import("@solana/web3.js").AddressLookupTableAccount | null>;
}
//# sourceMappingURL=JupService.d.ts.map