/**
 * PunchViewer - 打卡进度单元格渲染器（Canvas 实现）
 * 功能：显示环形进度条 + 日期文本 + 审批状态图标 + 未读提示红点 + 编辑/更多操作图标
 * 从 PunchViewerOld.ts（DOM 实现）转换而来
 */
import type { CellViewer, ViewerRenderContext, CellViewerData } from './types';
/**
 * 打卡 Viewer 数据接口
 */
export interface PunchViewerData extends CellViewerData {
    value: PunchValue | null;
    /** 数据行 ID */
    id?: string | number;
    /** 属性 key */
    key?: string;
    /** 是否可编辑 */
    canEdit?: boolean;
    /** 是否显示删除线 */
    showLineThrow?: boolean;
    /** 日期显示模式 */
    datePattern?: string;
    /** 是否关联属性 */
    isLink?: boolean;
    /** 关联 key */
    linkKey?: string;
    /** 是否有错误 */
    error?: {
        errorProperty?: string;
        errorMessage?: string;
    } | null;
    /** 点击打卡区域回调（打开打卡详情/新增打卡弹窗） */
    onPunchDialogVisibleTrigger?: (visible: boolean, type: 'add' | 'detail', params?: any) => void;
}
/**
 * 打卡值
 */
export interface PunchValue {
    /** 打卡记录 ID，> 0 表示已打卡 */
    punch_id?: number;
    /** 所属节点 ID */
    node_id?: number;
    /** 打卡日期时间戳 */
    created_date?: number;
    /** 进度 0~100 */
    progress?: number;
    /** 审批状态 */
    review_status?: number | string;
    /** 是否已读 */
    is_read?: boolean;
}
declare class PunchViewer implements CellViewer<PunchViewerData> {
    readonly type = "punch";
    private _sm;
    /**
     * 绘制打卡单元格内容
     */
    draw(context: ViewerRenderContext, data: PunchViewerData): void;
    /**
     * 处理点击事件
     * 返回 true 表示事件已被处理
     */
    onClick(context: ViewerRenderContext, data: PunchViewerData, localX: number, localY: number): boolean;
    /**
     * 获取交互区域的光标样式
     */
    getInteractiveCursor(context: ViewerRenderContext, data: PunchViewerData, localX: number, localY: number): string | null;
    /**
     * 根据打卡日期和审批状态获取环形进度条颜色
     */
    private getRingColor;
    /**
     * 绘制环形进度条
     * @param ctx Canvas 上下文
     * @param cx 圆心 X
     * @param cy 圆心 Y
     * @param radius 半径
     * @param strokeWidth 线宽
     * @param progress 进度 0~1
     * @param color 进度颜色
     */
    private drawPercentRing;
    /**
     * 绘制审批状态图标（在环形进度条中心）
     * 审批通过：✓ 图标
     * 审批拒绝：✕ 图标
     */
    private drawReviewIcon;
    /**
     * 绘制日期文本
     */
    private drawDateText;
    /**
     * 绘制未读提示红点
     */
    private drawHintDot;
    /**
     * 绘制右侧操作图标（更多 + 编辑）
     */
    private drawAfterIcons;
    /**
     * 绘制列表/更多图标（三横线）
     */
    private drawListIcon;
    /**
     * 绘制编辑/铅笔图标
     */
    private drawEditIcon;
    /**
     * 绘制删除线
     */
    private drawStrikethrough;
    /**
     * 绘制错误提示图标（⚠）
     */
    private drawErrorIcon;
    /**
     * 文本截断，超出宽度时显示省略号
     */
    private truncateText;
}
export default PunchViewer;
