import type { CommanderStatic } from '@gemini-testing/commander'; import { TestCollectionAdapter } from '../test-collection'; import { ConfigAdapter } from '../config'; import type { GuiApi } from '../../gui/api'; import type { EventSource } from '../../gui/event-source'; import { GuiReportBuilder } from '../../report-builder/gui'; import { BrowserFeature, ToolName } from '../../constants'; import type { ImageFile, ReporterConfig } from '../../types'; import type { TestSpec } from './types'; import type { HtmlReporter } from '../../plugin-api'; export interface ToolAdapterOptionsFromCli { toolName: ToolName; configPath?: string; } export interface UpdateReferenceOpts { refImg: ImageFile; state: string; } export interface ToolAdapter { readonly toolName: ToolName; readonly config: ConfigAdapter; readonly reporterConfig: ReporterConfig; readonly htmlReporter: HtmlReporter; readonly guiApi?: GuiApi; readonly browserFeatures: Record; initGuiApi(): void; readTests(paths: string[], cliTool: CommanderStatic): Promise; run(testCollection: TestCollectionAdapter, tests: TestSpec[], cliTool: CommanderStatic): Promise; runWithoutRetries(testCollection: TestCollectionAdapter, tests: TestSpec[], cliTool: CommanderStatic): Promise; updateReference(opts: UpdateReferenceOpts): void; handleTestResults(reportBuilder: GuiReportBuilder, eventSource: EventSource): void; halt(err: Error, timeout: number): void; } export declare const makeToolAdapter: (opts: ToolAdapterOptionsFromCli) => Promise;