/**
 * Email Library
 * 
 * A reusable email library for NodeJS/JavaScript and NestJS/TypeScript projects
 * 
 * @version 3.0.0
 * @author Will Chu <wchu@454creative.com>
 * @license ISC
 */

// Version information
export { VERSION, LIBRARY_INFO, getLibraryInfo, isVersionCompatible } from './config/version';

// Export all types
export * from './types';

// Export interfaces
export * from './interfaces/email-options.interface';
export * from './interfaces/observability.interface';
export * from './interfaces/email-request.interface';
export * from './interfaces/email-service.interface';

// Export services
export { EmailService } from './services/email.service';
export { ObservabilityService } from './services/observability.service';
export { SesService } from './services/ses.service';

// Export utilities
export * from './utils/email-validator';
export * from './utils/template-engine';
export * from './utils/logger';
export * from './utils/performance';

// Export errors
export * from './errors';

// Export configuration
export * from './config/constants';
export * from './config/default-config';
export * from './config/provider-factory';
export * from './config/validator';

// Default export for convenience
import { EmailService } from './services/email.service';
export default EmailService;

// Value exports for enums and constants
export { EmailProviderType } from './interfaces/email-options.interface';
export { PerformanceMonitor, trackPerformance } from './utils/performance';
export { EMAIL_CONSTANTS, OBSERVABILITY_CONSTANTS } from './config/constants';
