/**
 * 平面图资源选择槽位的通用类型与工具。
 * 默认由 `@pisell/materials` 的 `PisellResourcePickerModal` 承担；
 * 业务可通过 `renderFilterBar` 注入 Tabbar 等筛选区，或通过 `renderResourcePickerModal` 整页覆盖。
 */
import type { ReactNode } from 'react';
/** 选择模式 */
export declare type PisellCardPickerMode = 'single' | 'multiple';
/** 可选条目：至少包含稳定主键 id */
export interface PisellCardPickerItem {
    id: string;
    [key: string]: unknown;
}
/** 分类路径，最多 3 级（不足时后续为 null；未选层级表示「全部」） */
export declare type PisellCardPickerCategoryPath = [
    string | null | undefined,
    string | null | undefined,
    string | null | undefined
];
/** 单级分类配置（最多 3 级） */
export interface PisellCardPickerCategoryLevelConfig {
    /** 嵌套模式下该级行左侧标签（如「省」「市」「区/镇」） */
    label?: string;
    /**
     * parallel 模式：从 item[field] 读取该维度的 key。
     * nested 模式：请用 getCategoryPath / nestedPathField 从单字段拆路径。
     */
    field?: string;
}
/**
 * nested：同一维度嵌套分级（广东 → 中山 → 三乡），子级依赖父级已选。
 * parallel：三个独立维度（每级互不影响）。
 */
export declare type PisellCardPickerCategoryMode = 'nested' | 'parallel';
/** 分类筛选配置（最多 3 级；数据只有 1 级时 UI 只展示有值的那一行） */
export interface PisellCardPickerCategoryConfig {
    /** 默认 nested */
    mode?: PisellCardPickerCategoryMode;
    /**
     * 最多 3 级配置位。
     * nested：单字段拆路径；仅 1 段时只出现第 1 行，多段时再逐级出现。
     */
    levels: [
        PisellCardPickerCategoryLevelConfig?,
        PisellCardPickerCategoryLevelConfig?,
        PisellCardPickerCategoryLevelConfig?
    ];
    /** 自定义 [L1,L2,L3]；优先于 levels[].field */
    getCategoryPath?: (item: PisellCardPickerItem) => PisellCardPickerCategoryPath;
    /**
     * nested 便捷项：从 item[nestedPathField] 用 `/` `>` 等拆成最多 3 段。
     * 与 getCategoryPath 同时存在时以 getCategoryPath 为准。
     */
    nestedPathField?: string;
}
/**
 * 卡片小标签（如人数、状态、面积等）。
 * - text：必填，纯文本内容
 * - icon：可选 ReactNode，前置图标（如 TeamOutlined）
 * 业务自由组合多个；空数组等价于不展示。
 */
export interface PisellCardPickerCardBadge {
    text: string;
    icon?: ReactNode;
}
export interface PisellCardPickerCardMeta {
    title: string;
    subtitles: string[];
    /**
     * 卡片末行的标签数组（如人数 / 状态）。比 subtitle 更紧凑，支持前置 icon。
     */
    badges?: PisellCardPickerCardBadge[];
    /**
     * 左侧缩略图/预览节点。传入字符串走内置 `<img>`，传入 ReactNode 直接渲染
     * （如平面图 View All 的 palette preview cell）。
     */
    image?: ReactNode | string;
}
/**
 * 平面图工具栏「打开资源选择」槽位 props。
 * 与 `PisellProResourcePickerModalProps` 字段对齐；业务注入 modal 时可透传
 * `categoryConfig` / `getSearchText` / `getCardMeta` 等扩展项。
 */
export interface FloorMapResourcePickerSlotProps {
    open: boolean;
    onClose: () => void;
    onConfirm: (selectedIds: string[]) => void;
    records: PisellCardPickerItem[];
    mode?: PisellCardPickerMode;
    value?: string[];
    title?: string;
    disabledIds?: string[];
    /** 最多三级分类；不传则仅搜索 + 列表 */
    categoryConfig?: PisellCardPickerCategoryConfig;
    getSearchText?: (record: PisellCardPickerItem) => string;
    getCardMeta?: (record: PisellCardPickerItem) => PisellCardPickerCardMeta;
    renderCard?: (record: PisellCardPickerItem, ctx: {
        selected: boolean;
        disabled: boolean;
    }) => ReactNode;
    zIndex?: number;
    width?: number;
    className?: string;
}
/**
 * 把单字段中的层级路径解析为 [L1, L2, L3]。
 * 例：`广东/中山/三乡` → `['广东','中山','三乡']`；不足三级后续为 null。
 */
export declare function parseNestedPathSegments(raw: unknown, maxDepth?: number): PisellCardPickerCategoryPath;
