/**
 * Job Queue Module
 *
 * Provides background job processing with Redis-backed queue,
 * exponential backoff retries, and dead letter queue.
 *
 * @example
 * // Enqueue a job
 * import { enqueueJob } from '@/lib/queue';
 * await enqueueJob('email', { to: 'user@example.com', ... });
 *
 * // Queue an email with helper
 * import { queueEmail } from '@/lib/queue';
 * await queueEmail({ to: 'user@example.com', subject: '...', ... });
 */

export {
  enqueueJob,
  processJobs,
  queueDepth,
  getDLQJobs,
  retryDLQJob,
  removeDLQJob,
  clearDLQ,
  getRecentProcessedJobs,
  type Job,
  type JobType,
  type JobPriority,
  type QueueDepthResult,
} from './job-queue';

export {
  queueEmail,
  queueEmailBatch,
  queueTransactionalEmail,
  queueMarketingEmail,
  type QueuedEmailOptions,
} from './email-queue';
