/**
 * Spans → Trajectory adapter (for the `profile` command).
 *
 * Converts a live coding-agent session's OTel spans into the same
 * `TrajectoryStep[]` shape the evaluation/judge pipeline already consumes, so a
 * real session can be analyzed with the very evaluator a customer uses on
 * synthetic evals — no separate runtime, same `improvementStrategies[]` schema.
 *
 * Two span shapes are handled:
 *   - **Claude Code native** — content lives in span *attributes* keyed by
 *     `span.type` (`interaction`, `tool`, `tool.execution`, `llm_request`,
 *     `tool.blocked_on_user`). This is what real `claude_code.*` telemetry
 *     emits; verified against a live cluster.
 *   - **Generic / event-based** — OTel GenAI `llm.request`/`tool` spans with
 *     events, via the shared `extractMessagesFromSpans` helper.
 *
 * Also runs a cheap, deterministic "signal scan" so the downstream reasoner
 * (the in-session coding agent, or a headless judge) gets structured evidence
 * instead of re-deriving it from raw spans.
 */
import { Span, TrajectoryStep } from '../../types/index.js';
export interface SessionSignal {
    id: string;
    title: string;
    severity: 'high' | 'medium' | 'low';
    count: number;
    evidence: string;
}
/** Convert session spans into a chronological `TrajectoryStep[]`. */
export declare function spansToTrajectory(spans: Span[], serviceName?: string): TrajectoryStep[];
/**
 * Cheap, deterministic signal scan. Empty result ⇒ nothing notable happened
 * (caller may skip the LLM).
 */
export declare function scanSessionSignals(spans: Span[], serviceName?: string): SessionSignal[];
//# sourceMappingURL=spansToTrajectory.d.ts.map