import type { BraintreeOneTimePaymentSessionOptions } from "../../types/braintree";
export type UseBraintreePayPalOneTimePaymentSessionProps = BraintreeOneTimePaymentSessionOptions;
export interface UseBraintreePayPalOneTimePaymentSessionReturn {
    error: Error | null;
    isPending: boolean;
    handleClick: () => void;
}
/**
 * Hook for managing one-time payment sessions with Braintree PayPal.
 *
 * The hook returns an `isPending` flag that indicates whether the Braintree checkout
 * instance is still being initialized. Buttons should wait to render until `isPending`
 * is false.
 *
 * @returns Object with: `error` (any session error), `isPending` (checkout instance loading), `handleClick` (starts session)
 *
 * @example
 * function BraintreePayPalButton() {
 *   const { braintreePayPalCheckoutInstance } = useBraintreePayPal();
 *   const { isPending, error, handleClick } = useBraintreePayPalOneTimePaymentSession({
 *     amount: "10.00",
 *     currency: "USD",
 *     onApprove: async (data) => {
 *       const payload = await braintreePayPalCheckoutInstance.tokenizePayment({
 *         payerID: data.payerId,
 *         orderID: data.orderId,
 *       });
 *       // Send payload.nonce to your server
 *     },
 *   });
 *
 *   if (isPending) return null;
 *   if (error) return <div>Error: {error.message}</div>;
 *
 *   return <button onClick={handleClick}>Pay with PayPal</button>;
 * }
 */
export declare function useBraintreePayPalOneTimePaymentSession({ onApprove, onCancel, onError: onErrorCallback, onShippingAddressChange, onShippingOptionsChange, amount, currency, intent, commit, offerCredit, userAuthenticationEmail, returnUrl, cancelUrl, displayName, presentationMode, lineItems, shippingOptions, amountBreakdown, }: UseBraintreePayPalOneTimePaymentSessionProps): UseBraintreePayPalOneTimePaymentSessionReturn;
