import type { Account, Address, BaseUnits, ControlFlowOptions, NativeUnits } from '../../../types.js'; import type { Chain } from '../index.js'; import type { Abi, FeeValuesEIP1559, Client } from 'viem'; export type ApproveParams = { /** Address of the token */ token: Address | { address: Address; abi?: Abi; }; /** Address of the account or contract that will be allowed to spend the tokens. */ spender: Address; /** The amount of tokens that the spender will be allowed to spend */ value: BaseUnits | NativeUnits; /** The blockchain network on which the transaction will be executed. */ chain?: Chain; /** The address or account that will execute the transaction. */ account: Address | Account; /** The gas limit for the transaction. */ gas?: bigint; /** The fee values for the transaction. */ fees?: FeeValuesEIP1559; }; /** * Executes the `approve` function of the Token Messenger contract for CCTP. * * @param client - The client instance to use for the operation. * @returns Returns the transaction hash of the contract execution */ export declare function approve(client: Client, params: ApproveParams & ControlFlowOptions): Promise<`0x${string}`>;