import { MultiSessionConfig } from '../core/types';

export interface IMochaIntegration {
  // Environment setup
  setupTestEnvironment(config: MultiSessionConfig): void;
  isConfigured(): boolean;
  getConfiguration(): any;
  
  // Integration with mocha-multiple-sessions
  integrateWithExistingLibrary(): void;
  setupDefaultReporter(sessionLabel: string): any;
  
  // Event bridging
  bridgeSessionEvents(): void;
  
  // Validation
  validateEnvironment(): EnvironmentValidation;
  checkDependencies(): DependencyCheck;
}

export interface EnvironmentValidation {
  isValid: boolean;
  errors: string[];
  warnings: string[];
  missingDependencies: string[];
}

export interface DependencyCheck {
  mocha: boolean;
  chai: boolean;
  detailedReporter: boolean;
  multipleSessionsLibrary: boolean;
  reporterUI: boolean;
}
