"""Acherion public API for framework-agnostic graph logic."""

from __future__ import annotations

from acherion.events import (
    AcherionExternalEvent,
    RUN_EVENT_KEY,
    compose_acherion_external_events,
    default_acherion_external_events,
)
from acherion.host import (
    AcherionCodegenHost,
    AcherionConfigRenderHost,
    AcherionGraphSyncHost,
    AcherionHost,
    ComposedAcherionHost,
    compose_acherion_host,
)
from acherion.catalog.modules import (
    CatalogModuleSpec,
    CatalogScanSpec,
    register_catalog_module_specs,
)
from acherion.node import (
    AcherionNodeDefinition,
    CompositeNodeDefinition,
    ComputeNodeDefinition,
    EffectNodeDefinition,
    FlowNodeDefinition,
    ObjectNodeDefinition,
    SystemSinkNodeDefinition,
    SystemSourceNodeDefinition,
    UINodeDefinition,
    acherion_auto_identifier,
    acherion_node_identifier,
    custom_function_params,
    literal_params,
    pin,
    source_key_params,
)
from acherion.preview import (
    AcherionPreviewValueAdapter,
    AcherionPreviewRunResult,
    register_preview_value_adapter,
)
from acherion.theme import (
    AcherionThemeOverrides,
    acherion_plotly_template_payload,
    acherion_ui_colors,
    build_acherion_theme_override_css,
    build_embedded_acherion_theme_css,
    build_scoped_acherion_theme_css,
    normalize_acherion_theme_overrides,
)
from acherion.registry import (
    AcherionNodeRegistry,
    disable_acherion_node_kind,
    enable_acherion_node_kind,
    get_acherion_disabled_node_kinds,
    get_acherion_node_definition,
    get_acherion_node_definitions,
    get_acherion_enabled_node_definitions,
    get_acherion_node_registry,
    is_acherion_manual_add_kind,
    is_acherion_node_kind_enabled,
    is_acherion_producer_kind,
    is_acherion_system_sink_kind,
    is_acherion_system_source_kind,
    register_acherion_node_definition,
    set_acherion_disabled_node_kinds,
)
from acherion.validation import (
    AcherionValidationExtension,
    register_acherion_validation_extension,
)
from acherion.model import (
    AcherionGraph,
    AcherionNode,
)
from acherion.standalone_host import (
    StandaloneAcherionHost,
    compile_acherion_graph,
    execute_acherion_graph,
    load_acherion_graph_namespace,
)

__all__ = [
    'AcherionCodegenHost',
    'AcherionConfigRenderHost',
    'AcherionExternalEvent',
    'AcherionGraph',
    'AcherionGraphSyncHost',
    'AcherionHost',
    'ComposedAcherionHost',
    'AcherionNode',
    'AcherionNodeDefinition',
    'AcherionNodeRegistry',
    'AcherionPreviewValueAdapter',
    'AcherionPreviewRunResult',
    'AcherionThemeOverrides',
    'AcherionValidationExtension',
    'CatalogModuleSpec',
    'CatalogScanSpec',
    'CompositeNodeDefinition',
    'acherion_plotly_template_payload',
    'acherion_ui_colors',
    'compile_acherion_graph',
    'compose_acherion_host',
    'compose_acherion_external_events',
    'ComputeNodeDefinition',
    'disable_acherion_node_kind',
    'enable_acherion_node_kind',
    'EffectNodeDefinition',
    'execute_acherion_graph',
    'FlowNodeDefinition',
    'get_acherion_disabled_node_kinds',
    'ObjectNodeDefinition',
    'SystemSinkNodeDefinition',
    'SystemSourceNodeDefinition',
    'StandaloneAcherionHost',
    'UINodeDefinition',
    'acherion_auto_identifier',
    'acherion_node_identifier',
    'build_acherion_theme_override_css',
    'build_embedded_acherion_theme_css',
    'build_scoped_acherion_theme_css',
    'custom_function_params',
    'default_acherion_external_events',
    'get_acherion_node_definition',
    'get_acherion_node_definitions',
    'get_acherion_enabled_node_definitions',
    'get_acherion_node_registry',
    'is_acherion_manual_add_kind',
    'is_acherion_node_kind_enabled',
    'is_acherion_producer_kind',
    'is_acherion_system_sink_kind',
    'is_acherion_system_source_kind',
    'literal_params',
    'load_acherion_graph_namespace',
    'normalize_acherion_theme_overrides',
    'pin',
    'register_acherion_validation_extension',
    'register_acherion_node_definition',
    'register_catalog_module_specs',
    'register_preview_value_adapter',
    'RUN_EVENT_KEY',
    'set_acherion_disabled_node_kinds',
    'source_key_params',
]