import type {EventEmitter} from 'node:events'; // `keyof typeof PROTOCOLS` requires the runtime `PROTOCOLS` binding (not `import type`). // eslint-disable-next-line @typescript-eslint/consistent-type-imports -- see above import {PROTOCOLS, type WebDriverProxy} from '@appium/base-driver'; import type {AppiumLogger} from '@appium/types'; import type {ADB} from 'appium-adb'; import type * as TeenProcess from 'teen_process'; import type {ChromedriverStorageClient} from '../storage-client/storage-client.js'; import type {ChromedriverOpts} from '../types.js'; export interface ChromedriverCommandContext extends EventEmitter { state: string; proxyPort: number; adb?: ADB; cmdArgs?: string[]; logPath?: string; disableBuildCheck: boolean; mappingPath?: string; executableDir: string; isCustomExecutableDir: boolean; useSystemExecutable: boolean; chromedriver?: string; executableVerified: boolean; bundleId?: string; details?: ChromedriverOpts['details']; storageClient: ChromedriverStorageClient | null; _execFunc: typeof TeenProcess.exec; _driverVersion: string | null; _onlineStatus: Record | null; _desiredProtocol: keyof typeof PROTOCOLS | null; capabilities: Record; jwproxy: WebDriverProxy; log: AppiumLogger; driverVersion: string | null; }