import { Readable } from "stream"; import { LogHandlerInterface } from "@pristine-ts/logging"; import { TracerInterface } from "../interfaces/tracer.interface"; import { ConsoleTracerOutputModeEnum } from "../enums/console-tracer-output-mode.enum"; /** * `ConsoleTracer` prints a completed trace to stdout when the trace ends. Its main purpose * is **developer-readable feedback during local development**: see what spans ran, in what * order, and which one was the bottleneck — without wiring up an external tracing backend. * * Off by default. Enable via `pristine.telemetry.console-tracer.activated = true` (or * `PRISTINE_TELEMETRY_CONSOLE_TRACER_ACTIVATED=true`). Three output modes: * - `tree` (default): indented ASCII tree, durations right-aligned, slowest leaf flagged. * - `json`: pretty-printed JSON dump. * - `flat`: one line per span, no indentation, start-time-sorted. * * Crash-isolated: a throw inside the formatting code becomes a stderr line, never an * unhandled error or process crash. */ export declare class ConsoleTracer implements TracerInterface { private readonly activated; private readonly outputMode; private readonly minimumDurationMs; private readonly logHandler; traceEndedStream: Readable; constructor(activated: boolean, outputMode: ConsoleTracerOutputModeEnum, minimumDurationMs: number, logHandler: LogHandlerInterface); private handleTraceEnded; private reportFailure; }