/** * Webhooks Controller * * Exposes webhook endpoints for external services. * Uses StorageService and NotificationService instances for webhook processing. * All webhooks verify signatures before processing. * * @endpoints * - POST /webhooks/storage/:provider - Storage webhooks (r2 | supabase | media) * - POST /webhooks/notifications/:provider - Notification webhooks (sendgrid | infobip) * - POST /webhooks/notifications/infobip/:type - Infobip typed webhooks (delivery | tracking) */ import type { Request } from 'express'; import { type WebhookProcessingResult as NotificationWebhookResult } from '@plyaz/types/notifications'; import { type StorageWebhookProcessingResult } from '@plyaz/types/storage'; interface WebhookRequest extends Request { rawBody?: Buffer; } /** HTTP response for webhook endpoints - subset of internal result */ type WebhookHttpResponse = Pick & { message?: string; eventsProcessed?: number; }; export declare class WebhooksController { /** * Generic storage webhook endpoint * Handles: R2, Supabase, and media processing webhooks */ handleStorageWebhook(provider: string, headers: Record, body: Record, req: WebhookRequest): Promise; private resolveStorageProvider; private processStorageWebhook; private extractStorageEventType; /** * Generic notification webhook endpoint * Handles: SendGrid and Infobip webhooks */ handleNotificationWebhook(provider: string, headers: Record, body: Record, req: WebhookRequest): Promise; /** * Infobip webhook with type parameter * Handles: delivery status and tracking events separately */ handleInfobipTypedWebhook(type: string, headers: Record, body: Record, req: WebhookRequest): Promise; private resolveNotificationProvider; private processNotificationWebhook; } export {}; //# sourceMappingURL=webhooks.controller.d.ts.map