import type { FloorMapElementKindConfig } from '../types';
import { type FloorMapBuiltinShapeDef } from './floorMapBuiltinShapes';
/** @deprecated 使用 {@link FLOOR_MAP_TOOLBAR_PALETTE_SIDEBAR_LIMIT} */
export declare const FLOOR_MAP_TOOLBAR_PALETTE_VISIBLE_LIMIT = 5;
/** 解析侧栏每类展示上限（至少 1） */
export declare function resolvePaletteSidebarVisibleLimit(limit?: number): number;
/** 分类下图元数是否应显示「查看全部」 */
export declare function shouldShowPaletteViewAll(entryCount: number, limit?: number): boolean;
/** 侧栏直接展示的 palette 条目（前 N 项） */
export declare function getPaletteSidebarVisibleEntries<T>(entries: T[], limit?: number): T[];
/** 批量从弹窗落点时的单项描述（与 {@link FloorMapPlaceMode} scene 子集对齐） */
export interface FloorMapPaletteBulkPlaceItem {
    elementKind: string;
    builtinShapeKey?: string;
}
/**
 * 侧栏 / 弹窗共用的 palette 条目：普通 kind 一项；内置图形 kind 按预设展开多项。
 */
export interface FloorMapToolbarPaletteEntry {
    key: string;
    kind: FloorMapElementKindConfig;
    builtinShapeKey?: string;
    label: string;
    shapeDef?: FloorMapBuiltinShapeDef;
}
/** 该 palette 条目是否点击即落画布（装饰内置图形单卡、无绑定 kind 等） */
export declare function isDirectPlacePaletteEntry(entry: FloorMapToolbarPaletteEntry): boolean;
export declare function buildToolbarPaletteEntries(kinds: FloorMapElementKindConfig[], resolveBuiltinLabel: (shapeDef: FloorMapBuiltinShapeDef) => string): FloorMapToolbarPaletteEntry[];
/** palette 条目 → 批量落点 payload（每项数量 1） */
export declare function paletteEntriesToBulkPlaceItems(entries: FloorMapToolbarPaletteEntry[]): FloorMapPaletteBulkPlaceItem[];
/**
 * 按弹窗内各条目数量展开为落点列表（数量为 n 则重复 n 次，落点时阶梯偏移）。
 */
export declare function expandPaletteEntriesByQuantity(entries: FloorMapToolbarPaletteEntry[], quantities: Readonly<Record<string, number>>): FloorMapPaletteBulkPlaceItem[];
