import { OCRResult, TableResult, LayoutResult } from "../typings"; /** * 轻量级可视化选项接口(简化) */ export interface LightVisualizerOptions { width: number; height: number; color: string; textColor: string; bgColor: string; fontSize: number; lineWidth: number; responsive: boolean; optimizeForMobile: boolean; renderMode: "simple" | "list"; onSelect?: (id: number, item: any) => void; } /** * 轻量级OCR结果可视化组件 * 适用于移动设备和性能受限的环境 */ export declare class LightVisualizer { private container; private canvas; private ctx; private image; private result; private options; private selectedId; private mode; private isReady; private maxBoxesToRender; constructor(container: string | HTMLElement, options?: Partial); /** * 创建结果列表视图 */ private createResultListView; /** * 更新结果列表视图 */ private updateResultListView; /** * 设置事件监听器 */ private setupEventListeners; /** * 设置触控事件 */ private setupTouchEvents; private lastTouchTime; private lastTouchX; private lastTouchY; /** * 处理触摸开始事件 */ private handleTouchStart; /** * 处理触摸结束事件 */ private handleTouchEnd; /** * 处理点击或轻触 */ private handleTap; /** * 处理点击事件 */ private handleClick; /** * 查找指定位置的元素(支持 box 或 bbox 属性) */ private findBoxAtPosition; /** * 判断点是否在多边形内 */ private pointInPolygon; /** * 设置响应式处理 */ private setupResizeHandler; /** * 调整画布大小 */ private resizeCanvas; /** * 加载图像 */ loadImage(image: string | HTMLImageElement | HTMLCanvasElement): Promise; /** * 设置OCR结果 */ setResult(result: OCRResult | TableResult | LayoutResult): void; /** * 设置渲染模式 */ setMode(mode: "text" | "table" | "layout"): void; /** * 渲染结果 */ render(): void; /** * 渲染文本识别结果 */ private renderText; /** * 渲染表格识别结果 */ private renderTable; /** * 渲染版面分析结果 */ private renderLayout; /** * 绘制框 */ private drawBox; /** * 更新选项 */ updateOptions(options: Partial): void; /** * 获取数据URL */ toDataURL(type?: string, quality?: number): string; /** * 清除结果 */ clear(): void; /** * 销毁组件 */ dispose(): void; }