import { CdpClient, type SpendPermission } from "@coinbase/cdp-sdk";
import type { Address } from "viem";
/**
 * Shared utility functions for spend permission operations.
 */
/**
 * Lists and formats spend permissions for a given smart account and spender.
 *
 * @param cdpClient - The CDP client to use for API calls
 * @param smartAccountAddress - The smart account address to check permissions for
 * @param spenderAddress - The spender address to filter permissions by
 * @returns A formatted string containing the spend permissions or an error message
 */
export declare function listSpendPermissionsForSpender(cdpClient: CdpClient, smartAccountAddress: Address, spenderAddress: Address): Promise<string>;
/**
 * Finds and retrieves the latest valid spend permission for a given spender from a smart account.
 *
 * @param cdpClient - The CDP client to use for API calls
 * @param smartAccountAddress - The smart account address to check permissions for
 * @param spenderAddress - The spender address to find permissions for
 * @returns The latest spend permission or throws an error if none found
 * @throws Error if no permissions found or permission is invalid
 */
export declare function findLatestSpendPermission(cdpClient: CdpClient, smartAccountAddress: Address, spenderAddress: Address): Promise<SpendPermission>;
