/**
 * OTel TracerProvider management for evaluation telemetry.
 *
 * Manages a singleton TracerProvider that exports evaluation spans
 * via OTLP/HTTP to a collector, or directly to OpenSearch when an
 * observability data source is configured.
 */
import { type Tracer } from '@opentelemetry/api';
import { type OpenSearchExporterConfig } from './opensearchExporter.js';
/**
 * Configuration for evaluation telemetry
 */
export interface EvalTelemetryConfig {
    /** Whether evaluation telemetry is enabled */
    enabled: boolean;
    /** OTLP exporter endpoint (e.g., http://localhost:4318/v1/traces) */
    exporterEndpoint: string;
    /** Optional headers for the OTLP exporter (e.g., auth) */
    exporterHeaders?: Record<string, string>;
    /** Service name for resource attributes */
    serviceName?: string;
    /** OpenSearch direct export config (derived from observability data source) */
    opensearch?: OpenSearchExporterConfig;
}
/**
 * Resolve telemetry config from environment variables and optional user config
 */
export declare function resolveEvalTelemetryConfig(userConfig?: Partial<EvalTelemetryConfig>): EvalTelemetryConfig;
/**
 * Initialize the evaluation TracerProvider.
 * Safe to call multiple times — subsequent calls are no-ops.
 *
 * When an OpenSearch config is provided (from observability data source),
 * spans are written directly to OpenSearch in OSIS-compatible format.
 * Otherwise, falls back to OTLP/HTTP exporter.
 */
export declare function initEvalTracerProvider(config: EvalTelemetryConfig): void;
/**
 * Get the evaluation tracer. Returns a no-op tracer if telemetry is disabled.
 */
export declare function getEvalTracer(): Tracer;
/**
 * Check if evaluation telemetry is enabled
 */
export declare function isEvalTelemetryEnabled(): boolean;
/**
 * Force-flush any buffered spans to the exporter.
 * Call after emitting spans to ensure they are exported promptly.
 */
export declare function flushEvalTracer(): Promise<void>;
/**
 * Flush pending spans and shut down the TracerProvider.
 */
export declare function shutdownEvalTracer(): Promise<void>;
//# sourceMappingURL=provider.d.ts.map