export interface Payment { id: string; status: string; subStatus: string; requireAction: 'none' | 'redirect' | 'redirect_to_payment' | 'error' | 'radar'; requireActionData?: { type: 'redirect' | 'redirect_to_payment' | 'threeds_auth' | 'processor_auth' | 'error' | 'stripe_radar' | 'finix_radar'; url?: string; processed: boolean; processorId?: string; metadata?: { type: 'redirect' | 'redirect_to_payment' | 'stripe_radar' | 'finix_radar'; redirect?: { redirectUrl: string; returnUrl: string; }; threedsSession?: { externalSessionId: string; acsChallengeUrl: string; acsTransID: string; messageVersion: string; }; radar?: { merchantId: string; environment: 'sandbox' | 'live'; orderId?: string; publishableKey?: string; }; }; redirectUrl?: string; resumeToken?: string; message?: string; errorCode?: string; }; } export interface PollingOptions { onRequireAction?: (payment: Payment, stop: () => void) => void; onSuccess?: (payment: Payment) => void; onFailure?: (error: string) => void; maxAttempts?: number; pollInterval?: number; } export interface PaymentPollingHook { startPolling: (paymentId: string, options?: PollingOptions) => { stop: () => void; isPolling: () => boolean; }; stopPolling: () => void; isPolling: () => boolean; } export declare function usePaymentPolling(): PaymentPollingHook;