import type { NotificationPayload, NotificationRecipient } from '../../notifications.types.js'; import type { NotificationChannel } from '../channel.interface.js'; import { ChannelType, type ChannelContent, type ChannelSendResult, type ChannelHealth, type WebhookContent } from '../channel.interface.js'; export interface WebhookChannelOptions { timeout?: number; retries?: number; retryDelay?: number; headers?: Record; signatureSecret?: string; signatureHeader?: string; signatureAlgorithm?: 'sha1' | 'sha256' | 'sha512'; includeTimestamp?: boolean; timestampHeader?: string; validateSSL?: boolean; userAgent?: string; } export declare class WebhookChannel implements NotificationChannel { readonly name = "webhook"; readonly type = ChannelType.Webhook; private readonly options; private healthCheckUrl?; constructor(options?: WebhookChannelOptions); configure(options: WebhookChannelOptions): void; setHealthCheckUrl(url: string): void; initialize(): Promise; shutdown(): Promise; isAvailable(): Promise; healthCheck(): Promise; validateRecipient(recipient: NotificationRecipient): boolean; formatContent(notification: NotificationPayload): WebhookContent; send(recipient: NotificationRecipient, content: ChannelContent): Promise; private sendRequest; private buildHeaders; private generateSignature; private isValidUrl; private delay; } export declare function verifyWebhookSignature(body: string, signature: string, secret: string, algorithm?: 'sha1' | 'sha256' | 'sha512'): boolean; //# sourceMappingURL=webhook.channel.d.ts.map