/**
 * OCR service client
 */
import { StorageClient } from '@the-order/storage';
export interface OCRResult {
    text: string;
    confidence: number;
    words: Array<{
        text: string;
        confidence: number;
        bbox: {
            x0: number;
            y0: number;
            x1: number;
            y1: number;
        };
    }>;
}
export declare class OCRClient {
    private storageClient?;
    constructor(storageClient?: StorageClient);
    /**
     * Process document from storage key with retry logic
     */
    processFromStorage(storageKey: string, options?: {
        maxRetries?: number;
        initialDelay?: number;
    }): Promise<OCRResult>;
    /**
     * Process document from buffer with retry logic
     */
    processBuffer(buffer: Buffer, options?: {
        maxRetries?: number;
        initialDelay?: number;
    }): Promise<OCRResult>;
    /**
     * Process with external OCR service
     */
    private processWithExternalService;
    /**
     * Process with local Tesseract.js
     */
    private processWithTesseract;
}
//# sourceMappingURL=client.d.ts.map