import type { EventEmitter } from 'node:events'; import { type IdGenerator } from '@cucumber/messages'; import type { AssembledTestCase } from '../assemble'; import type StepDefinitionSnippetBuilder from '../formatter/step_definition_snippet_builder'; import type TestRunHookDefinition from '../models/test_run_hook_definition'; import type { SupportCodeLibrary } from '../support_code_library_builder/types'; import type { RuntimeOptions } from './types'; /** * Runs individual units of work asynchronously * @remarks * Unaware of the overall test run scope, or whether it's on the main thread, * or whether any other executors are in play. */ export declare class Executor { private readonly testRunStartedId; private readonly workerId; private readonly eventBroadcaster; private readonly newId; private readonly options; private readonly supportCodeLibrary; private readonly snippetBuilder; constructor(testRunStartedId: string, workerId: string | undefined, eventBroadcaster: EventEmitter, newId: IdGenerator.NewId, options: RuntimeOptions, supportCodeLibrary: SupportCodeLibrary, snippetBuilder: StepDefinitionSnippetBuilder); private runTestRunHook; runBeforeAllHooks(predicate?: (hookDefinition: TestRunHookDefinition) => boolean): Promise; runTestCase({ gherkinDocument, pickle, testCase }: AssembledTestCase, failing: boolean): Promise; runAfterAllHooks(predicate?: (hookDefinition: TestRunHookDefinition) => boolean): Promise; }