/**
 * ModuleViewer - Module tag rendering viewer
 * Displays module information as colored tags in table cells
 * Supports single and multiple modules with overflow handling
 */
import type { CellViewer, ViewerRenderContext, ModuleViewerData } from './types';
declare class ModuleViewer implements CellViewer<ModuleViewerData> {
    readonly type = "module";
    /**
     * Cache of overflow indicator bounds for click detection
     * Key format: "rowIndex:colIndex"
     */
    private overflowBoundsMap;
    /**
     * Cache of all modules for a cell (for overflow click callback)
     * Key format: "rowIndex:colIndex"
     */
    private cellModulesMap;
    /**
     * Normalize value to ModuleInfo array
     * Supports: ModuleInfo[], ModuleInfo, string[], string, null/undefined/empty
     */
    private normalizeModules;
    /**
     * Draw module content in the cell
     */
    draw(context: ViewerRenderContext, data: ModuleViewerData): void;
    /**
     * Handle click events — detect clicks on "+N" overflow indicator
     */
    onClick(context: ViewerRenderContext, data: ModuleViewerData, localX: number, localY: number): boolean;
    /**
     * Draw colored module tags.
     *
     * 渲染规则（参考图片型实现）：
     * - 在单元格水平可绘制范围 [x+CELL_PADDING, x+width-CELL_PADDING] 内做矩形 clip 裁剪
     * - 标签按顺序逐个绘制，能完整放下的完整画
     * - 第一个放不下的标签：仍然绘制（背景 + 文字），由 clip 自动裁掉超出的部分；之后停止绘制
     * - 不再使用 "..." 省略号，也不再展示 "+N" 概览
     * - 极窄场景（剩余空间 1px 也要画，由 clip 处理截断）
     *
     * 注意：因为不再有 "+N" 点击区域，overflowBoundsMap 总是清空
     */
    private drawColoredTags;
    /**
     * Draw plain text mode (comma-separated module names)
     */
    private drawPlainText;
    /**
     * Draw a rounded rectangle
     */
    private drawRoundRect;
    /**
     * Draw placeholder for empty state
     */
    private drawPlaceholder;
}
export default ModuleViewer;
