import { StepId } from '../../domain/value-objects/StepId'; import { NavigationResult, FormFillResult, ClickResult, WaitResult, ModalResult, AutomationResult, } from './AutomationResults'; export interface IBrowserAutomation { navigateToPage(url: string): Promise; fillFormField(fieldName: string, value: string): Promise; clickElement(selector: string): Promise; waitForElement(selector: string, maxWaitMs?: number): Promise; handleModal(stepId: StepId, action: string): Promise; /** * Execute a complete workflow step with all required browser operations. * Uses IRacingSelectorMap to locate elements and performs appropriate actions. * * @param stepId - The step to execute (1-18) * @param config - Session configuration with form field values * @returns AutomationResult with success/failure and metadata */ executeStep?(stepId: StepId, config: Record): Promise; connect?(): Promise; disconnect?(): Promise; isConnected?(): boolean; }