// packages/commerce-catalog-react/src/index.tsx

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

// Read hooks (§3)
export { useProductBySlug } from './useProductBySlug.js'
export { useProductById } from './useProductById.js'
export { useProductList } from './useProductList.js'

// Seam (§1)
export type { CatalogClient } from './client.js'

// Errors + guards (§4)
export {
  CatalogProviderError,
  ProductWireError,
  isCatalogProviderError,
  isProductWireError,
  isImmutableFieldError,
  isNoPriceForCurrencyError,
  isProductValidationError,
} from './errors.js'

// Wire revival (§5)
export { reviveProduct, reviveProductPage } from './revive.js'

// Core types re-exported so consumers import from one place (§1 — sibling never redefines them).
export type {
  CatalogFilter,
  Money,
  Page,
  Product,
  ReadOpts,
  Variant,
  VariantPrice,
} from '@platform-modules/commerce-catalog'
