import type { RequestLogEntry, SSETelemetry } from "../types/index.js";
/** Content visible to the caller; thinking and empty text are not useful output. */
export declare function hasUsefulClaudeContent(value: unknown): boolean;
/** A complete JSON response becomes observable when its body has been read. */
export declare function observeClaudeJsonOutput(metadata: Record<string, unknown>, value: unknown, at?: number): void;
/** Keep unavailable observations distinct from a complete stream with no output. */
export declare function observeClaudeStreamOutput(metadata: Record<string, unknown>, data: SSETelemetry): void;
/** Final records always explain whether useful-output latency was observed. */
export declare function claudeOutputLogFields(metadata: Record<string, unknown>, requestStartTime: number): Pick<RequestLogEntry, "firstUsefulOutputMs" | "firstUsefulOutputStatus" | "firstUsefulOutputEvent" | "firstUsefulOutputUnavailableReason">;
