import { type FieldCryptoConfig } from "@k-msg/core";
import type { WebhookDelivery, WebhookEndpoint, WebhookEventType } from "../types/webhook.types";
export interface WebhookRegistryCryptoOptions {
    tenantId?: string;
    endpoint?: FieldCryptoConfig;
    delivery?: FieldCryptoConfig;
}
export interface WebhookRegistryOptions {
    fieldCrypto?: WebhookRegistryCryptoOptions;
}
export declare class WebhookRegistry {
    private endpoints;
    private deliveries;
    private readonly options;
    constructor(options?: WebhookRegistryOptions);
    addEndpoint(endpoint: WebhookEndpoint): Promise<void>;
    updateEndpoint(endpointId: string, endpoint: WebhookEndpoint): Promise<void>;
    removeEndpoint(endpointId: string): Promise<void>;
    getEndpoint(endpointId: string): Promise<WebhookEndpoint | null>;
    listEndpoints(): Promise<WebhookEndpoint[]>;
    addDelivery(delivery: WebhookDelivery): Promise<void>;
    getDeliveries(endpointId?: string, timeRange?: {
        start: Date;
        end: Date;
    }, eventType?: WebhookEventType, status?: string, limit?: number): Promise<WebhookDelivery[]>;
    getFailedDeliveries(endpointId?: string, eventType?: WebhookEventType): Promise<WebhookDelivery[]>;
    private protectEndpoint;
    private revealEndpoint;
    private protectDelivery;
    private revealDelivery;
    private validateCryptoOptions;
}
