import type { EventEmitter } from 'node:events'; import type { IdGenerator } from '@cucumber/messages'; import type { IRunOptionsRuntime } from '../../api'; import type { AssembledTestCase } from '../../assemble'; import type { ILogger, IRunEnvironment } from '../../environment'; import type { FormatOptions } from '../../formatter'; import type StepDefinitionSnippetBuilder from '../../formatter/step_definition_snippet_builder'; import { type SupportCodeLibrary } from '../../support_code_library_builder/types'; import type { RuntimeAdapter } from '../types'; /** * An adapter that distributes work across multiple worker threads * @remarks * Each phase of the test run is self-contained and self-orchestrating - every * FINISHED message from a worker may cause the next piece of work to be * triggered or the phase to be settled. */ export declare class WorkerThreadsAdapter implements RuntimeAdapter { private readonly testRunStartedId; private readonly environment; private readonly logger; private readonly eventBroadcaster; private readonly options; private readonly snippetOptions; private readonly supportCodeLibrary; private readiness?; private phase?; private tearingDown; private readonly workers; private readonly running; private readonly executor; constructor(testRunStartedId: string, environment: IRunEnvironment, logger: ILogger, eventBroadcaster: EventEmitter, newId: IdGenerator.NewId, options: IRunOptionsRuntime, snippetOptions: Pick, supportCodeLibrary: SupportCodeLibrary, snippetBuilder: StepDefinitionSnippetBuilder); setup(): Promise; runBeforeAllHooks(): Promise; runTestCases(assembledTestCases: ReadonlyArray): Promise; runAfterAllHooks(): Promise; teardown(): Promise; private startPhase; private issueCommandToWorker; private handleEventFromWorker; private handleErrorFromWorker; private handleExitFromWorker; private fail; }