import { type MouseEvent } from 'react'; import type { FloorMapDataSources, FloorMapMergedItem } from '@pisell/materials'; import type { PisellReservationProps, PisellReservationTableRow } from '../types'; /** 与 useEngineContext 返回值形状一致(不直接 import hook),避免类型循环 */ declare type EngineContextValue = { appHelper?: any; engine?: any; blockContext?: any; components?: any; pageContext?: any; }; /** * 只读平面图点击 → 宿主结账抽屉或内置预约详情弹窗的状态与 `floorMapItemClickBefore`; * 日历受控 raw 通过 `openBookingDetailFromRaw` 走同一套详情。 */ export declare function useFloorMapBookingInteraction(options: { engineCtx: EngineContextValue | null | undefined; onFloorMapBookingClick?: PisellReservationProps['onFloorMapBookingClick']; dataSources: FloorMapDataSources; /** * 与 `PisellReservation` 中 `buildReservationMergedTableRows` 输出一致;推送更新后用于同步 * 已打开的「预约详情」弹窗的 raw / 行数据。 */ mergedTableRows: PisellReservationTableRow[]; /** * 与场控 `getPicoCodingOpenData` target 中的 BIZ 一致(如 `dine_in`)。 * 旧店铺(id=2155)非 `dine_in` 时点击有效 booking 走宿主结账抽屉。 */ reservationBiz?: string; /** 资源选择模式:点击资源时只把资源信息回传给调用方 */ resourceSelectMode?: PisellReservationProps['resourceSelectMode']; }): { bookingDetailOpen: boolean; bookingDetailRaw: Record | null; bookingDetailRow: PisellReservationTableRow | null; bookingDetailSceneName: string | undefined; readModeSelectedFloorItemId: string | null; closeBookingDetailModal: (e?: MouseEvent) => void; closeBookingDetailNow: () => void; floorMapItemClickBefore: (args: { item: FloorMapMergedItem; mode: 'read' | 'edit'; dataSources: FloorMapDataSources; event: MouseEvent; }) => void; openBookingDetailFromRaw: (payload: { raw: Record; row?: PisellReservationTableRow | null; sceneElementName?: string; }) => void; }; export {};