import type { BookingTicketHandle, ScanOrderTempOrder } from '../types'; import type { HolderConfirmSnapshotKey } from '../utils/holderSubmitValidation'; /** 用户通过关闭确认框放弃分配 holder,submit / checkout 应中止且不弹错误 */ export declare const HOLDER_CONFIRM_CANCELLED: unique symbol; export interface HolderConfirmModalContext { bookingTicket: BookingTicketHandle; tempOrder: ScanOrderTempOrder | null; bookingConfig: Record | null; customerId?: number | string | null; /** 打开弹窗时的未分配行快照,列表渲染以此为准 */ snapshotLineKeys: HolderConfirmSnapshotKey[]; onMutate?: () => void; } export interface HolderConfirmBridgePending { open: boolean; ctx: HolderConfirmModalContext; resolve: () => void; reject: (reason: unknown) => void; } export interface HolderConfirmBridge { show: (ctx: HolderConfirmModalContext) => Promise; subscribe: (listener: () => void) => () => void; getSnapshot: () => HolderConfirmBridgePending | null; complete: () => void; cancel: () => void; refresh: () => void; } /** * 创建实例级 Holder 确认弹窗 bridge。 * * @example * await bridge.show({ bookingTicket, tempOrder, bookingConfig, snapshotLineKeys }); */ export declare function createHolderConfirmBridge(): HolderConfirmBridge; export declare function isHolderConfirmCancelled(error: unknown): boolean;