/**
 * TaskNodeViewer - 任务节点类型单元格渲染器（Canvas 实现）
 * 功能：显示任务节点列表（图标 + 名称），右侧编辑/查看图标
 * 从 DOM 实现的 taskNodeViewer-new.ts 转换而来
 *
 * 布局结构：[ middle (nodeItem, nodeItem, ...) ] [ linkIcon? ] [ after (editIcon / viewIcon) ]
 */
import type { CellViewer, ViewerRenderContext, TaskNodeViewerData } from './types';
declare class TaskNodeViewer implements CellViewer<TaskNodeViewerData> {
    readonly type = "task-node";
    private imageManager;
    /** 记录加载失败的图标 URL，避免反复重试 */
    private failedIcons;
    private _sm;
    private get NODE_ITEM_BG_COLOR();
    private get TEXT_COLOR();
    private get EMPTY_TEXT_COLOR();
    private get ICON_COLOR();
    private get STRIKETHROUGH_COLOR();
    constructor();
    /**
     * 绘制任务节点单元格内容
     */
    draw(context: ViewerRenderContext, data: TaskNodeViewerData): void;
    /**
     * 处理点击事件
     */
    onClick(context: ViewerRenderContext, data: TaskNodeViewerData, localX: number, localY: number): boolean;
    /**
     * 处理双击事件
     * 双击节点项时打印该节点的信息
     */
    onDblClick(context: ViewerRenderContext, data: TaskNodeViewerData, localX: number, localY: number): boolean;
    /**
     * 获取交互区域的光标样式
     */
    getInteractiveCursor(context: ViewerRenderContext, data: TaskNodeViewerData, localX: number, localY: number): string | null;
    /**
     * 解析值，返回标准化的 TaskNodeItem 数组
     * 支持：TaskNodeItem[] / 逗号分隔字符串 / 单个数字 / null
     */
    private parseValue;
    /**
     * 通过 ID 数组解析节点信息
     * 解析优先级（与 DOM 版 findNeedFetchNodeAndFormatNode 对齐）：
     * 1. customTaskNodeInfo（行数据上的映射表，TemplateDetail 场景）
     * 2. taskNodeResolver（通过 graph.getNode 查询，进度表场景）
     * 3. 兜底使用 ID 数字作为名称
     */
    private resolveNodesByIds;
    /**
     * 计算各区域的布局位置
     * 所有坐标相对于单元格左上角
     */
    private calculateLayout;
    /**
     * 判断坐标是否在指定区域内
     */
    private isInArea;
    /**
     * 绘制节点项矩形背景
     */
    private drawNodeItemBackground;
    /**
     * 绘制空值占位符
     */
    private drawEmptyPlaceholder;
    /**
     * 绘制所有任务节点项
     */
    private drawTaskNodes;
    /**
     * 绘制任务节点图标
     * 有 iconFile 时加载对应图标，无或加载失败时使用默认图标 icon_folder.svg
     */
    private drawNodeIcon;
    /**
     * 通用 SVG 图标绘制方法
     */
    private drawSvgIcon;
    /**
     * 绘制节点名称文本
     */
    private drawNodeName;
    /**
     * 绘制右侧操作区域
     * canEdit 时显示编辑图标，否则显示列表图标
     */
    private drawAfterArea;
    /**
     * 绘制编辑/铅笔图标
     */
    private drawEditIcon;
    /**
     * 绘制列表/查看图标（简化的列表形状）
     */
    private drawViewIcon;
    /**
     * 绘制关联图标
     */
    private drawLinkIcon;
    /**
     * 绘制删除线
     */
    private drawStrikethrough;
    /**
     * 绘制错误提示图标（⚠）
     * is_warning 为 true 时使用警告色，否则使用错误色
     */
    private drawErrorIcon;
    /**
     * 文本截断，超出宽度时显示省略号
     */
    private truncateText;
}
export default TaskNodeViewer;
