/**
 * Webhook Management System for API notifications
 */
export interface WebhookConfig {
    url: string;
    secret?: string;
    events: WebhookEvent[];
    headers?: Record<string, string>;
    retries?: number;
    timeout?: number;
    active: boolean;
}
export type WebhookEvent = 'audit.started' | 'audit.completed' | 'audit.failed' | 'report.generated' | 'analysis.progress';
export interface WebhookPayload {
    event: WebhookEvent;
    timestamp: number;
    data: any;
    signature?: string;
}
export interface WebhookDelivery {
    id: string;
    webhook_id: string;
    event: WebhookEvent;
    payload: WebhookPayload;
    status: 'pending' | 'delivered' | 'failed' | 'retrying';
    attempts: number;
    last_attempt: number;
    response_code?: number;
    response_body?: string;
    error?: string;
}
export declare class WebhookManager {
    private webhooks;
    private deliveries;
    private retryQueue;
    private retryInterval;
    constructor();
    /**
     * Register a new webhook
     */
    register(id: string, config: WebhookConfig): void;
    /**
     * Unregister a webhook
     */
    unregister(id: string): boolean;
    /**
     * Update webhook configuration
     */
    update(id: string, config: Partial<WebhookConfig>): boolean;
    /**
     * Get webhook configuration
     */
    getWebhook(id: string): WebhookConfig | undefined;
    /**
     * List all webhooks
     */
    listWebhooks(): Map<string, WebhookConfig>;
    /**
     * Trigger webhook for a specific event
     */
    trigger(event: WebhookEvent, data: any): Promise<WebhookDelivery[]>;
    /**
     * Deliver webhook to a specific endpoint
     */
    private deliver;
    /**
     * Attempt to deliver a webhook
     */
    private attemptDelivery;
    /**
     * Generate HMAC signature for webhook payload
     */
    private generateSignature;
    /**
     * Verify webhook signature
     */
    static verifySignature(payload: string, signature: string, secret: string): boolean;
    /**
     * Start retry processor for failed deliveries
     */
    private startRetryProcessor;
    /**
     * Process retry queue
     */
    private processRetries;
    /**
     * Get delivery information
     */
    getDelivery(deliveryId: string): WebhookDelivery | undefined;
    /**
     * Get deliveries for a webhook
     */
    getWebhookDeliveries(webhookId: string, limit?: number): WebhookDelivery[];
    /**
     * Get delivery statistics
     */
    getDeliveryStats(webhookId?: string): {
        total: number;
        delivered: number;
        failed: number;
        pending: number;
        retrying: number;
        successRate: number;
    };
    /**
     * Clean up old deliveries
     */
    cleanup(olderThanMs?: number): number;
    /**
     * Shutdown webhook manager
     */
    shutdown(): void;
    /**
     * Export webhook configuration and deliveries
     */
    export(): {
        webhooks: Record<string, WebhookConfig>;
        deliveries: WebhookDelivery[];
        stats: {
            total: number;
            delivered: number;
            failed: number;
            pending: number;
            retrying: number;
            successRate: number;
        };
    };
}
export declare const webhookManager: WebhookManager;
//# sourceMappingURL=webhook-manager.d.ts.map