/**
 * Generic webhook verification module.
 *
 * Supports multiple verification methods for non-GitHub webhook sources:
 * - HMAC-SHA256 signature verification (reuses engine's verifySignature)
 * - Bearer token comparison (constant-time)
 * - IP allowlist (exact match)
 * - None (no verification, always passes)
 */
/** Supported verification methods */
export type VerificationMethod = 'hmac_sha256' | 'bearer_token' | 'ip_allowlist' | 'none';
/** HMAC-SHA256 verification config */
export interface HmacVerificationConfig {
    method: 'hmac_sha256';
    secret: string;
    /** Header containing the signature (default: x-signature-256) */
    headerName?: string;
}
/** Bearer token verification config */
export interface BearerVerificationConfig {
    method: 'bearer_token';
    token: string;
    /** Header containing the token (default: authorization) */
    headerName?: string;
}
/** IP allowlist verification config */
export interface IpAllowlistVerificationConfig {
    method: 'ip_allowlist';
    allowlist: string[];
}
/** No verification config */
export interface NoneVerificationConfig {
    method: 'none';
}
/** Discriminated union of all verification configs */
export type VerificationConfig = HmacVerificationConfig | BearerVerificationConfig | IpAllowlistVerificationConfig | NoneVerificationConfig;
/**
 * Verify a generic webhook request.
 *
 * @param body - Raw request body as string
 * @param headers - Request headers (lowercase keys)
 * @param config - Verification configuration for this source
 * @param clientIp - Client IP address (required for ip_allowlist method)
 * @returns true if verification passes
 */
export declare function verifyGenericWebhook(body: string, headers: Record<string, string>, config: VerificationConfig, clientIp?: string): boolean;
//# sourceMappingURL=verification.d.ts.map