export type { MarketplaceContextValue } from './MarketplaceProvider.js'
export { MarketplaceProvider } from './MarketplaceProvider.js'

export type { MarketplaceClient, ApplyAsVendorWire, CreateVendorProductWire } from './client.js'

export {
  MarketplaceProviderError,
  isMarketplaceProviderError,
  MarketplaceWireError,
  isMarketplaceWireError,
  isVendorNotFoundError,
  isVendorProductNotFoundError,
  isVendorAuthorizationError,
  isVendorStateError,
  isCommissionRateError,
  isVendorAlreadyExistsError,
} from './errors.js'

export { reviveVendor, reviveOptionalVendor } from './revive.js'

// Composed revive helpers re-exported (spec §5) so a host using only
// marketplace-react can revive vendor order lists / product rows without
// importing the orders-react / catalog-react siblings directly.
export { reviveOrderPage } from '@platform-modules/commerce-orders-react'
export { reviveProduct } from '@platform-modules/commerce-catalog-react'

export type { AsyncResource } from './useAsyncResource.js'

export type { OptimisticVendor } from './useApplyAsVendor.js'
export { useApplyAsVendor } from './useApplyAsVendor.js'
export { useCreateVendorProduct } from './useCreateVendorProduct.js'
export { useUpdateVendorProduct } from './useUpdateVendorProduct.js'
export { useVendorOrders } from './useVendorOrders.js'
export { useVendorProfile } from './useVendorProfile.js'
