/**
 * @license
 * Copyright 2025 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import type { JsonStreamEvent, StreamStats } from './types.js';
import type { SessionMetrics } from '../telemetry/uiTelemetry.js';
/**
 * Formatter for streaming JSON output.
 * Emits newline-delimited JSON (JSONL) events to stdout in real-time.
 */
export declare class StreamJsonFormatter {
    /**
     * Formats a single event as a JSON string with newline (JSONL format).
     * @param event - The stream event to format
     * @returns JSON string with trailing newline
     */
    formatEvent(event: JsonStreamEvent): string;
    /**
     * Emits an event directly to stdout in JSONL format.
     * @param event - The stream event to emit
     */
    emitEvent(event: JsonStreamEvent): void;
    /**
     * Converts SessionMetrics to simplified StreamStats format.
     * Includes per-model token breakdowns and aggregated totals.
     * @param metrics - The session metrics from telemetry
     * @param durationMs - The session duration in milliseconds
     * @returns Simplified stats for streaming output
     */
    convertToStreamStats(metrics: SessionMetrics, durationMs: number): StreamStats;
}
