import { type Envelope } from '@cucumber/messages'; import type { PrettyOptions } from './types.js'; /** * Prints test progress in a prettified Gherkin-style format * * @remarks * Outputs features, rules, scenarios, and steps with proper indentation and styling. * Shows step results, attachments, and error details as tests execute. This is the * primary formatter for readable console output during test runs. */ export declare class PrettyPrinter { private readonly stream; private readonly print; private readonly println; private readonly options; private readonly query; private readonly scenarioIndentByTestCaseStartedId; private readonly maxContentLengthByTestCaseStartedId; private readonly encounteredFeaturesAndRules; /** * Creates a new PrettyPrinter instance * * @param params -Initialisation object * @param params.stream - The writable stream used for TTY detection and styling * @param params.options - Configuration options for the pretty output */ constructor({ stream, options, }?: { stream?: NodeJS.WritableStream; options?: PrettyOptions; }); /** * Processes a Cucumber message envelope and prints if appropriate * * @param message - The Cucumber message envelope to process */ update(message: Envelope): void; private summarise; private resolveScenario; private resolveStep; private preCalculateIndentAndMaxContentLength; private getScenarioIndentBy; private getMaxContentLengthBy; private handleTestCaseStarted; private printFeatureLine; private printRuleLine; private printTags; private printScenarioLine; private handleTestStepFinished; private printStepLine; private printStepArgument; private printGherkinLine; private printError; private printAmbiguousStep; private handleAttachment; private handleTestRunFinished; }