/** * Gestionnaire de webhooks MonCash */ import { WebhookPayload, TransactionData, MonCashException } from './types'; import { MonCashClient } from './client'; export interface WebhookHandler { /** * Callback quand le paiement est réussi */ onSuccess?: (transaction: TransactionData, payload: WebhookPayload) => Promise; /** * Callback quand le paiement échoue */ onFailure?: (transaction: TransactionData, payload: WebhookPayload) => Promise; /** * Callback pour toute transaction (avant les handlers spécifiques) */ onTransaction?: (transaction: TransactionData, payload: WebhookPayload) => Promise; /** * Callback quand une erreur se produit */ onError?: (error: MonCashException, payload: WebhookPayload) => Promise; } export declare class WebhookManager { private client; private handlers; constructor(client: MonCashClient, handlers?: WebhookHandler); /** * 🔗 Traiter un webhook reçu de MonCash * * @example * ```typescript * // Dans ton endpoint Express/Next.js * const webhookManager = new WebhookManager(client, { * onSuccess: async (transaction) => { * // Mettre à jour la commande en base de données * await updateOrder(transaction.orderId, { status: 'paid' }); * }, * onFailure: async (transaction) => { * await updateOrder(transaction.orderId, { status: 'failed' }); * }, * }); * * await webhookManager.handle(req.body); * ``` */ handle(payload: WebhookPayload): Promise; /** * Mettre à jour les handlers */ setHandlers(handlers: WebhookHandler): void; /** * Ajouter un handler sans supprimer les autres */ addHandler(key: keyof WebhookHandler, handler: any): void; } export default WebhookManager; //# sourceMappingURL=webhook.d.ts.map