export interface FirstPassPart { name: string; type?: string; /** Detected box. Omit to split the parent field box left-to-right. */ boxId?: number; /** Optional 0–1 span of the parent field union when boxId is omitted. */ start?: number; end?: number; charset?: string; swaps?: Record; overflow?: string; read?: string; } export interface FirstPassElement { name: string; type?: string; section?: string | null; boxIds: number[]; /** Detected label ids to union into the crop (any side of the control). */ labelIds?: number[]; parts?: FirstPassPart[]; charset?: string; swaps?: Record; overflow?: string; /** How to read the value: `ocr` (default) or `clipboard`. */ read?: string; options?: string[]; /** If true and labelIds is empty, grow the crop left (legacy). Default is box-only. */ includeLabel?: boolean; } export interface FirstPassSection { name: string; boxIds: number[]; } export interface FirstPass { screen?: { name?: string; width?: number; height?: number; }; notes?: string[]; unknowns?: string[]; sections?: FirstPassSection[]; elements: FirstPassElement[]; } export interface AppliedSection { name: string; filename: string; x: number; y: number; width: number; height: number; } export interface AppliedElement { name: string; filename: string; type: string; x: number; y: number; width: number; height: number; boxIds?: number[]; labelIds?: number[]; charset?: string; swaps?: Record; overflow?: string; read?: string; options?: string[]; section?: string; ocrRect?: { x: number; y: number; width: number; height: number; }; parts?: Array<{ name: string; type?: string; x: number; y: number; width: number; height: number; charset?: string; swaps?: Record; overflow?: string; read?: string; }>; } export interface ApplyScreenResult { dir: string; indexPath: string; firstPassPath: string; elements: AppliedElement[]; } /** * Turn first-pass.json (boxIds) into templates/ + index.json. * Pass `firstPass` to write that file first (QA Wolf AI can hand the object in). */ export declare function applyScreen(name: string, firstPass?: FirstPass): ApplyScreenResult; //# sourceMappingURL=apply.d.ts.map