import { type DetectedBox } from './geometry.js'; export interface DetectedLabel { id: number; x: number; y: number; width: number; height: number; text: string; confidence?: number; } export interface OcrWord { text: string; confidence: number; x: number; y: number; width: number; height: number; } /** Join words that sit on one line with a small gap ("Customer" + "Number:"). */ export declare function clusterOcrWords(words: OcrWord[], maxGap?: number): OcrWord[]; /** * Turn OCR words into label boxes the AI can join to controls, and collect any * text found inside control boxes (button/dropdown/tab labels on the blank form). */ export declare function labelsAndValuesFromOcr(words: OcrWord[], boxes: DetectedBox[]): { labels: DetectedLabel[]; boxValues: Map; }; /** Turn OCR words into label boxes the AI can join to controls. Drops chrome inside fields/buttons. */ export declare function labelsFromOcr(words: OcrWord[], boxes: DetectedBox[]): DetectedLabel[]; export declare function tessBBox(bbox: { x0?: number; y0?: number; x1?: number; y1?: number; x?: number; y?: number; width?: number; height?: number; } | undefined): OcrWord | null; //# sourceMappingURL=labels.d.ts.map