import { AccountRole, Address, Instruction as SolanaInstruction } from '@solana/kit';
import Decimal from 'decimal.js';
import { QuoteResponse, SwapInstructionsResponse as JupSwapInstructionsResponse, Instruction } from '@jup-ag/api';
export declare const DEFAULT_JUP_API_ENDPOINT = "https://lite-api.jup.ag";
export declare const DEFAULT_JUP_SWAP_API = "https://lite-api.jup.ag/swap/v1";
export type SwapTransactionsResponse = {
    setupTransaction: string | undefined;
    swapTransaction: string;
    cleanupTransaction: string | undefined;
};
interface SwapInstructionsResponse {
    tokenLedgerInstruction?: SolanaInstruction;
    computeBudgetInstructions: Array<SolanaInstruction>;
    setupInstructions: Array<SolanaInstruction>;
    swapInstruction: SolanaInstruction;
    cleanupInstruction?: SolanaInstruction;
    addressLookupTableAddresses: Array<Address>;
}
export declare class JupService {
    static getBestRouteV6: (userAddress: Address, amount: Decimal, inputMint: Address, outputMint: Address, slippageBps: number, asLegacyTransaction?: boolean, maxAccounts?: number, onlyDirectRoutes?: boolean) => Promise<SwapInstructionsResponse>;
    static getBestRouteQuoteV6: (amount: Decimal, inputMint: Address, outputMint: Address, slippageBps: number, asLegacyTransaction?: boolean, maxAccounts?: number, onlyDirectRoutes?: boolean, jupEndpoint?: string) => Promise<QuoteResponse>;
    static getSwapIxsFromQuote: (userAddress: Address, quote: QuoteResponse, wrapUnwrapSOL?: boolean, asLegacyTransaction?: boolean) => Promise<JupSwapInstructionsResponse>;
    static getPrice: (inputMint: Address | string, outputMint: Address | string, jupEndpoint?: string) => Promise<number>;
    static getPrices: (inputMints: (Address | string)[], outputMint: Address | string, jupEndpoint?: string) => Promise<Map<Address, Decimal>>;
    static getDollarPrices(inputMints: (Address | string)[], jupEndpoint?: string): Promise<Map<Address, Decimal>>;
    static getDollarPrice: (inputMint: Address | string, jupEndpoint?: string) => Promise<number>;
}
export declare function transformResponseIx(ix: Instruction): SolanaInstruction;
export declare function getAccountRole({ isSigner, isMut }: {
    isSigner: boolean;
    isMut: boolean;
}): AccountRole;
export {};
//# sourceMappingURL=JupService.d.ts.map