/** * 画布日历:sceneElements 顺序资源行 + floorDayBooking 列表 → RecordBoard 日历受控数据。 */ import { type Dayjs } from 'dayjs'; import type { FloorMapSceneElement, RecordBoardCalendarBookingLike, RecordBoardCalendarResource } from '@pisell/materials'; import type { PisellReservationTableRow } from '../types'; /** 日历浮点小时 → dayjs(与 RecordBoard `dayAndHourToDayjs` 一致) */ export declare function dayjsFromCalendarHour(dateStr: string, hourFloat: number): Dayjs; /** 与 {@link sceneElementsToBoundRecordIdStrings} 同序:画布已绑定资源 id(string),与预约 `relation_id` 对齐 */ export declare function orderedCanvasResourceRecordIdStrings(sceneElements: FloorMapSceneElement[] | undefined, gridDataSourceKey: string): string[]; export declare function buildCalendarResourcesFromMergedTables(options: { orderedResourceIds: string[]; tables: PisellReservationTableRow[]; }): RecordBoardCalendarResource[]; /** * 在合并后的 `tables` 中查找与宿主 raw booking 对应的行(用于详情弹窗)。 */ export declare function findMergedTableRowForBookingRaw(raw: Record, tables: PisellReservationTableRow[]): PisellReservationTableRow | undefined; /** * 在已匹配到的 `tableRow.floorMapSourceBookings` 中取出与 `raw` 同一条预约的那条数据(引用随合并刷新)。 * 供详情弹窗在收到实时推送、合并 tables 后同步更新内容。 */ export declare function extractFloorMapSourceBookingForRow(raw: Record, row: PisellReservationTableRow): Record | undefined; /** * 将 GET booking 列表(与 floorDayBookingData 一致)映射为日历条;仅画布已绑定资源。 */ export declare function mapFloorDayBookingsToCalendarItems(options: { bookings: unknown[] | undefined; canvasResourceIdSet: Set; }): RecordBoardCalendarBookingLike[];