UNPKG

@454creative/easy-email

Version:

A framework-agnostic email service library for Node.js with observability and monitoring

73 lines 1.89 kB
export interface EmailEvent { id: string; timestamp: string; type: 'email_sent' | 'email_failed' | 'connection_verified' | 'connection_failed'; provider: 'smtp' | 'sendgrid' | 'ses'; recipient?: string; subject?: string; messageId?: string; duration?: number; error?: { message: string; code?: string; details?: any; }; metadata?: Record<string, any>; } export interface ObservabilityConfig { enabled: boolean; logLevel?: 'debug' | 'info' | 'warn' | 'error'; includeSensitiveData?: boolean; customLogger?: (event: EmailEvent) => void; metricsCollector?: (metrics: EmailMetrics) => void; tracingEnabled?: boolean; } export interface EmailMetrics { totalSent: number; totalFailed: number; successRate: number; averageSendTime: number; providerBreakdown: { smtp: { sent: number; failed: number; avgTime: number; }; sendgrid: { sent: number; failed: number; avgTime: number; }; ses: { sent: number; failed: number; avgTime: number; }; }; last24Hours: { sent: number; failed: number; avgTime: number; }; sesMetrics?: { quotaUsage: number; bounceRate: number; complaintRate: number; deliveryRate: number; lastQuotaCheck?: string; }; } export interface AuditLog { timestamp: string; action: 'email_sent' | 'email_failed' | 'configuration_changed' | 'connection_verified'; userId?: string; ipAddress?: string; emailDetails: { to: string[]; subject: string; provider: string; messageId?: string; }; metadata?: Record<string, any>; } //# sourceMappingURL=observability.interface.d.ts.map