/**
 * @file OCR处理器
 * @description 提供身份证OCR识别功能
 * @module modules/id-card/ocr-processor
 */
/// <reference path="../../../../src/types/tesseract.d.ts" />
import { IDCardInfo } from './types';
import { LoggerMessage } from "tesseract.js";
import { Disposable } from "../../utils/resource-manager";
type LoggerFunction = ((message: string | LoggerMessage) => void) | undefined;
/**
 * OCR处理器选项接口
 */
export interface OCRProcessorOptions {
    language?: string;
    useWorker?: boolean;
    maxImageDimension?: number;
    timeout?: number;
    brightness?: number;
    contrast?: number;
    onProgress?: (progress: number) => void;
    enableCache?: boolean;
    cacheSize?: number;
    logger?: LoggerFunction;
}
/**
 * OCR处理器类
 *
 * 使用Tesseract.js实现对身份证图像的OCR文字识别和信息提取功能
 *
 * @example
 * ```typescript
 * // 创建OCR处理器
 * const ocrProcessor = new OCRProcessor();
 *
 * // 初始化OCR引擎
 * await ocrProcessor.initialize();
 *
 * // 处理身份证图像
 * const idInfo = await ocrProcessor.processIDCard(idCardImageData);
 * console.log('识别到的身份证信息:', idInfo);
 *
 * // 使用结束后释放资源
 * await ocrProcessor.terminate();
 * ```
 */
export declare class OCRProcessor implements Disposable {
    private worker;
    private ocrWorker;
    private initialized;
    private resultCache;
    private options;
    /**
     * 创建OCR处理器实例
     *
     * @param options OCR处理器选项
     */
    constructor(options?: OCRProcessorOptions);
    /**
     * 初始化OCR引擎
     *
     * 加载Tesseract OCR引擎和中文简体语言包，并设置适合身份证识别的参数
     *
     * @returns {Promise<void>} 初始化完成的Promise
     */
    initialize(): Promise<void>;
    /**
     * 处理身份证图像并提取信息
     * @param imageData 要处理的身份证图像数据
     * @returns 提取的身份证信息
     */
    processIDCard(imageData: ImageData): Promise<IDCardInfo>;
    /**
     * 解析身份证文本信息
     *
     * 从OCR识别到的文本中提取结构化的身份证信息
     *
     * @private
     * @param {string} text - OCR识别到的文本
     * @returns {IDCardInfo} 提取到的身份证信息对象
     */
    /**
     * 格式化日期字符串为标准格式 (YYYY-MM-DD)
     * @param dateStr 原始日期字符串
     * @returns 格式化后的日期字符串
     */
    private formatDateString;
    /**
     * 验证身份证号是否符合规则
     * @param idNumber 身份证号
     * @returns 是否有效
     */
    private validateIDNumber;
    private parseIDCardText;
    /**
     * 清除结果缓存
     */
    clearCache(): void;
    /**
     * 终止OCR引擎并释放资源
     *
     * @returns {Promise<void>} 终止完成的Promise
     */
    terminate(): Promise<void>;
    /**
     * 释放资源
     */
    dispose(): Promise<void>;
}
export {};
