/**
 * Notification Module Index
 *
 * Exports all notification-related services, templates, and utilities
 * for admin Telegram notifications.
 */

// Main notification service
export {
  notificationService,
  notifyNewUser,
  notifyModuleCompleted,
  notifyTop10Entry,
  notifySystemError,
  sendDailySummary,
  type CreateNotificationResult,
  type SendNotificationResult,
  type NotificationStatistics,
} from './notification.service';

// Telegram client
export {
  telegramClient,
  getTelegramClient,
  type SendMessageResult,
  type HealthCheckResult,
} from './telegram/telegram.client';

// Notification templates
export {
  generateNewUserAlert,
  generateSystemErrorAlert,
  generateDailySummaryAlert,
  generateDatabaseAlert,
  generateHighLoadAlert,
  generateSecurityAlert,
  type NewUserAlertData,
  type SystemErrorAlertData,
  type DailySummaryAlertData,
} from './telegram/templates/alert.template';

export {
  generateProgressMessage,
  generateModuleCompletionMessage,
  generateExerciseCompletionMessage,
  generateStreakMessage,
  generateProgressSummary,
  type ProgressNotificationData,
  type ModuleCompletionData,
  type ExerciseCompletionData,
  type PROGRESS_MESSAGE_TYPES,
} from './telegram/templates/progress.template';

export {
  generateAchievementMessage,
  generateRankingMilestoneMessage,
  generateTop10EntryMessage,
  generateFirstAchievementMessage,
  generateRareAchievementMessage,
  generateAchievementSummary,
  type AchievementNotificationData,
  type RankingMilestoneData,
  type ACHIEVEMENT_MESSAGE_TYPES,
} from './telegram/templates/achievement.template';

// Worker (temporarily disabled)
// export {
//   getNotificationQueue,
//   getNotificationWorker,
//   queueNotification,
//   retryFailedNotifications,
//   getQueueStats,
//   pauseQueue,
//   resumeQueue,
//   cleanQueue,
//   startNotificationWorker,
//   stopNotificationWorker,
//   getWorkerHealth,
//   type NotificationJobData,
//   type NotificationJobResult,
// } from '../../workers/notification-sender.worker';
