/**
 * Notifications Service
 * Push notification infrastructure for APNS delivery with smart throttling.
 */

export {
  sendPushNotification,
  sendLiveActivityUpdate,
  isApnsAvailable,
  buildAlertApnsRequest,
  buildLiveActivityApnsRequest,
  type PushPayload,
  type LiveActivityPayload,
  type CharacterLiveActivityContentState,
  type NotificationCategory,
  type SendResult,
  type DeepLinkType,
  type DeepLinkPayload,
} from './pushNotificationService.js';

export {
  notify,
  notifyRealtimeEvent,
  shouldSendNotification,
  queueRealtimeNotification,
  getRemainingBudget,
  clearThrottle,
  clearAllThrottles,
  type NotifyOptions,
  type NotifyResult,
} from './notificationManager.js';

export {
  createLiveActivityContentState,
  shouldSendLiveActivityUpdate,
  queueLiveActivityUpdate,
  endLiveActivityForPlayer,
  LIVE_ACTIVITY_REMOTE_UPDATE_INTERVAL_MS,
  type LiveActivityUpdateResult,
} from './liveActivityManager.js';
