/** * 合并 RecordBoard.floorMap 与预约默认:持久化 onSave、画布 Tab 尾区、缩放/平移等 */ import React from 'react'; import type { FloorMapDataSources, FloorMapMergedItem, FloorMapViewConfig, FloorMapViewportOverlayRenderArgs, PisellFloorMapLayoutRef, RecordBoardProps } from '@pisell/materials'; import { getReservationRenderItemByKind } from './reservationCards'; export interface UseReservationFloorMapMergedParams { floorMapProp: RecordBoardProps['floorMap']; baseFloorConfig: FloorMapViewConfig; dataSources: FloorMapDataSources; renderItemByKind: ReturnType; gridDataSourceKey: string; effectiveMapMode: 'read' | 'edit'; resolvedFloorPlanId: number | null; floorPlanRemoteId: number | null; effectiveFloorPlanCode: string; floorPlanCanvasWidth?: number; floorPlanCanvasHeight?: number; floorPlanName?: Record; floorPlanSort?: number; floorPlanStatus?: number; onFloorPlanPersisted?: () => void; putFloorPlan?: (id: number, body: Record) => Promise; isFloorModeControlled: boolean; mapEditInternal: boolean; setMapEditInternal: React.Dispatch>; floorMapLayoutRef: React.RefObject; reservationFloorMapViewportOverlay: (args: FloorMapViewportOverlayRenderArgs) => React.ReactNode; setRemoteFloorPlanView: React.Dispatch | null>>; /** * 平面图图元点击时先于 `floorMap.onItemClick` 调用;用于只读态打开宿主抽屉等。 * `dataSources` 与合并后的 `floorMap.dataSources` 一致。 */ floorMapItemClickBefore?: (args: { item: FloorMapMergedItem; index: number; event: React.MouseEvent; mode: 'read' | 'edit'; dataSources: FloorMapDataSources; }) => void; /** 与引擎语言同步,避免 dataSourceLabels 等停留在首次渲染语言 */ engineLocale: string; /** 场控等:HUD 表抽屉开启时视口叠加层锚左下、Dock 默认右下(可由 floorMap 显式覆盖) */ floorMapHudTableDrawer?: boolean; /** 阅读态:打开预约详情等时高亮对应平面图图元(见 PisellFloorMapLayout `readModeSelectedItemId`) */ readModeSelectedItemId?: string | null; /** 手机布局:编辑顶栏双行 + 收紧 padding(见 `editTopBarPhoneLayout`) */ editTopBarPhoneLayout?: boolean; appearanceMode: 'light' | 'dark'; onToggleAppearanceMode: () => void; } export declare function useReservationFloorMapMerged(params: UseReservationFloorMapMergedParams): Partial>;