/**
 * ItemLayer - 楼层图展示层
 * 按 items 的 (x, y) 与 cellSize 定位，用 renderItem 渲染每项内容
 */
import React from 'react';
import type { FloorMapItemBase, FloorMapItemUnit, FloorMapRenderOptions } from '../types';
import type { CSSProperties } from 'react';
import './ItemLayer.less';
export interface ItemLayerProps<T extends FloorMapItemBase> {
    /** 资源列表 */
    items: T[];
    /** 每项渲染函数 */
    renderItem: (item: T, index: number, options?: FloorMapRenderOptions) => React.ReactNode;
    /** 画布缩放（与平面图 zoom 一致），透传给 renderItem 第三参数 */
    viewportScale?: number;
    /** 每项 key */
    rowKey?: string | ((item: T, index: number) => string);
    /** 每格像素尺寸（cell 单位时用；pixel 单位时作为缺省宽高） */
    cellSize: number;
    /** item 坐标与尺寸单位：cell 格子数，pixel 像素 */
    itemUnit?: FloorMapItemUnit;
    /** item 之间的间距（像素），仅 cell 单位时生效 */
    itemGap?: number;
    /** 内容区总宽度（像素），由 items 推导或外部传入 */
    contentWidth: number;
    /** 内容区总高度（像素） */
    contentHeight: number;
    /** 内容区 X 偏移（画布包围盒向左/上扩展时，图元层整体平移） */
    contentOffsetX?: number;
    /** 内容区 Y 偏移 */
    contentOffsetY?: number;
    /** 是否启用 hover 事件 */
    enableHover?: boolean;
    /**
     * 是否在 hover 时显示外沿描边（选中感高亮）。默认 true。
     * 平面图只读态可由布局关闭，仅去掉描边，不影响 onItemHover。
     */
    itemHoverOutline?: boolean;
    /** 点击回调 */
    onItemClick?: (item: T, index: number, e: React.MouseEvent<HTMLElement>) => void;
    /** hover 进入 */
    onItemHover?: (item: T, index: number, e: React.MouseEvent<HTMLElement>) => void;
    /** hover 离开 */
    onItemLeave?: (item: T, index: number, e: React.MouseEvent<HTMLElement>) => void;
    /** 每项外层容器额外样式（与定位样式合并） */
    getMergedItemWrapperStyle?: (item: T, index: number) => CSSProperties | undefined;
    /**
     * 阅读态：与 {@link rowKey} 解析 id 相等的图元加选中外圈（如详情 Modal 打开时）。
     */
    readModeSelectedItemId?: string | null;
    /**
     * 与编辑态一致：在含 `data-pisell-floor-room-scroll-surface` 的区域内按下时置 true，
     * 用于禁用 Transform 画布平移，避免图元内纵向滑动拖动画布。
     */
    onInteractionChange?: (active: boolean) => void;
    className?: string;
}
export declare function ItemLayer<T extends FloorMapItemBase>(props: ItemLayerProps<T>): JSX.Element;
export default ItemLayer;
