/** * @file Observability Hooks * OpenTelemetry integration for evaluation tracing */ import type { EvaluationEvents, EvaluationSpanAttributes, EvaluationTraceContext, EventHandler, PipelineResult, ScoreResult } from "../../types/index.js"; /** * Observability hooks manager */ export declare class ObservabilityHooks { private _handlers; private _traceContext?; private _enabled; /** * Enable/disable observability */ set enabled(value: boolean); get enabled(): boolean; /** * Set trace context for all events */ setTraceContext(context: EvaluationTraceContext): void; /** * Clear trace context */ clearTraceContext(): void; /** * Get current trace context */ getTraceContext(): EvaluationTraceContext | undefined; /** * Register an event handler */ on(event: K, handler: EventHandler): () => void; /** * Remove an event handler */ off(event: K, handler: EventHandler): void; /** * Emit an event */ emit(event: K, data: Omit): Promise; /** * Clear all handlers */ clear(): void; /** * Get handler count for an event */ listenerCount(event: keyof EvaluationEvents): number; } /** * Global observability hooks instance */ export declare const observabilityHooks: ObservabilityHooks; /** * Helper: Create a console logger hook */ export declare function createConsoleLoggerHook(): void; /** * Helper: Create a metrics collector hook * Accepts the actual MetricsCollector interface from reporting/metricsCollector */ export declare function createMetricsCollectorHook(collector: { recordScorer: (scorerId: string, scorerName: string, result: ScoreResult) => void; recordPipeline: (result: PipelineResult) => void; }): void; /** * OpenTelemetry span attributes */ /** * Create span attributes from scorer result */ export declare function scorerToSpanAttributes(result: ScoreResult): EvaluationSpanAttributes; /** * Create span attributes from pipeline result */ export declare function pipelineToSpanAttributes(result: PipelineResult): EvaluationSpanAttributes;