@454creative/easy-email
Version:
A framework-agnostic email service library for Node.js with observability and monitoring
61 lines • 2.23 kB
TypeScript
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