/**
 * Sales SDK 顶层导出。
 *
 * 该模块为「headless 业务数据层」：通过 React Provider + Hooks 暴露 OS BookingTicket 数据流，
 * 不依赖任何 UI 组件；所有对外名称均带 `SalesSdk` / `useSalesSdk` 前缀，避免与既有 `components/Sales`
 * UI 模块同名冲突。
 *
 * 入口约定：
 *  - 顶层包裹：<SalesSdkProvider osKey="..." orderId={...} />
 *  - 数据 + actions：useSalesSdk / useSalesSdkProducts / useSalesSdkCart / useSalesSdkCustomer / useSalesSdkSummary
 *  - 派生：deriveDisabledEdit / deriveSummary / isWalkInCustomer
 *  - 多源 enrich：enrichCartItem(s) / enrichCustomer / pickIdentity
 *  - 通用基础：useSyncOsModule
 */
export { SalesSdkProvider } from './context/SalesSdkProvider';
export { formatBookingDateTime, subscribeBookingDateChange, BOOKING_CONTEXT_DATE_EVENT, } from './utils/bookingDate';
export { SalesSdkBookingContextProvider, useSalesSdkBookingContext, } from './context/SalesSdkBookingContext';
export type { SalesSdkBookingContextValue } from './context/SalesSdkBookingContext';
export { SalesSdkHolderProvider, useSalesSdkHolder, } from './context/SalesSdkHolderContext';
export type { SalesSdkHolderContextValue } from './context/SalesSdkHolderContext';
export { SalesSdkDemo } from './demo';
export type { SalesSdkDemoProps } from './demo';
export { useSalesSdk } from './hooks/useSalesSdk';
export { useSalesSdkProducts } from './hooks/useSalesSdkProducts';
export { useSalesSdkCart } from './hooks/useSalesSdkCart';
export { useSalesSdkCustomer } from './hooks/useSalesSdkCustomer';
export { useSalesSdkSummary } from './hooks/useSalesSdkSummary';
export { useSalesSdkUIHosts } from './hooks/useSalesSdkUIHosts';
export { useSyncOsModule } from './hooks/useSyncOsModule';
export { enrichCartItem, enrichCartItems, enrichCustomer } from './utils/enrich';
export { buildProductSkuPatch, getDetailProductOptions, getLineProductOptions, normalizeOptionForDisplay, resolvePatchProductOptions, sumLineOptionUnitPrice, } from './utils/productSkuOptions';
export { enrichCartBookingHolderDisplay, resolveHolderDisplayConfig, pickHolderIdFromBooking, buildHolderListRequestParams, } from './utils/enrichCartLineHolderDisplay';
export { formatHolderOptions, normalizeHolderIds, resolveHolderLabels, } from './utils/formatHolderOptions';
export type { SalesSdkHolderOption } from './utils/formatHolderOptions';
export { runAddProductFlow } from './utils/runAddProductFlow';
export type { RunAddProductFlowCartApi, RunAddProductFlowOptions } from './utils/runAddProductFlow';
export { createAddProductWithFlowDebounced, DEFAULT_ADD_PRODUCT_DEBOUNCE_MS, shouldBypassAddProductDebounce, } from './utils/addProductWithFlowDebounced';
export { resolveAddProductDebounceKey } from './utils/resolveAddProductDebounceKey';
export { resolveInCartQuantityForAddToast } from './utils/resolveInCartQuantityForAddToast';
export { showAddToCartToast } from './components/showAddToCartToast';
export { BookingEditServiceDrawer } from './bookingEditService/BookingEditServiceDrawer';
export { BookingEditHostRenderer } from './hosts/BookingEditHostRenderer';
export { NormalProductDetailHostRenderer } from './normalProductDetail/NormalProductDetailHostRenderer';
export { createInstanceHostBridge } from './hosts/createInstanceHostBridge';
export type { InstanceHostBridge } from './hosts/createInstanceHostBridge';
export { createSalesSdkHostBridges, useSalesSdkHostBridges, } from './context/SalesSdkHostBridgesContext';
export type { SalesSdkHostBridges } from './context/SalesSdkHostBridgesContext';
export { createOpenMultiDaySelectHost } from './hosts/createOpenMultiDaySelectHost';
export { createOpenHolderSelectHost } from './hosts/createOpenHolderSelectHost';
export { createCompositeOpenProductDetailHost } from './hosts/createCompositeOpenProductDetailHost';
export { createOpenNormalProductDetailHost } from './normalProductDetail/createOpenNormalProductDetailHost';
export { createOpenBookingEditHost } from './hosts/createOpenBookingEditHost';
export { createGiftSelectBridge } from './giftSelect/createGiftSelectBridge';
export type { GiftSelectBridge } from './giftSelect/createGiftSelectBridge';
export { createOpenGiftSelectHost } from './giftSelect/createOpenGiftSelectHost';
export { GiftSelectHostRenderer } from './giftSelect/GiftSelectHostRenderer';
export { GiftSelectModal } from './giftSelect/GiftSelectModal';
export type { GiftSelectModalProps } from './giftSelect/GiftSelectModal';
export { appendPromotionTagsForProducts } from './utils/appendPromotionTags';
export { HOLDER_CONFIRM_CANCELLED, isHolderConfirmCancelled, } from './holderConfirm/createHolderConfirmBridge';
export { createLegacyOpenProductDetailHost, type CreateLegacyOpenProductDetailHostDeps, type LegacyProductDetailHostRuntime, } from './demo/hosts/legacyOpenProductDetail';
export type { BookingEditServiceDrawerProps } from './bookingEditService/types';
export { pickIdentity } from './utils/identity';
export { deriveDisabledEdit, deriveSummary, isWalkInCustomer } from './selectors';
export { shouldPromptHolderBeforeSubmit, collectUnassignedHolderLines, buildHolderConfirmSnapshotKeys, buildHolderConfirmDisplayLines, } from './utils/holderSubmitValidation';
export type { HolderConfirmSnapshotKey, HolderConfirmDisplayLine, } from './utils/holderSubmitValidation';
export { ensureHoldersBeforeSubmit } from './utils/ensureHoldersBeforeSubmit';
export type { SalesSdkStatus, SalesSdkProviderProps, SalesSdkContextValue, SalesSdkProductsContextValue, SalesSdkCartContextValue, SalesSdkCustomerContextValue, SalesSdkCustomerSearchOptions, SalesSdkSummaryContextValue, SalesSdkCartBookingView, SalesSdkCartItemView, SalesSdkCustomerView, SalesSdkAddProductRequiresDetailPayload, SalesSdkAddProductResult, SalesSdkAddProductWithFlowResult, SalesSdkAddProductWithFlowOptions, SalesSdkCustomProductInput, SalesSdkUIHosts, SalesSdkMultiDaySelectResult, SalesSdkOpenMultiDaySelectPayload, SalesSdkOpenHolderSelectPayload, SalesSdkConfirmBookingEditInput, SalesSdkConfirmDetailInput, SalesSdkConfirmDetailResult, SalesSdkRequiresBookingEditPayload, SalesSdkSubmitSalesOrderParams, SalesSdkEditCartLineBookingResult, SalesSdkEditCartLineProductResult, SalesSdkEditCartLineResult, SalesSdkResourceUnavailableReason, SalesSdkResourceError, SalesSdkGiftOption, SalesSdkGiftSelectChoice, SalesSdkGiftSelectContext, SalesSdkUnfulfilledPromotion, SalesSdkPromotionTag, SalesSdkLastGiftActions, } from './types';
export type { SalesSdkDerivedDisabledEdit, SalesSdkDerivedSummary, } from './selectors';
export type { ScanOrderOrderProduct, ScanOrderOrderProductIdentity, ScanOrderTempOrder, ScanOrderSummary, ISalesDetail, ISalesDetailHeader, ISalesBooking, ISalesPayment, ISalesSurcharge, ISalesDetailCustomer, ICustomer, ICustomerListResponse, IGetCustomerListParams, IPaginationInfo, ProductData, ILoadProductsParams, ILoadProductDetailParams, IScanResult, UpdateOrderProductParams, UpdateOrderProductQuantityParams, UpdateProductInOrderParams, BaseSalesScanCodeResult, RulesParamsHooks, BookingTicketHandle, SalesSdkLoadSalesDetailParams, } from './types';
