import { EventEmitter } from 'node:events';
import { IdGenerator, TestStepResult } from '@cucumber/messages';
import { AssembledTestCase } from '../assemble';
import { SupportCodeLibrary } from '../support_code_library_builder/types';
import StepDefinitionSnippetBuilder from '../formatter/step_definition_snippet_builder';
import { RuntimeOptions } from './types';
export interface RunHookResult {
    result: TestStepResult;
    error?: any;
}
export declare class Worker {
    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;
    private wrapTestRunHookError;
    runBeforeAllHooks(): Promise<RunHookResult[]>;
    runTestCase({ gherkinDocument, pickle, testCase }: AssembledTestCase, failing: boolean): Promise<boolean>;
    runAfterAllHooks(): Promise<RunHookResult[]>;
}
