/**
 * tracking/gen-ai — OpenTelemetry GenAI semantic conventions wrapper.
 *
 * https://opentelemetry.io/docs/specs/semconv/gen-ai/
 *
 * Scope: thin helpers that create spans with the standard `gen_ai.*`
 * attribute set. Each helper returns the span so the caller can add
 * provider-specific attributes and call `.end()` when done — mirrors the
 * `@opentelemetry/api` ergonomics.
 *
 * Custom Vauban attributes (not in spec):
 *   - gen_ai.agent.run_id     (our runId; used for replay linkage)
 *   - gen_ai.agent.compacted  (event marker — emitted by AgentLoop)
 */
import { type Span, type Tracer } from "@opentelemetry/api";
export declare function getTracer(name?: string): Tracer;
export declare function llmSpan(tracer: Tracer, request: {
    provider: string;
    model: string;
    maxTokens?: number;
    messageCount?: number;
    temperature?: number;
    topP?: number;
    seed?: number;
}): Span;
export declare function recordLlmUsage(span: Span, usage: {
    inputTokens: number;
    outputTokens: number;
    latencyMs: number;
    finishReason?: string;
    responseId?: string;
}): void;
export declare function toolSpan(tracer: Tracer, toolName: string, args: unknown): Span;
export declare function recordToolResult(span: Span, result: {
    success: boolean;
    errorMessage?: string;
    outputSizeBytes?: number;
}): void;
export declare function agentSpan(tracer: Tracer, opts: {
    agentId: string;
    agentVersion: string;
    runId: string;
}): Span;
/**
 * recordOutcome — convenience helper to stamp the final outcome of an agent
 * run onto an existing span. Call from the loop's finally block.
 */
export declare function recordOutcome(span: Span, outcome: {
    stopReason: string;
    inputTokens: number;
    outputTokens: number;
    stepCount?: number;
}): void;
//# sourceMappingURL=gen-ai.d.ts.map