import type { OpenFileLimits } from "../contracts.js"; export type OcrLanguage = "eng" | "chi_sim"; export type OcrLanguageSelection = "eng" | "chi_sim" | "eng+chi_sim" | "chi_sim+eng"; export interface OcrEngineResult { readonly text: string; readonly confidence: number; } export interface OcrEngine { recognize(imagePath: string, languages: readonly OcrLanguage[], signal: AbortSignal): Promise; } export interface OcrResult extends OcrEngineResult { readonly part_ref: string; readonly source_sha256: string; readonly parser: "tesseract-local"; readonly languages: readonly OcrLanguage[]; readonly locator: Readonly>; readonly cursor: null; } export declare class OcrService { private readonly engine; constructor(engine: OcrEngine); run(input: { readonly imagePath: string; readonly outputPath: string; readonly partRef: string; readonly sourceSha256: string; readonly languages: string; readonly locator: Readonly>; readonly limits: Readonly; readonly signal?: AbortSignal; }): Promise; }