import { ToolResult } from '../types/index.js';
export interface OCRResult {
    text: string;
    confidence?: number;
    language?: string;
    blocks?: OCRBlock[];
    processingTime?: number;
}
export interface OCRBlock {
    text: string;
    confidence?: number;
    boundingBox?: {
        x: number;
        y: number;
        width: number;
        height: number;
    };
}
export interface OCROptions {
    language?: string;
    psm?: number;
    oem?: number;
    dpi?: number;
}
/**
 * OCR Tool for extracting text from images
 * Uses Tesseract OCR as the backend (must be installed on system)
 * Falls back to basic image analysis if Tesseract is not available
 */
export declare class OCRTool {
    private readonly supportedFormats;
    private readonly maxFileSizeMB;
    private tesseractAvailable;
    private vfs;
    /**
     * Perform OCR on an image file
     */
    extractText(filePath: string, options?: OCROptions): Promise<ToolResult>;
    /**
     * Check if Tesseract is available
     */
    private checkTesseract;
    /**
     * Run Tesseract OCR
     */
    private runTesseract;
    /**
     * Parse Tesseract TSV output
     */
    private parseTesseractTSV;
    /**
     * Run OCR using vision API (OpenAI or similar)
     */
    private runVisionOCR;
    /**
     * List available Tesseract languages
     */
    listLanguages(): Promise<ToolResult>;
    /**
     * Batch OCR multiple images
     */
    batchOCR(filePaths: string[], options?: OCROptions): Promise<ToolResult>;
    /**
     * OCR a specific region of an image
     */
    extractRegion(filePath: string, region: {
        x: number;
        y: number;
        width: number;
        height: number;
    }, options?: OCROptions): Promise<ToolResult>;
    /**
     * Format OCR output for display
     */
    private formatOutput;
    /**
     * Check if file is a supported image format
     */
    isSupported(filePath: string): boolean;
}
