/** * 预约平面图视口悬浮:当前画布桌位总数与各状态数量(空闲 / 预约 / 使用中等) */ import React from 'react'; import { type FloorMapDataSources, type FloorMapMergedItem } from '@pisell/materials'; import './ReservationFloorMapHud.less'; /** 场控左下抽屉:无台位且未展开时可隐藏整块 */ export declare function reservationFloorMapHudSeatStatsTotal(items: FloorMapMergedItem[], dataSources: FloorMapDataSources | undefined): number; export declare type ReservationFloorMapHudStatsBarProps = { items: FloorMapMergedItem[]; dataSources: FloorMapDataSources | undefined; /** 右侧操作(overlay 下箭头 / Sheet 关闭等) */ rightSlot: React.ReactNode; /** * true:无台位时不渲染(与底栏 HUD 一致); * false:Sheet 顶栏无台位时仍保留一行,仅展示右侧 slot */ hideWhenNoSeats?: boolean; className?: string; }; /** * 横向状态统计 + 右侧 slot:底栏 HUD 与 Sheet 顶栏共用(方案 A:两处可同时展示相同统计)。 */ export declare function ReservationFloorMapHudStatsBar(props: ReservationFloorMapHudStatsBarProps): React.JSX.Element | null; export declare type ReservationFloorMapHudTitleBarProps = { items: FloorMapMergedItem[]; dataSources: FloorMapDataSources | undefined; /** 收起态:展开画布列表;展开态:收起 */ actionMode: 'expand' | 'collapse'; onAction: () => void; /** 嵌入 Sheet 顶栏时不画浮层卡片(避免双边线) */ embedded?: boolean; className?: string; }; /** * 场控:单行标题栏 = 标题 + 内联统计 + 展开/收起,与 Sheet 顶栏共用。 */ export declare function ReservationFloorMapHudTitleBar(props: ReservationFloorMapHudTitleBarProps): React.JSX.Element | null; export interface ReservationFloorMapHudProps { items: FloorMapMergedItem[]; dataSources: FloorMapDataSources | undefined; /** 为 true 时左下标题栏:标题 + 统计 + 展开/收起(抽屉打开时仍保留,不「整块消失」) */ interactive?: boolean; onRequestOpenTable?: () => void; onRequestCloseTable?: () => void; /** 画布资源列表抽屉是否已打开 */ tableDrawerOpen?: boolean; /** * 手机布局(如 variant="phone"):视口 HUD 统计改为横向一排展示(与 StatsBar 内联样式一致),支持自动换行。 */ phoneLayout?: boolean; } export declare function ReservationFloorMapHud(props: ReservationFloorMapHudProps): React.JSX.Element | null;