import type { Address, ChainContract } from '../../../types.js'; import type { Chain } from '../index.js'; import type { Client } from 'viem'; /** * Parameters for the {@link getPool} function. */ export type GetPoolParams = { /** The address of the token or chain contract, if applicable. */ tokenIn: Address | ChainContract; /** The address of the token or chain contract, if applicable. */ tokenOut: Address | ChainContract; /** Fee pool */ fee?: number; /** 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 pool address, input token address, output token address, and fee. * @throws {UnsupportedChainError} If the specified chain is not supported. * @throws {Error} If the pool is unavailable for the specified token pair. * @example * ```typescript * const pool = await client.getPool({ * tokenIn: '0xfff9976782d46cc05630d1f6ebab18b2324d6b14', // WETH * tokenOut: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238', // USDC * chain: ETH_SEPOLIA, // Ethereum Sepolia * }); * // => { * // address: '0x6Ce0896eAE6D4BD668fDe41BB784548fb8F59b50', * // tokenIn: '0xfff9976782d46cc05630d1f6ebab18b2324d6b14', * // tokenOut: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238', * // fee: 3000, * // } * ``` */ export declare function getPool(client: Client, params: GetPoolParams): Promise<{ address: `0x${string}`; tokenIn: Address; tokenOut: Address; fee: number; }>;