/**
 * Hook for polling payment status after Stripe redirects.
 *
 * Built on top of the generic usePolling hook, this provides
 * a specialized interface for verifying event registration payments.
 *
 * @example
 * ```tsx
 * const verification = usePaymentVerification(
 *   step === 'verifying-payment' && attendeeId
 *     ? { transactionId: attendeeId }
 *     : null
 * );
 *
 * useEffect(() => {
 *   if (verification.status === 'completed') {
 *     setStep('success');
 *   } else if (verification.status === 'failed') {
 *     setStep('payment-failed');
 *   } else if (verification.status === 'timeout') {
 *     setStep('verifying-timeout');
 *   }
 * }, [verification.status]);
 * ```
 */
import type { PaymentStatus, AttendeeStatus } from '../api/types';
export type PaymentVerificationConfig = {
    /** Unique ID to check (attendeeId, customerPassId, etc.) */
    transactionId: string;
    /** Max polling attempts (default: 10) */
    maxAttempts?: number;
    /** Interval between polls in ms (default: 1000) */
    pollInterval?: number;
};
export type PaymentVerificationResult = {
    /** Current verification status */
    status: 'idle' | 'polling' | 'completed' | 'failed' | 'timeout';
    /** Payment status from backend (null while polling or on timeout) */
    paymentStatus: PaymentStatus | null;
    /** Attendee status from backend (null while polling or on timeout) */
    attendeeStatus: AttendeeStatus | null;
    /** Waitlist position if applicable */
    waitlistPosition: number | null;
    /** Error message if failed or timed out */
    error: string | null;
    /** Manually trigger a poll (useful for retry after timeout) */
    retry: () => void;
};
/**
 * Hook for polling payment status after Stripe redirects.
 *
 * Pass config to start polling, or null to stop/idle.
 * The hook handles cleanup on unmount and config changes.
 *
 * @param config - Configuration for polling, or null to stop
 * @returns Verification result with status, data, and retry function
 */
export declare function usePaymentVerification(config: PaymentVerificationConfig | null): PaymentVerificationResult;
