/**
 * Dependency Injection tokens for TSyringe container
 */

export const DI_TOKENS = {
  // Core Services
  Logger: Symbol.for('LoggerPort'),
  
  // Repositories
  SessionRepository: Symbol.for('SessionRepositoryPort'),
  
  // Adapters
  BrowserAutomation: Symbol.for('ScreenAutomationPort'),
  AutomationEngine: Symbol.for('AutomationEnginePort'),
  AuthenticationService: Symbol.for('AuthenticationServicePort'),
  
  // Configuration
  AutomationMode: Symbol.for('AutomationMode'),
  BrowserModeConfigLoader: Symbol.for('BrowserModeConfigLoader'),
  
  // Use Cases
  StartAutomationUseCase: Symbol.for('StartAutomationSessionUseCase'),
  CheckAuthenticationUseCase: Symbol.for('CheckAuthenticationUseCase'),
  InitiateLoginUseCase: Symbol.for('InitiateLoginUseCase'),
  ClearSessionUseCase: Symbol.for('ClearSessionUseCase'),
  ConfirmCheckoutUseCase: Symbol.for('ConfirmCheckoutUseCase'),
  
  // Services
  OverlaySyncPort: Symbol.for('OverlaySyncPort'),
  CheckoutService: Symbol.for('CheckoutServicePort'),
  
  // Infrastructure
  FixtureServer: Symbol.for('FixtureServer'),
} as const;

export type DITokens = typeof DI_TOKENS;