import type { WebhookConfig } from "../types/webhook.types";
export interface SecurityConfig {
    algorithm: "sha256" | "sha1";
    header: string;
    prefix?: string;
}
/**
 * Webhook 보안 관리자
 * 서명 생성 및 검증을 담당
 */
export declare class SecurityManager {
    private config;
    constructor(webhookConfig: WebhookConfig);
    /**
     * Webhook 페이로드에 대한 서명 생성
     */
    generateSignature(payload: string, secret: string): string;
    /**
     * Webhook 서명 검증
     */
    verifySignature(payload: string, signature: string, secret: string): boolean;
    /**
     * HTTP 헤더에서 서명 추출
     */
    extractSignature(headers: Record<string, string>): string | null;
    /**
     * Webhook 전송을 위한 보안 헤더 생성
     */
    createSecurityHeaders(payload: string, secret: string): Record<string, string>;
    /**
     * 타임스탬프 기반 재생 공격 방지 검증
     */
    verifyTimestamp(timestamp: string, toleranceSeconds?: number): boolean;
    /**
     * Webhook ID 생성 (추적용)
     */
    private generateWebhookId;
    /**
     * Constant-time 문자열 비교 (타이밍 공격 방지)
     */
    private constantTimeCompare;
    /**
     * 보안 설정 업데이트
     */
    updateConfig(config: Partial<SecurityConfig>): void;
    /**
     * 현재 보안 설정 반환
     */
    getConfig(): SecurityConfig;
}
