import type { ElementConfig, FieldPart, Rect, ScreenComparison, ElementType } from './types.js'; /** Home-dir settings written by the Template Manager for external image storage. */ export declare const SCREENS_SETTINGS_FILE = ".playwright-ocr-screens.json"; /** Authoring sometimes stores parts in screen space; runtime wants crop-relative (like ocrRect). */ export declare function relativePartRect(part: Rect, crop: Rect): Rect; /** * Resolve where a screen's PNG assets live. * Uses OCR_SCREENS_DIR or ~/.playwright-ocr-screens.json when those images exist, * otherwise falls back to the in-repo screen folder (typically __dirname). */ export declare function screenAssetsDir(screenName: string, fallbackDir: string): string; /** * Configuration for a single screen/page */ export interface ScreenConfig { /** Screen identifier (e.g., 'login', 'checkout') */ name: string; /** Path to blank screenshot of this screen */ blankScreenPath: string; /** UI elements to extract from this screen */ elementConfigs: ElementConfig[]; /** Optional: Base directory for relative paths */ baseDir?: string | undefined; /** Optional: Enable debug output */ debug?: boolean | undefined; /** * Which element(s) signal the screen is ready in screen.waitFor(). * - string: one element must be visible * - string[]: all elements must be visible (checked sequentially) * - { any: string[] }: any one element must be visible * Defaults to the first element when omitted. */ ready?: string | string[] | { any: string[]; } | undefined; } /** * Helper to create a screen configuration * Automatically resolves paths relative to screen folder */ export declare function defineScreen(config: { name: string; baseDir: string; blankScreen?: string; elements: Array<{ name: string; template?: string; variants?: Record; type?: ElementType; section?: string; sectionTemplatePath?: string; options?: string[]; ocrRect?: { x: number; y: number; width: number; height: number; }; charset?: string; swaps?: ElementConfig['swaps']; overflow?: ElementConfig['overflow']; read?: ElementConfig['read']; parts?: FieldPart[]; }>; debug?: boolean; ready?: string | string[] | { any: string[]; }; }): ScreenConfig; /** * Type guard to check if a screen has specific elements */ export declare function hasElement(results: ScreenComparison, elementName: string): boolean; /** * Get element value from results */ export declare function getElementValue(results: ScreenComparison, elementName: string): string | undefined; /** * Check if element is filled/active */ export declare function isElementFilled(results: ScreenComparison, elementName: string): boolean; /** * Get all filled elements */ export declare function getFilledElements(results: ScreenComparison): Array<{ name: string; value: string; }>; //# sourceMappingURL=screen-config.d.ts.map