/**
 * Mawidi Demo Scheduler - Public API
 * Main entry point for the scheduler component
 */

import DemoSchedulerComponent from "./DemoScheduler";
export { DemoSchedulerComponent as DemoScheduler };
export default DemoSchedulerComponent;
export type { DemoSchedulerProps } from "./DemoScheduler";

// Export types for external use
export type {
  BookingData,
  UserInfo,
  TimeSlot,
  BookingDate,
  FormErrors,
} from "./types/scheduler.types";

// Export configuration for customization
export { SCHEDULER_CONFIG } from "./config/schedulerConfig";

// Export hooks for advanced usage
export { useAvailability } from "./hooks/useAvailability";
export { useBookingForm } from "./hooks/useBookingForm";
export { useTimezone } from "./hooks/useTimezone";

// Export utility functions
export {
  formatDateForDisplay,
  formatTimeForDisplay,
  isWithinBookingWindow,
  isBusinessDay,
  isWithinBusinessHours,
  meetsMinimumAdvance,
} from "./utils/dateHelpers";

export {
  formatDuration,
  convertToTimezone,
  detectUserTimezone,
} from "./utils/timezoneHelpers";

export {
  validateEmail,
  validatePhoneNumber,
  validateName,
  validateMessage,
  sanitizeInput,
} from "./utils/validationHelpers";

export {
  saveBookingToStorage,
  getBookingFromStorage,
  clearBookingFromStorage,
} from "./utils/storageHelpers";
