/** * Types for DOM Element Discovery feature */ export type ElementType = 'buttons' | 'links' | 'forms' | 'inputs' | 'images' | 'headings' | 'all'; export interface ScanOptions { url: string; output?: string; include?: ElementType[]; exclude?: string[]; screenshot?: boolean; autoGenerateTest?: boolean; timeout?: number; headless?: boolean; } export interface ElementPosition { x: number; y: number; width: number; height: number; } export interface DiscoveredElement { type: string; selector: string; text?: string; attributes?: Record; position: ElementPosition; visible: boolean; page: string; } export interface ScanSummary { totalElements: number; buttons: number; links: number; forms: number; inputs: number; images: number; headings: number; } export interface ScanResult { scanDate: string; url: string; duration: number; summary: ScanSummary; elements: DiscoveredElement[]; } export interface GeneratedPageConfig { url: string; expectedElements: string[]; } export interface GeneratedGateConfig { adapter: string; enabled: boolean; config: { baseUrl: string; pages: GeneratedPageConfig[]; }; } export interface GeneratedTestConfig { version: number; name: string; description: string; gates: Record; execution?: { default_timeout: number; default_retries: number; on_failure: string; }; }