import type { EventEmitter } from 'node:events'; import type { Writable as WritableStream } from 'node:stream'; import type { SupportCodeLibrary } from '../support_code_library_builder/types'; import type Formatter from '.'; import type { FormatOptions, IFormatterCleanupFn, IFormatterLogFn } from '.'; import type EventDataCollector from './helpers/event_data_collector'; import StepDefinitionSnippetBuilder from './step_definition_snippet_builder'; import { SnippetInterface } from './step_definition_snippet_builder/snippet_syntax'; export interface IGetStepDefinitionSnippetBuilderOptions { cwd: string; snippetInterface?: SnippetInterface; snippetSyntax?: string; supportCodeLibrary: SupportCodeLibrary; } export interface IBuildOptions { env: NodeJS.ProcessEnv; cwd: string; eventBroadcaster: EventEmitter; eventDataCollector: EventDataCollector; log: IFormatterLogFn; parsedArgvOptions: FormatOptions; stream: WritableStream; cleanup: IFormatterCleanupFn; supportCodeLibrary: SupportCodeLibrary; } declare const FormatterBuilder: { build(FormatterConstructor: string | typeof Formatter, options: IBuildOptions): Promise; getConstructorByType(type: string, cwd: string): Promise; getStepDefinitionSnippetBuilder({ cwd, snippetInterface, snippetSyntax, supportCodeLibrary, }: IGetStepDefinitionSnippetBuilderOptions): Promise; loadCustomClass(type: "formatter" | "syntax", descriptor: string, cwd: string): Promise; loadFile(urlOrName: URL | string): Promise; resolveConstructor(ImportedCode: unknown): Function | null; }; export default FormatterBuilder;