UNPKG

@454creative/easy-email

Version:

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

61 lines 2.23 kB
import { ITemplateService, TemplateInfo, TemplateValidationResult } from '../interfaces/template.interface'; import { EmailProviderType } from '../interfaces/email-options.interface'; import { SendGridConfig, SesConfig } from '../interfaces/email-options.interface'; export declare class TemplateManagerService { private templateServices; private logger; constructor(); /** * Register a template service for a specific provider */ registerTemplateService(provider: EmailProviderType, service: ITemplateService): void; /** * Register SendGrid template service */ registerSendGridService(config: SendGridConfig): void; /** * Register SES template service */ registerSesService(config: SesConfig): void; /** * Check if a template service is available for a provider */ hasTemplateService(provider: EmailProviderType): boolean; /** * Get template service for a specific provider */ getTemplateService(provider: EmailProviderType): ITemplateService; /** * Render template using the appropriate service */ renderTemplate(templateId: string, data: Record<string, any>, provider: EmailProviderType): Promise<string>; /** * Validate template using the appropriate service */ validateTemplate(templateId: string, provider: EmailProviderType): Promise<boolean>; /** * Get template info using the appropriate service */ getTemplateInfo(templateId: string, provider: EmailProviderType): Promise<TemplateInfo>; /** * Validate template with detailed results */ validateTemplateWithDetails(templateId: string, data: Record<string, any>, provider: EmailProviderType): Promise<TemplateValidationResult>; /** * List available templates for a provider */ listTemplates(provider: EmailProviderType): Promise<string[]>; /** * Get all available template services */ getAvailableProviders(): EmailProviderType[]; /** * Clear all registered template services */ clearServices(): void; /** * Get service statistics */ getServiceStats(): Record<string, any>; } //# sourceMappingURL=template-manager.service.d.ts.map