import type { WebhookConfig, WebhookDelivery, WebhookEndpoint, WebhookEvent } from "../types/webhook.types";
export interface HttpClient {
    fetch(url: string, options: RequestInit): Promise<Response>;
}
export declare class DefaultHttpClient implements HttpClient {
    fetch(url: string, _options: RequestInit): Promise<Response>;
}
export declare class MockHttpClient implements HttpClient {
    private responses;
    private defaultResponse;
    setMockResponse(url: string, response: Response): void;
    setDefaultResponse(response: Response): void;
    fetch(url: string, _options: RequestInit): Promise<Response>;
}
export declare class WebhookDispatcher {
    private config;
    private httpClient;
    private securityManager;
    private retryManager;
    constructor(config: WebhookConfig, httpClient?: HttpClient);
    dispatch(event: WebhookEvent, endpoint: WebhookEndpoint): Promise<WebhookDelivery>;
    private executeDelivery;
    private shouldRetryAttempt;
    private makeHttpRequest;
    private buildHeaders;
    private calculateRetryDelay;
    private sleep;
    private generateDeliveryId;
    shutdown(): Promise<void>;
}
