"""Telemetry module — OpenTelemetry integration (optional)

All tracing and metrics are no-op when opentelemetry packages are not installed.
"""

from agentkit.telemetry.tracing import (
    get_tracer,
    start_span,
    trace_agent,
    trace_tool,
    trace_llm,
    trace_pipeline_step,
    _OTEL_AVAILABLE,
)
from agentkit.telemetry.metrics import (
    agent_request_counter,
    agent_duration_histogram,
    llm_token_histogram,
    tool_duration_histogram,
    pipeline_step_histogram,
)
from agentkit.telemetry.setup import setup_telemetry
from agentkit.telemetry.tracer import TelemetryConfig, NoOpTracer

__all__ = [
    "get_tracer",
    "start_span",
    "trace_agent",
    "trace_tool",
    "trace_llm",
    "trace_pipeline_step",
    "agent_request_counter",
    "agent_duration_histogram",
    "llm_token_histogram",
    "tool_duration_histogram",
    "pipeline_step_histogram",
    "setup_telemetry",
    "_OTEL_AVAILABLE",
    "TelemetryConfig",
    "NoOpTracer",
]
