import type { HostedSessionConfig } from '../../domain/types/HostedSessionConfig';
import { StepId } from '../../domain/value-objects/StepId';
import type { AutomationEngineValidationResultDTO } from '../dto/AutomationEngineValidationResultDTO';
import type { IBrowserAutomation } from './ScreenAutomationPort';

export interface AutomationEnginePort {
  validateConfiguration(config: HostedSessionConfig): Promise<AutomationEngineValidationResultDTO>;
  executeStep(stepId: StepId, config: HostedSessionConfig): Promise<void>;
  stopAutomation(): void;
  readonly browserAutomation: IBrowserAutomation;
}