// Provider (§2)
export { ReviewsProvider } from './ReviewsProvider.js'

// Read hooks (§4.1)
export { useReviewList } from './useReviewList.js'
export { useRatingAggregate } from './useRatingAggregate.js'

// Write hook (§4.2)
export { useSubmitReview } from './useSubmitReview.js'

// Seam (§3)
export { useReviewsClient } from './client.js'
export type { ReviewsClient, ReviewListOpts, SubmitReviewWire, OptimisticReview } from './client.js'

// Errors + guards (§5.1)
export {
  ReviewsProviderError,
  ReviewWireError,
  isReviewsProviderError,
  isReviewWireError,
  isImmutableFieldError,
  isNotPurchasedError,
  isReviewNotFoundError,
  isReviewValidationError,
} from './errors.js'

// Wire revival (§5)
export { reviveReview, reviveReviewPage, reviveRatingAggregate, reviveRequiredDate } from './revive.js'
export type { PublicReview } from './revive.js'

// Core types re-exported so consumers import from one place (§2).
export type {
  Page,
  RatingAggregate,
  Review,
  ReviewRating,
  ReviewStatus,
} from '@platform-modules/commerce-reviews'
