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