import type { ProductData, SalesSdkAddProductResult, SalesSdkAddProductWithFlowOptions, SalesSdkAddProductWithFlowResult, SalesSdkCartItemView } from '../types'; import { type AddToCartToastApi } from '../components/showAddToCartToast'; export declare const DEFAULT_ADD_PRODUCT_DEBOUNCE_MS = 100; export declare type AddProductOsDecision = { action: 'add'; cacheItem?: any; } | { action: 'requiresDetail'; payload?: any; cacheItem?: any; } | { action: 'requiresBookingEdit'; payload?: any; cacheItem?: any; }; export interface AddProductWithFlowDebouncedDeps { decideAddProduct: (product: ProductData & Record, options?: Pick) => AddProductOsDecision; runAddProductFlow: (product: ProductData & Record, options?: SalesSdkAddProductWithFlowOptions) => Promise; addProductDirect: (product: ProductData & Record, options?: SalesSdkAddProductWithFlowOptions) => Promise; getCartItems: () => SalesSdkCartItemView[]; Toast?: AddToCartToastApi | null; defaultDebounceMs?: number; } /** * 创建带防抖的 `addProductWithFlow`: * - OS `decideAddProduct` 为 `requiresDetail` / `requiresBookingEdit` 时立即走完整弹窗链; * - 仅 `action === 'add'` 时合并数量、防抖后一次 `addProduct`; * - Toast 仅在加车成功(`status === 'added'`)后展示,避免 Holder / 跨日弹窗尚未完成时误提示。 */ export declare function createAddProductWithFlowDebounced(deps: AddProductWithFlowDebouncedDeps): { addProductWithFlow: (product: ProductData & Record, options?: SalesSdkAddProductWithFlowOptions) => Promise; };