import type { Address } from "@coral-xyz/anchor"; import type { Percentage } from "@orca-so/common-sdk"; import type { BN } from "@coral-xyz/anchor"; import type { SwapInput } from "../../instructions"; import type { WhirlpoolAccountFetchOptions, WhirlpoolAccountFetcherInterface } from "../../network/public/fetcher"; import type { AdaptiveFeeConstantsData, AdaptiveFeeVariablesData, OracleData, TickArray, WhirlpoolData } from "../../types/public"; import type { Whirlpool } from "../../whirlpool-client"; import type { DevFeeSwapQuote } from "./dev-fee-swap-quote"; import type { TokenExtensionContextForPool } from "../../utils/public/token-extension-util"; import { PublicKey } from "@solana/web3.js"; export declare enum UseFallbackTickArray { Always = "Always", Never = "Never", Situational = "Situational" } export type AdaptiveFeeInfo = { adaptiveFeeConstants: AdaptiveFeeConstantsData; adaptiveFeeVariables: AdaptiveFeeVariablesData; }; export type SwapQuoteParam = { whirlpoolData: WhirlpoolData; tokenAmount: BN; otherAmountThreshold: BN; sqrtPriceLimit: BN; aToB: boolean; amountSpecifiedIsInput: boolean; tickArrays: TickArray[]; oracleData: OracleData | null; tokenExtensionCtx: TokenExtensionContextForPool; fallbackTickArray?: PublicKey; timestampInSeconds?: BN; }; export type SwapQuote = NormalSwapQuote | DevFeeSwapQuote; export type SwapEstimates = { estimatedAmountIn: BN; estimatedAmountOut: BN; estimatedEndTickIndex: number; estimatedEndSqrtPrice: BN; estimatedFeeAmount: BN; estimatedFeeRateMin: number; estimatedFeeRateMax: number; transferFee: { deductingFromEstimatedAmountIn: BN; deductedFromEstimatedAmountOut: BN; }; }; export type NormalSwapQuote = SwapInput & SwapEstimates; export declare function swapQuoteByInputToken(whirlpool: Whirlpool, inputTokenMint: Address, tokenAmount: BN, slippageTolerance: Percentage, programId: Address, fetcher: WhirlpoolAccountFetcherInterface, opts?: WhirlpoolAccountFetchOptions, useFallbackTickArray?: UseFallbackTickArray, timestampInSeconds?: BN): Promise; export declare function swapQuoteByOutputToken(whirlpool: Whirlpool, outputTokenMint: Address, tokenAmount: BN, slippageTolerance: Percentage, programId: Address, fetcher: WhirlpoolAccountFetcherInterface, opts?: WhirlpoolAccountFetchOptions, useFallbackTickArray?: UseFallbackTickArray, timestampInSeconds?: BN): Promise; export declare function swapQuoteWithParams(params: SwapQuoteParam, slippageTolerance: Percentage): SwapQuote;