/**
 * Core Types Module
 * 
 * Canonical types surface for cross-platform contracts.
 * This module provides stable, versioned types that guarantee
 * Android, iOS, and Web agree on semantics.
 * 
 * @author Matthew Raymer
 * @version 1.0.0
 */

// Error codes and error types
export {
  ErrorCode,
  type ErrorResponse,
  DailyNotificationError,
} from './errors';

// Enums
export {
  PermissionState,
  NotificationPriority,
  ScheduleKind,
  HistoryKind,
  HistoryOutcome,
  CallbackKind,
  ConfigDataType,
  CacheEvictionPolicy,
} from './enums';

// Core contracts (interfaces)
export type {
  Schedule,
  ScheduleWithStatus,
  CreateScheduleInput,
  ContentCache,
  CreateContentCacheInput,
  Config,
  CreateConfigInput,
  Callback,
  CreateCallbackInput,
  History,
  HistoryStats,
} from './contracts';

// Events
export {
  EVENT_CODES,
  EVENT_SCHEMA_VERSION,
  createEventLog,
  type EventLog,
} from './events';

// Guards (runtime validators)
export {
  isScheduleKind,
  isHistoryKind,
  isHistoryOutcome,
  isCallbackKind,
  isValidTimeFormat,
  isValidTimestamp,
} from './guards';

// Metrics
export {
  type PerformanceMetric,
  type MetricsCollector,
  InMemoryMetricsCollector,
} from './metrics';

