import type { BookingTicketHandle, ScanOrderOrderProduct, SalesSdkGiftSelectChoice, SalesSdkGiftSelectContext, SalesSdkGiftSelectResult } from '../types'; /** * 将弹窗已加载的商品写入页内缓存(与 confirm 共用,避免二次 query)。 * * @example * seedGiftProductQueryCache(productsFromModal); */ export declare function seedGiftProductQueryCache(products: any[]): void; /** * 构造单个赠品 OrderProduct 行(写入 tempOrder.products)。 * * @example * const line = buildGiftOrderProduct(choice, productData, ctx); */ export declare function buildGiftOrderProduct(choice: SalesSdkGiftSelectChoice, productData: any, ctx: SalesSdkGiftSelectContext): Partial; /** * 通过 shoppingCart 同款 `getProducts({ isGift: true })` 拉取完整商品信息。 * 带页内缓存,避免弹窗 open + confirm 连续两次全量 query。 * * @example * const map = await fetchGiftProductMap([{ product_id: 1, product_variant_id: 0, quantity: 1 }]); */ export declare function fetchGiftProductMap(productIds: number[]): Promise>; /** * 将用户选择转为完整赠品行列表。 * 解析顺序:弹窗快照 → OS catalog(getProductByIds) → `/shop/product/query`(带缓存)。 * * @example * const lines = await buildGiftOrderProductsFromChoices(choices, ctx, (ids) => ticket.getProductByIds(ids)); */ export declare function buildGiftOrderProductsFromChoices(choices: SalesSdkGiftSelectChoice[], ctx: SalesSdkGiftSelectContext, options?: { fallbackFetcher?: (ids: number[]) => Promise; bookingTicket?: BookingTicketHandle | null; }): Promise; /** * 弹窗 open 时预热缺失的商品 query(catalog / 快照未命中时才请求)。 * * @example * await prefetchGiftProductQueryCache([60943, 38757]); */ export declare function prefetchGiftProductQueryCache(productIds: number[]): Promise;