/**
 * NotificationType canonical union — owned by notification-preferences (spec 97).
 *
 * This file is the authoritative value-set. No other spec in this wave
 * redefines the union; they re-export from here via ./notification.ts.
 *
 * The 30+ values below cover every cross-module event that surfaces in the
 * notification inbox, email fanout, Telegram push, or web-push delivery.
 */
export type NotificationType =
  // Task lifecycle
  | 'task_assigned'
  | 'task_comment'
  | 'task_status_changed'
  | 'task_due_soon'
  | 'task_overdue'
  | 'task_completed'
  // Invoice lifecycle
  | 'invoice_paid'
  | 'invoice_overdue'
  | 'invoice_sent'
  | 'invoice_viewed'
  | 'invoice_cancelled'
  // Invoice email delivery (wave-13: invoice-email-history)
  | 'invoice_email_bounced'
  // User / membership
  | 'user_approved'
  | 'user_frozen'
  | 'user_invited'
  | 'user_joined'
  // Support / CRM
  | 'ticket_created'
  | 'ticket_assigned'
  | 'ticket_replied'
  | 'ticket_resolved'
  | 'ticket_escalated'
  // Expenses
  | 'expense_submitted'
  | 'expense_approved'
  | 'expense_rejected'
  // Projects
  | 'project_created'
  | 'project_member_added'
  | 'project_deadline_approaching'
  | 'project_budget_alert'
  // Payments / billing
  | 'payment_received'
  | 'payment_failed'
  | 'subscription_expiring'
  // AI assistant
  | 'ai_suggestion_ready'
  // Proposals (wave-11)
  | 'proposal_viewed'
  | 'proposal_accepted'
  | 'proposal_rejected'
  // System
  | 'system_maintenance'
  | 'data_export_ready'
