import type { Chain } from '../providers/uniswap/index.js'; import type { Account, Address, BaseUnits, ControlFlowOptions, FeeValuesEIP1559, NativeUnits } from '../types.js'; import type { Abi, Client } from 'viem'; /** * Parameters for the {@link swapExactIn} function. */ export type SwapExactInParams = { /** The token to swap from. */ tokenIn: Address | { address: Address; abi?: Abi; }; /** The amount of the token to swap from */ tokenInAmount: NativeUnits | BaseUnits; /** The token to swap to. */ tokenOut: Address | { address: Address; abi?: Abi; }; /** The minimum amount of the token to receive from the swap. This is used to protect against slippage. */ tokenOutAmount?: NativeUnits | BaseUnits; /** The account address that will execute the transaction */ account: Address | Account; /** Gas limit for the transaction */ gas?: bigint; /** The fee values for the transaction */ fees?: FeeValuesEIP1559; /** The blockchain network on which the transaction will be executed. */ chain?: Chain; }; export type SwapExactInParamsReturnType = Address; /** * Swaps an exact amount of one token for another token * * @param client - The client instance to use for the operation. * @param params - Parameters for the operation * @returns The address of the transaction that was executed. */ export declare function swapExactIn(client: Client, params: SwapExactInParams & ControlFlowOptions): Promise;