import type { GlobalScanHandleResult, GlobalScanHostBridge, ICustomer } from '../../types';
import type { AddProductDecision } from '../addProductDecision';
import { GlobalScanFormattedResult } from './formatGlobalScan';
/** applyGlobalScan 所需的 BookingTicket 运行时能力 */
export interface GlobalScanApplyHost {
    setOrderCustomer(customer: ICustomer | null): void;
    getOrderCustomerSnapshot(): ICustomer | null;
    getBusinessCode(): string | undefined;
    buildAddProductCtx(extra?: Record<string, any>): Record<string, any>;
    decideAddProduct(item: any, options?: Record<string, any>): AddProductDecision;
    decideAfterDetail(cacheItem: any, options?: Record<string, any>): AddProductDecision;
    transformDetailToProductAndBooking(input: {
        item: any;
        cacheItem?: any;
        detailResult?: {
            e: any;
            extension_type?: any;
            detail?: any;
        };
        options?: Record<string, any>;
    }): {
        product: any;
        booking?: any;
        cacheItem: any;
    };
    addProductToOrder(product: any, booking?: any): Promise<any>;
}
/**
 * 应用全局扫码格式化结果：设客户 / 加车 / 开单 / 弹窗链。
 *
 * @example
 * ```ts
 * const result = await applyGlobalScan(bookingTicket, formatted, bridge);
 * ```
 */
export declare function applyGlobalScan(host: GlobalScanApplyHost, formatted: GlobalScanFormattedResult, bridge?: GlobalScanHostBridge): Promise<GlobalScanHandleResult>;
