import type { ExtendedViemClient } from '../../../client.js'; import type { Account, Address } from '../../../types.js'; import type { ChainFaucet as Chain } from '../index.js'; export type DripParams = { account: Address | Account; chain?: Chain; token?: Address | { address: Address; } | null; }; /** * Request testnet tokens for an account on a supported blockchain. * * This function facilitates getting testnet tokens (native tokens, USDC, EURC) for testing purposes. * It automatically determines which tokens to request based on the specified token parameter or * defaults to requesting all available tokens for the chain. * * @param client - The client instance to use for the operation. * @param params - The parameters for the drip request * @param params.account - The account address or Account object to receive tokens * @param params.chain - Optional chain specification. Defaults to the client's chain * @param params.token - Optional token specification: * - `null`: Request only native tokens * - `Address`: Request specific token by address * - `{ address: Address }`: Request specific token by address object * - `undefined`: Request all available tokens (native, USDC, EURC) * * @returns Promise that resolves when the testnet token request is completed * * @throws {UnsupportedChainError} When the chain doesn't support faucet functionality * * @example * ```typescript * // Request all available testnet tokens * await drip(client, { * account: '0x1234567890123456789012345678901234567890' * }) * * // Request only native tokens * await drip(client, { * account: '0x1234567890123456789012345678901234567890', * token: null * }) * * // Request specific token (USDC) * await drip(client, { * account: '0x1234567890123456789012345678901234567890', * token: client.chain.contracts.USDC * }) * ``` */ export declare function drip(client: ExtendedViemClient, params: DripParams): Promise;