/**
 * Notifications Application Layer
 * 
 * Exports all use cases, queries, and ports.
 */

// Use Cases
export * from './use-cases/GetUnreadNotificationsUseCase';
export * from './use-cases/MarkNotificationReadUseCase';
export * from './use-cases/NotificationPreferencesUseCases';
export * from './use-cases/SendNotificationUseCase';

// Ports
export * from './ports/NotificationGateway';

// Re-export domain types for convenience
export type {
  Notification, NotificationAction, NotificationData, NotificationProps,
  NotificationStatus, NotificationUrgency
} from '../domain/entities/Notification';
export type { ChannelPreference, NotificationPreference, NotificationPreferenceProps, TypePreference } from '../domain/entities/NotificationPreference';
export { ALL_CHANNELS, DEFAULT_ENABLED_CHANNELS, getChannelDisplayName, getNotificationTypePriority, getNotificationTypeTitle, isExternalChannel } from '../domain/types/NotificationTypes';
export type { NotificationChannel, NotificationType } from '../domain/types/NotificationTypes';

// Re-export repository interfaces
export type { INotificationPreferenceRepository } from '../domain/repositories/INotificationPreferenceRepository';
export type { INotificationRepository } from '../domain/repositories/INotificationRepository';

