"""Core tracing, async tracing, instrumentation, and plugin APIs."""

from .tracer import (
    CallEdge,
    CallGraph,
    CallNode,
    CallTracer,
    clear_trace,
    get_current_graph,
    trace,
    trace_scope,
)
from .async_tracer import (
    AsyncCallGraph,
    AsyncCallNode,
    gather_traced,
    get_async_stats,
    trace_async,
    trace_scope_async,
)
from .auto_instrumentation import (
    AutoInstrumentationManager,
    AutoInstrumentor,
    Boto3Instrumentor,
    HTTPInstrumentor,
    RedisInstrumentor,
    auto_instrumentation,
    disable_auto_instrumentation,
    enable_auto_instrumentation,
    get_auto_instrumentation_manager,
)
from .plugin_system import (
    AnalyzerHook,
    ExporterHook,
    PluginHook,
    PluginInfo,
    PluginManager,
    UIWidgetHook,
    complexity_analyzer,
    csv_exporter,
    get_plugin_manager,
    register_analyzer,
    register_exporter,
    register_hook,
    register_ui_widget,
)

__all__ = [
    "trace",
    "trace_scope",
    "get_current_graph",
    "clear_trace",
    "CallGraph",
    "CallNode",
    "CallEdge",
    "CallTracer",
    "trace_async",
    "trace_scope_async",
    "gather_traced",
    "get_async_stats",
    "AsyncCallGraph",
    "AsyncCallNode",
    "get_auto_instrumentation_manager",
    "enable_auto_instrumentation",
    "disable_auto_instrumentation",
    "auto_instrumentation",
    "AutoInstrumentationManager",
    "AutoInstrumentor",
    "HTTPInstrumentor",
    "RedisInstrumentor",
    "Boto3Instrumentor",
    "get_plugin_manager",
    "register_analyzer",
    "register_exporter",
    "register_ui_widget",
    "register_hook",
    "PluginManager",
    "PluginHook",
    "AnalyzerHook",
    "ExporterHook",
    "UIWidgetHook",
    "PluginInfo",
    "complexity_analyzer",
    "csv_exporter",
]
