/**
 * ImageViewer - Image rendering viewer
 * Handles image display with loading states, error handling, and various fit modes
 */
import type { CellViewer, ViewerRenderContext, ImageViewerData } from './types';
/**
 * ImageViewer renders images in cells
 * Uses ImageManager for caching and GIF animation support
 */
declare class ImageViewer implements CellViewer<ImageViewerData> {
    readonly type = "image";
    private imageManager;
    private lastHoverIndex;
    private lastHoverCellKey;
    constructor();
    /**
     * Draw image content in the cell
     */
    draw(context: ViewerRenderContext, data: ImageViewerData): void;
    /**
     * 双击图片时触发 onClickImage 回调，打开图片详情弹窗
     * 与 DOM multiImageViewer 的 dblclick 行为对齐，与文件型字段 onFileGoToDetail 一致：
     * 单击仅选中单元格，双击图片才唤起详情页
     */
    onDblClick(context: ViewerRenderContext, data: ImageViewerData, localX: number, localY: number): boolean;
    /**
     * 鼠标悬停在图片上时显示指针光标，同时追踪悬停状态变化触发 hover 回调
     */
    getInteractiveCursor(context: ViewerRenderContext, data: ImageViewerData, localX: number, localY: number): string | null;
    /**
     * 追踪悬停图片索引变化，触发 onImgMouseIn / onImgMouseOut 回调
     */
    private handleHoverChange;
    /**
     * 重置悬停状态（当鼠标移出图片列区域时需要调用）
     */
    resetHoverState(data: ImageViewerData): void;
    /**
     * 计算指定图片在屏幕中的绝对矩形位置
     */
    private getImageScreenRect;
    /**
     * 创建虚拟锚点元素，模拟 DOM 元素的 getBoundingClientRect 接口
     * 供 showImagePopper 定位使用
     */
    private createVirtualAnchor;
    /**
     * 命中检测：判断 localX/localY 落在哪张图片上，返回图片索引，-1 表示未命中
     */
    private hitTestImage;
    /**
     * 绘制多张图片左对齐并排排列在单元格内
     * 与 DOM multiImageViewer 的 renderImg 行为一致：所有图片都展示
     * 如果所有图片按行高等比缩放后总宽度超出可用宽度，则等分可用宽度
     *
     * 当 data.uploadingItems 非空时（外部文件 drop 触发上传），
     * 占位 slot 排在 url 数组之前（与 FileEditor.unshift 行为对齐），
     * 每个占位 slot 渲染灰底 + 中央 canvas 进度环。
     */
    private drawMultipleImages;
    /**
     * 在指定区域内绘制单张图片（contain 模式居中）
     */
    private drawSingleImage;
    /**
     * 为单张未加载的图片绘制占位
     */
    private drawSinglePlaceholder;
    /**
     * 为外部 OS 文件 drop 触发的「上传中」占位 slot 绘制：
     * - 灰底矩形
     * - 中央 canvas 进度环（与 FileEditor.PercentRing 视觉对齐：背景灰圆 + 蓝色前景弧）
     * 不使用 SVG / DOM 元素叠加（用户明确要求 loading 必须画在 canvas 里）。
     */
    private drawUploadingPlaceholder;
    /**
     * 绘制交付物角标（右下角圆形图标）
     * 与 DOM .mark-icon iconfont 图标对齐：
     * - ah-icon_finish1: 绿色 #00bd77 圆形背景 + 白色勾（已完成）
     * - ah-icon_help2: 橙色 #ed954f 圆形背景 + 白色问号（待验收）
     */
    private drawMarkIcon;
    /**
     * Draw image with rounded corners
     */
    private drawRoundedImage;
    /**
     * 无图片时显示 '-'，与 DOM 表格 EmptyValue 保持一致
     */
    private drawEmptyText;
}
export default ImageViewer;
