import type { Exception } from '@cucumber/messages'; import type { JsonObject } from 'type-fest'; import type { AssembledTestCase } from '../assemble'; export interface RuntimeOptions { dryRun: boolean; failFast: boolean; filterStacktraces: boolean; retry: number; retryTagFilter: string; strict: boolean; worldParameters: JsonObject; } export interface RuntimeResult { success: boolean; exception?: Exception; } export interface Runtime { run: () => Promise; } export interface RuntimeAdapter { setup(): Promise; runBeforeAllHooks(): Promise; runTestCases(assembledTestCases: ReadonlyArray): Promise; runAfterAllHooks(): Promise; teardown(): Promise; }