import type { PisellReservationTableRow } from '../types';
/**
 * GET schedule/booking 行是否不参与「按桌合并 / 日历条」。
 * - 仅排除明确空闲态 `empty` 及非预约三态。
 * - **空 status**：部分列表不写 `status`，仅用日期+资源表示有效预约；若按旧逻辑跳过会导致平面图/日历都无条。
 */
export declare function isMonitorScheduleBookingSkipped(record: Record<string, unknown>): boolean;
/**
 * 预约项上所有资源 form_record id（GET schedule/booking 多为 `resources`，旧结构为 `event_resources`）。
 * 多资源时同一预约会写入多个 id，合并阶段每张桌只拿命中本桌 id 的分组。
 */
export declare function extractResourceRecordIds(booking: Record<string, unknown>): string[];
/**
 * 按画布已绑定资源 id 过滤 Monitor 用的 booking 列表行（与 {@link extractResourceRecordIds} 对齐）。
 * `resourceIds` 为空时返回空数组。
 */
export declare function filterBookingsByResourceIds<T extends Record<string, unknown>>(bookings: T[] | undefined, resourceIds: Set<string>): T[];
/**
 * 预约项联系人简称（与图元 / 详情弹窗 / {@link resolveFloorRoomCardHolder} 一致，仅取展示用姓名）。
 */
export declare function customerBrief(record: Record<string, unknown>): string;
/** 单条预约上的日历日，用于平面图卡片进度与合成字段 */
export declare function bookingReferenceDay(booking: Record<string, unknown>): string | undefined;
/** 预约行开始时刻 → `HH:mm`（资源墙 / 卡片等共用） */
export declare function formatBookingTime(record: Record<string, unknown>): string;
/** 与按桌合并 {@link mergeResourceGroup} 一致：按开始时间升序 */
export declare function sortBookingsByStartTime(bookings: Record<string, unknown>[]): Record<string, unknown>[];
/** 宿主 booking.status：empty / 缺省 → 空闲；reserved / occupied / locked → 对应卡片大类 */
export declare function hostBookingStatusToCardStatus(record: Record<string, unknown>): PisellReservationTableRow['cardStatus'];
/** 从单条宿主 booking 摘 `reserved_status` / `isTimeout` 信号，供行合并与图元映射 */
export declare function hostBookingUiPatchFromRecord(booking: Record<string, unknown>): Pick<PisellReservationTableRow, 'hostReservedStatus' | 'hostIsTimeout'>;
/**
 * 无 `bookings[]` 命中时，用资源壳上的 `status` / `reserved_status` / `isTimeout` 覆盖底行（嵌套 OS 列表等）。
 */
export declare function applyHostResourceShellToBaseRow(base: PisellReservationTableRow, shell: Record<string, unknown>): PisellReservationTableRow;
/**
 * 宿主已按桌聚合的 `bookings`（如同一张 resource 下的多条预约）→ 单行 {@link PisellReservationTableRow}，
 * 与 {@link mergeResourceRowsWithBookingRows} 的资源底行合并即可得到平面图 tables 项。
 */
export declare function mergeBookingsForResourceRecord(recordId: string, bookings: unknown[]): PisellReservationTableRow | null;
/**
 * 由预约列表构造桌位数据源（整列表，与当前表格页数据一致）。
 */
export declare function bookingListToReservationTableRows(bookings: unknown[]): PisellReservationTableRow[];
