import { DeliveryStatus } from '../entities'; export declare const WEBHOOK_EVENTS: readonly ["user.created", "user.updated", "user.deleted", "subscription.created", "subscription.updated", "subscription.cancelled", "invoice.paid", "invoice.failed", "file.uploaded", "file.deleted", "tenant.updated"]; export type WebhookEvent = (typeof WEBHOOK_EVENTS)[number]; export declare class CreateWebhookDto { name: string; description?: string; url: string; events: string[]; headers?: Record; } export declare class UpdateWebhookDto { name?: string; description?: string; url?: string; events?: string[]; headers?: Record; isActive?: boolean; } export declare class WebhookResponseDto { id: string; name: string; description: string | null; url: string; events: string[]; headers: Record; isActive: boolean; createdAt: Date; updatedAt: Date; stats?: WebhookStatsDto; } export declare class WebhookStatsDto { totalDeliveries: number; successfulDeliveries: number; failedDeliveries: number; pendingDeliveries: number; successRate: number; lastDeliveryAt: Date | null; } export declare class DeliveryResponseDto { id: string; webhookId: string; eventType: string; payload: Record; status: DeliveryStatus; responseStatus: number | null; responseBody: string | null; attempt: number; maxAttempts: number; nextRetryAt: Date | null; lastError: string | null; createdAt: Date; deliveredAt: Date | null; } export declare class TestWebhookDto { eventType?: string; payload?: Record; } export declare class ListDeliveriesQueryDto { status?: DeliveryStatus; eventType?: string; page?: number; limit?: number; } export declare class PaginatedDeliveriesDto { items: DeliveryResponseDto[]; total: number; page: number; limit: number; totalPages: number; } export declare class AvailableEventsDto { events: { name: string; description: string; }[]; }