import type { Address, Hex } from 'viem';
import { type CheckoutConfirmationError } from '../../domains/checkoutErrors';
import type { FunkitCheckoutQuoteResult } from '../../domains/quote';
import { type FunkitActiveWithdrawalItem, type FunkitWithdrawalConfig, type WithdrawalCustomerData } from '../../providers/FunkitCheckoutContext';
interface UseWithdrawalResult {
    handleWithdrawal: (withdrawal: WithdrawalFormData) => Promise<Hex | null>;
    isWithdrawing: boolean;
    withdrawalError: CheckoutConfirmationError | null;
    stepMessage: string | null;
}
export type WithdrawalFormData = {
    destinationAddress: Address;
    withdrawalUSD: string;
    tokenSymbol: string;
    tokenAddress: Address;
    chainId: number;
    quote?: FunkitCheckoutQuoteResult;
    /** Customer-specific data for quoteless flows (e.g. Lighter Secure). */
    customerData?: WithdrawalCustomerData;
    userInputAmount: string;
};
export declare function useWithdrawal({ config, withdrawalItem, onSuccess, }: {
    config: FunkitWithdrawalConfig;
    withdrawalItem: FunkitActiveWithdrawalItem | null;
    onSuccess?: (withdrawal: WithdrawalFormData, txHash: Hex) => void;
}): UseWithdrawalResult;
export {};
