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