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<string, any> | 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<void>;
    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;
