import { type FloorMapElementKindCategory, type FloorMapElementKindConfig, type FloorMapSceneElement, type FloorMapViewConfig } from '@pisell/materials';
import type { PisellReservationTableRow } from '../types';
/**
 * 父级/接口 elementKinds 与预约默认合并：
 * - 去掉与 Story 图片图元重复的旧版种类；
 * - 远程若已有 `floorMapImage` 也先去掉，统一用 defaults 里那份（避免两套「图片底图」并存）。
 * - 对**同一 value**：用 `{ ...default, ...remote }` 合并，避免远程 JSON 只存了精简字段时
 *   把预约默认里的 `nameAsTitleConfigurable` 等能力位整段丢掉（否则编辑面板不显示「图元名作为标题」勾选）。
 */
export declare function mergeFloorMapElementKindsWithDefaults(defaults: FloorMapElementKindConfig[], remote: FloorMapElementKindConfig[] | undefined): FloorMapElementKindConfig[];
/** 同上，补全图元分类（如「底图」），避免调色板分组缺失 */
export declare function mergeFloorMapElementKindCategoriesWithDefaults(defaults: FloorMapElementKindCategory[], remote: FloorMapElementKindCategory[] | undefined): FloorMapElementKindCategory[];
/**
 * 按当前 {@link locales} 刷新调色板分组、图元展示名（底图 / 资源绑定等）。
 * 持久化里若仍使用约定 `categoryId`：`background`、`dining` 与约定 kind value，会覆盖旧快照文案以便随引擎语言切换。
 */
export declare function applyReservationFloorMapLiveLabels(config: FloorMapViewConfig): FloorMapViewConfig;
/**
 * 预约平面图「绑定桌位」唯一图元 value（与底图 `floorMapImage` 并存）。
 * 旧版方桌 / 长条 / 吧台图元仍可从接口 scene 回显，渲染走同一套房间卡片。
 */
export declare const RESERVATION_BOUND_TABLE_ELEMENT_KIND: "reservationBoundTable";
/** 绑定圆桌位：与方桌同一数据源与卡片逻辑，默认 `shape: circle` */
export declare const RESERVATION_BOUND_ROUND_TABLE_ELEMENT_KIND: "reservationBoundRoundTable";
/** 与设计稿一致的预约桌位 mock（表格 + 平面图同源） */
export declare const defaultReservationTableRows: PisellReservationTableRow[];
/**
 * 默认平面图图元（唯一真相源）。
 * 有 floorMapConfig 时 PisellFloorMapLayout 强制 itemUnit=pixel，故 x/y/width/height 均为「像素」，非格子数。
 */
export declare const defaultReservationSceneElements: FloorMapSceneElement[];
/** 由 sceneElements 派生的落位摘要（数值与 sceneElements 一致，均为像素；兼容旧引用） */
export declare const reservationDataSourcePlacements: {
    dataSourceKey: string;
    id: string;
    floorMapId: string;
    x: number;
    y: number;
    name: string;
    width: number;
    height: number;
    elementKind: string;
    shape?: "circle" | undefined;
}[];
/**
 * 将落位表转为 sceneElements（外部自定义 placements 时用）。
 * 与 RecordBoard 平面图一致时，x/y/width/height 应为像素（floorMap 视图下 itemUnit 为 pixel）。
 */
export declare function reservationPlacementsToSceneElements(placements: Array<{
    dataSourceKey: string;
    id: string;
    floorMapId: string;
    x: number;
    y: number;
    name: string;
    width: number;
    height: number;
    elementKind: string;
    shape?: 'circle';
}>): FloorMapSceneElement[];
export declare type ReservationFloorMapConfigPersisted = FloorMapViewConfig;
/**
 * 预约页默认平面图壳子：画布/图元种类与 mock 一致，但不带演示 sceneElements。
 * 生产态布局以 floor-plan 接口与编辑保存为准。
 */
export declare function getReservationFloorMapShellConfig(): ReservationFloorMapConfigPersisted;
/** 平面图初始配置：sceneElements 使用上方完整 width/height，勿仅依赖派生表 */
export declare function getDefaultReservationFloorMapConfig(): ReservationFloorMapConfigPersisted;
/** 平面图侧栏数据源记录表单列（随当前语言刷新） */
export declare function getReservationDataSourceFormColumns(): ({
    key: string;
    label: any;
    type: "string";
} | {
    key: string;
    label: any;
    type: "number";
})[];
