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<string, any>) => Promise<any | null>;
    openBookingEdit?: (payload: Record<string, any>) => Promise<any | null>;
    confirmDetail?: (input: SalesSdkConfirmDetailInput) => Promise<any>;
    confirmBookingEdit?: (input: SalesSdkConfirmBookingEditInput) => Promise<any>;
    openOrder?: (data: {
        order_id: number;
        business_code?: string;
    }) => void;
    /** walk-in 扫 walletPass：对齐 SaleDetail Voucher.handleApplyCode */
    applyPromotionCode?: (code: string, customerId?: number) => Promise<BaseSalesScanCodeResult>;
    onNotify?: (type: 'success' | 'fail' | 'info', messageKey?: string) => void;
    refresh?: () => void;
}
export interface CreateGlobalScanHostBridgeDeps {
    uiHosts: SalesSdkUIHosts;
    action?: (payload: any) => void;
    cart: Pick<SalesSdkCartContextValue, 'confirmDetail' | 'confirmBookingEdit' | 'scanCode'>;
    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;
