/**
 * OpenTelemetry Distributed Tracing Module
 *
 * Comprehensive tracing infrastructure for the Vorion security platform.
 *
 * Features:
 * - SDK initialization with configurable exporters (OTLP/Jaeger)
 * - Sampling strategies (always, probability, rate-limiting, security-aware)
 * - Span utilities with automatic context propagation
 * - W3C Trace Context and B3 propagation support
 * - Auto-instrumentation for HTTP, Redis, PostgreSQL
 * - Custom instrumentation for security operations
 * - Fastify middleware for request tracing
 * - Prometheus metrics bridge for observability correlation
 *
 * @example
 * ```typescript
 * import {
 *   initializeTracer,
 *   withSpan,
 *   getIntentTracer,
 *   tracingMiddleware,
 * } from '@/common/telemetry';
 *
 * // Initialize tracer at application startup
 * initializeTracer({
 *   serviceName: 'vorion-api',
 *   environment: 'production',
 *   samplingStrategy: 'probability',
 *   samplingRate: 0.1,
 * });
 *
 * // Register Fastify middleware
 * await fastify.register(tracingMiddleware);
 *
 * // Use span utilities
 * const result = await withSpan(
 *   getIntentTracer(),
 *   'process-intent',
 *   async (span) => {
 *     span.setAttribute('intent.id', intentId);
 *     return await processIntent(intent);
 *   }
 * );
 * ```
 *
 * @packageDocumentation
 */
export { initializeTracer, shutdownTracer, isTracerInitialized, getDefaultTelemetryConfig, getTracer, getTracerProvider, getIntentTracer, getPolicyTracer, getSecurityTracer, getApiTracer, VorionTracers, RateLimitingSampler, SecurityAwareSampler, type TelemetryConfig, type SamplingStrategy, } from './tracer.js';
export { createSpan, withSpan, withSpanSync, addSpanAttributes, addSpanAttribute, recordException, addSpanEvent, createSpanLink, createSpanLinks, getActiveSpan, getSpanContext, runWithContext, getActiveContext, withIntentSpan, withSecuritySpan, withPolicySpan, withDatabaseSpan, withCacheSpan, VorionSpanAttributes, VorionSpanEvents, type CreateSpanOptions, } from './spans.js';
export { initializePropagation, extractContextFromHeaders, injectContextToHeaders, extractContextFromGrpcMetadata, injectContextToGrpcMetadata, parseTraceparent, buildTraceparent, W3CHeaders, parseB3SingleHeader, buildB3SingleHeader, B3SingleHeader, B3MultiHeaders, getTraceContext, createContextWithRemoteSpan, extractQueuePropagationContext, injectPropagationToJobData, extractContextFromJobData, runWithJobContext, addTraceToRequest, VorionBaggageKeys, type HttpHeaders, type GrpcMetadata, type PropagationCarrier, type PropagationFormat, type QueuePropagationContext, type TracedRequestConfig, } from './propagation.js';
export { getInstrumentations, getNodeInstrumentations, instrumentSecurityOperation, instrumentAuth, instrumentAuthz, instrumentPolicyEval, instrumentTrustEval, instrumentEscalation, instrumentTokenValidation, instrumentMfaVerification, recordSecurityEvent, recordAuthSuccess, recordAuthFailure, recordPolicyDenial, recordSecurityViolation, instrumentDbQuery, instrumentCacheOp, instrumentQueueProduce, instrumentQueueConsume, type InstrumentationConfig, type HttpInstrumentationConfig, type FastifyInstrumentationConfig, type RedisInstrumentationConfig, type PostgresInstrumentationConfig, type SecurityOperationType, type SecurityOperationContext, } from './instrumentation.js';
export { tracingMiddleware, runInRequestContext, createRequestChildSpan, withRequestSpan, addRequestSpanAttributes, addRequestSpanEvent, recordRequestError, getRequestTraceId, getRequestSpanId, getRequestTracingSecurityContext, type TracingMiddlewareOptions, type TracingSecurityContext, type TracedFastifyRequest, } from './middleware.js';
export { initializeMetricsBridge, recordSpanMetrics, recordSpanError, recordIntentSpanMetrics, recordPolicySpanMetrics, recordSecuritySpanMetrics, recordDbSpanMetrics, recordCacheSpanMetrics, recordHttpSpanMetrics, recordSecurityEvent as recordSecurityEventMetric, recordPolicyDecision, recordTrustEvaluation, incrementActiveSpans, decrementActiveSpans, incrementActiveHttpRequests, decrementActiveHttpRequests, processSpanForMetrics, getTraceMetrics, spanDurationHistogram, intentSpanDuration, policySpanDuration, securitySpanDuration, dbSpanDuration, cacheSpanDuration, httpSpanDuration, spanCounter, spanErrorCounter, securityEventCounter, policyDecisionCounter, trustEvalCounter, activeSpansGauge, activeHttpRequests, type SpanMetricLabels, type SpanEndData, } from './metrics-bridge.js';
import { type TelemetryConfig } from './tracer.js';
import { type PropagationFormat } from './propagation.js';
/**
 * Initialize all telemetry components
 *
 * Convenience function that initializes the tracer, propagation,
 * and metrics bridge in one call.
 *
 * @param config - Optional telemetry configuration overrides
 * @param propagationFormat - Propagation format (default: composite)
 *
 * @example
 * ```typescript
 * await initializeTelemetry({
 *   samplingRate: 0.1,
 *   enableConsoleExporter: false,
 * });
 * ```
 */
export declare function initializeTelemetry(config?: Partial<TelemetryConfig>, propagationFormat?: PropagationFormat): void;
/**
 * Shutdown all telemetry components
 *
 * Should be called during application shutdown to ensure
 * all pending traces are exported.
 */
export declare function shutdownTelemetry(): Promise<void>;
//# sourceMappingURL=index.d.ts.map