import type { PisellReservationTableRow } from '../types';
import type { FloorRoomCardBooking, FloorRoomCardData, FloorRoomCardHolder } from './floorRoomCardModel';
/**
 * Walk-in / 占位客户：`customer_id`（或 `customer.id`）为 0、1 时，预约侧不展示任何联系人（含 holder / contacts_info）。
 */
export declare function isReservationPlaceholderCustomerId(order: Record<string, unknown> | undefined): boolean;
/**
 * 平面图/详情卡片展示金额：
 * - 已付（`paid`）：仍用 `summary.total_amount` 与原有回退链，逻辑不变。
 * - 需付：`payment_processing` 与 `unpaid` → 优先 `summary.total_amount`，否则 `amount_gap` 再顶层回退；
 *   其余需付态 → 优先 `summary.amount_gap`，否则 `total_amount` 再顶层回退。
 */
export declare function resolveBookingCardAmount(rawBooking: Record<string, unknown>, order: Record<string, unknown> | undefined, paymentStatusLower: string): string | number;
/** 与预约详情 strip 同源：顶层 products 行数优先，否则 summary.product_quantity */
export declare function resolveBookingProductQuantity(rawBooking: Record<string, unknown>): number;
/**
 * 平面图 / 详情弹窗 / 列表联系人：与 Pisell Reservation 统一规则。
 * - `order.customer_id`（或 `order.customer.id`）为 0、1：不展示任何联系人。
 * - 否则顺序：**holder**（`booking.holder` → `holder_data`）→ **contact**（`order.contacts_info`）→ **customer**（`customer_name` / `order.customer` / `order.phone`）。
 */
export declare function resolveFloorRoomCardHolder(b: Record<string, unknown>): FloorRoomCardHolder | undefined;
/** 单条 floorMapSourceBookings → 与平面图 RoomCard 一致的 booking 模型 */
export declare function rawToBooking(b: Record<string, unknown>, index: number): FloorRoomCardBooking;
/**
 * 将合并后的桌位行转为 RoomCard 数据：优先使用 {@link PisellReservationTableRow.floorMapSourceBookings} 展示当前时刻下的多条预约时段。
 */
export declare function mapPisellReservationRowToFloorRoomCardData(row: PisellReservationTableRow, roomTitle: string): FloorRoomCardData;
/**
 * 与 `bookingDetailOrderStripFromRaw` 的 `stripBookingId` 一致：
 * `booking_id` → `id` → `order.shop_full_order_number` → `order.order_number`。
 */
export declare function resolveBookingStripIdForUi(raw: Record<string, unknown>): string;
/**
 * 详情弹窗 RoomCard 顶栏：预约标识 `booking_id` → `booking_uid` → `id`，均无则 `—`。
 */
export declare function resolveBookingIdForHeader(raw: Record<string, unknown>): string;
/**
 * 预约详情弹窗：仅用当前点击的一条 raw 构造 RoomCard（`floorMapSourceBookings` 仅此元素），
 * `main_field` 与粉头条同源；弹窗顶栏展示建议再传 {@link resolveBookingIdForHeader} 给 {@link FloorRoomCardFromData}。
 */
export declare function buildDetailModalRoomCardData(raw: Record<string, unknown>, tableRow: PisellReservationTableRow | null | undefined): FloorRoomCardData;
