import Macroable from '@poppinss/macroable'; import { type Emitter } from '../testing/emitter.js'; import type { RunnerEvents, RunnerStartNode } from '../types.js'; import type { ReporterContract, RunnerSummary } from '../types.js'; import type { NormalizedConfig } from './types.js'; import { SummaryBuilder } from './summary_builder.js'; import type { TestPoolManager } from './test_pool_manager.js'; /** * The Runner class exposes the API to manage the node process telemetry * and reporters for Lupa tests running in the browser. */ export declare class Runner extends Macroable { #private; poolManager: TestPoolManager; /** * Summary builder is used to create the tests summary reported by * multiple reporters. Each report contains a key-value pair */ summaryBuilder: SummaryBuilder; /** * Registered tests reporter */ reporters: Set; constructor(emitter: Emitter, config: NormalizedConfig, poolManager: TestPoolManager); /** * Know if one or more suites have failed */ get failed(): boolean; /** * Register a tests reporter * * @param reporter - Reporter to register * @returns This runner instance */ registerReporter(reporter: ReporterContract): this; /** * Get tests summary * * @returns Tests summary or throws error when runner is not booted */ getSummary(): RunnerSummary; /** * Optional emitter to use for reporters. If not set, the main emitter is used. * Useful for watch mode filtering. */ reporterEmitter?: Emitter; /** * Start the test runner process * * @returns Promise that resolves when the runner starts */ start(node?: RunnerStartNode): Promise; /** * End the runner process * * @returns Promise that resolves when the runner finishes */ end(): Promise; }