import type { Address, ChainContract, NativeUnits, BaseUnits } from '../../../types.js'; import type { Chain } from '../index.js'; import type { Client } from 'viem'; /** * Parameters for the {@link quoteExactInputSingle} function. */ export type QuoteExactInputSingleParams = { /** The address of the token or chain contract, if applicable. */ tokenIn: Address | ChainContract; /** The amount to be transferred. Can be specified directly or as a function that returns a promise resolving to the amount. */ amountIn: NativeUnits | BaseUnits; /** The address of the token or chain contract, if applicable. */ tokenOut: Address | ChainContract; /** Fee pool */ fee?: number; /** Used to set the limit for the price the swap will push the pool to */ sqrtPriceLimitX96?: bigint; /** The blockchain network on which the transaction will be executed. */ chain?: Chain; }; /** * Quotes the amount of output token that can be received for a given input token amount in a single swap. * * @param client - The client instance to use for the operation. * @param params - Parameters for the quote * @returns An object containing the amount of output token, the new sqrt price after the swap, the number of initialized ticks crossed, and the gas estimate for the operation. * @throws {UnsupportedChainError} If the specified chain is not supported. * @example * ```typescript * const quote = await client.quoteExactInputSingle({ * tokenIn: '0xfff9976782d46cc05630d1f6ebab18b2324d6b14', // WETH * amountIn: '1', // 1 WETH * tokenOut: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238', // USDC * chain: ETH_SEPOLIA, // Ethereum Sepolia * }); * // => { * // tokenOutAmount: 1000000n, // 1 USDC * // sqrtPriceX96After: 1234567890123456789n, // New sqrt price after the swap * // initializedTicksCrossed: 1n, // Number of initialized ticks crossed * // gasEstimate: 21000n, // Gas estimate for the operation * // } * ``` */ export declare function quoteExactInputSingle(client: Client, params: QuoteExactInputSingleParams): Promise<{ tokenOutAmount: bigint; sqrtPriceX96After: bigint; initializedTicksCrossed: bigint; gasEstimate: bigint; }>;