import { WebhookEventType, WebhookHandler, WebhookEvent, PaymentProvider } from '../types.js'; import '@parsrun/types'; /** * @parsrun/payments - Webhook Handlers * Utilities for handling payment webhooks */ /** * Webhook event handler registry */ declare class WebhookHandlerRegistry { private handlers; /** * Register a handler for a specific event type */ on(type: WebhookEventType | "*", handler: WebhookHandler): this; /** * Register handlers for checkout events */ onCheckout(handler: WebhookHandler): this; /** * Register handlers for subscription events */ onSubscription(handler: WebhookHandler): this; /** * Register handlers for payment events */ onPayment(handler: WebhookHandler): this; /** * Register handlers for invoice events */ onInvoice(handler: WebhookHandler): this; /** * Register handlers for customer events */ onCustomer(handler: WebhookHandler): this; /** * Get handlers for an event type */ getHandlers(type: WebhookEventType): WebhookHandler[]; /** * Execute all handlers for an event */ handle(event: WebhookEvent): Promise; } /** * Webhook processor for handling incoming webhooks */ declare class WebhookProcessor { private provider; private registry; constructor(provider: PaymentProvider, registry?: WebhookHandlerRegistry); /** * Get the handler registry */ get handlers(): WebhookHandlerRegistry; /** * Process a webhook request */ process(request: Request): Promise; /** * Process raw webhook payload */ processRaw(payload: string | Uint8Array, signature: string): Promise; private getSignature; } /** * Webhook process result */ interface WebhookProcessResult { success: boolean; event?: WebhookEvent | undefined; error?: string | undefined; } /** * Create a webhook processor */ declare function createWebhookProcessor(provider: PaymentProvider, registry?: WebhookHandlerRegistry): WebhookProcessor; /** * Create a webhook handler registry */ declare function createWebhookHandlerRegistry(): WebhookHandlerRegistry; /** * Create a Hono/Express-compatible webhook handler */ declare function createWebhookHandler(provider: PaymentProvider, handlers: Partial>): (request: Request) => Promise; export { WebhookHandlerRegistry, type WebhookProcessResult, WebhookProcessor, createWebhookHandler, createWebhookHandlerRegistry, createWebhookProcessor };