import type { BaseSalesScanCodeResult, SalesSdkCartContextValue, SalesSdkConfirmBookingEditInput, SalesSdkConfirmDetailInput, SalesSdkUIHosts } from '../types'; /** 与 PisellFind / 宿主 pubsub 对齐的扫码事件名 */ export declare const SCAN_RESULT_EVENT = "nativeScanResult"; /** OS BookingTicket.handleGlobalScanCode 的 bridge 参数(与 pisell_os GlobalScanHostBridge 对齐) */ export interface GlobalScanHostBridge { openProductDetail?: (payload: Record) => Promise; openBookingEdit?: (payload: Record) => Promise; confirmDetail?: (input: SalesSdkConfirmDetailInput) => Promise; confirmBookingEdit?: (input: SalesSdkConfirmBookingEditInput) => Promise; openOrder?: (data: { order_id: number; business_code?: string; }) => void; /** walk-in 扫 walletPass:对齐 SaleDetail Voucher.handleApplyCode */ applyPromotionCode?: (code: string, customerId?: number) => Promise; onNotify?: (type: 'success' | 'fail' | 'info', messageKey?: string) => void; refresh?: () => void; } export interface CreateGlobalScanHostBridgeDeps { uiHosts: SalesSdkUIHosts; action?: (payload: any) => void; cart: Pick; businessCode?: string; refreshRootSnapshot: () => void; /** 当前下单 customer_id(walk-in 核销券码时传给 scanPromotionCode) */ getCustomerId?: () => number | undefined; toast?: { fail?: (msg: string) => void; success?: (msg: string | unknown) => void; info?: (msg: string) => void; }; getLocaleText?: (key: string) => string; } /** * 组装 GlobalScanHostBridge,供 pubsub 订阅回调传入 handleGlobalScanCode。 * * @example * ```ts * const bridge = createGlobalScanHostBridge({ * uiHosts, * action, * cart, * businessCode: 'ticket', * refreshRootSnapshot, * getCustomerId: () => Number(tempOrder?.customer_id), * toast, * getLocaleText: (k) => locales.getText(k), * }); * await bookingTicket.handleGlobalScanCode(code, bridge); * ``` */ export declare function createGlobalScanHostBridge(deps: CreateGlobalScanHostBridgeDeps): GlobalScanHostBridge;