"""ExposoGraph.

Build, curate, and export carcinogen metabolism knowledge graphs
using LLM-powered extraction and manual entry.

Parts of this documentation and code were created with assistance
from ChatGPT Codex and Claude Code.
"""

from .branding import (
    APP_NAME,
    APP_TAGLINE,
    APP_VERSION,
    CONTACT_EMAIL,
    COPYRIGHT_HOLDER,
    DEVELOPED_BY,
)

__version__ = APP_VERSION

from .config import (
    AppMode,
    GraphMode,
    GraphVisibility,
    LLMProvider,
    get_app_mode,
    normalize_app_mode,
    normalize_graph_mode,
    normalize_graph_visibility,
    persistence_enabled,
)
from .cytoscape_adapter import (
    CytoscapeBundle,
    ViewerLayoutMode,
    build_cytoscape_bundle,
    build_cytoscape_elements,
    build_cytoscape_metadata,
    compute_viewer_positions,
    load_cytoscape_bundle,
    load_viewer_positions,
    normalize_viewer_layout_mode,
    viewer_layout,
    viewer_stylesheet,
    write_cytoscape_bundle,
    write_viewer_positions,
)
from .db_clients import CTDClient, IARCClassifier, IARCGroup, KEGGClient
from .engine import GraphEngine
from .example_graphs import (
    ArchitectureInventoryGroup,
    ArchitectureSummary,
    build_androgen_module_engine,
    build_androgen_module_graph,
    build_full_legends_architecture_summary,
    build_full_legends_engine,
    build_full_legends_graph,
    write_full_legends_exports,
)
from .androgen_publication_figure import render_androgen_publication_figure
from .exemplar_pathways_figure import render_exemplar_pathways_figure
from .pharmacogenomic_risk_figure import (
    PharmacogenomicRiskClassProfile,
    PharmacogenomicRiskGeneProfile,
    build_pharmacogenomic_risk_class_profiles,
    build_pharmacogenomic_risk_gene_profiles,
    pharmacogenomic_risk_class_rows,
    pharmacogenomic_risk_gene_rows,
    render_pharmacogenomic_risk_figure,
)
from .exporter import (
    ensure_viewer_bundle,
    export_viewer_bundle,
    parse_graph_artifact,
    parse_graph_data_js,
    parse_graph_data_text,
    parse_graph_html,
    to_gexf,
    to_graph_data_js,
    to_interactive_html,
    to_interactive_html_string,
    to_json,
    to_plotly_figure,
    to_plotly_html,
    to_plotly_html_string,
)
from .figure_architecture import (
    ArchitectureEdgeLegendItem,
    ArchitectureFigureData,
    ArchitectureListItem,
    build_architecture_figure_data,
    paper_architecture_overrides,
    render_architecture_figure,
    save_architecture_figure,
)
from .graph_analysis import (
    MetabolismChain,
    VariantImpact,
    all_shortest_paths,
    centrality,
    metabolism_chain,
    pathway_subgraph,
    shortest_path,
    variant_impact_score,
)
from .graph_filters import (
    filter_knowledge_graph,
    filtered_engine,
    graph_visibility_label,
)
from .grounding import (
    GroundingMatch,
    build_default_grounding_index,
    build_graph_grounding_index,
    build_iarc_grounding_index,
    ground_knowledge_graph,
    ground_node,
    normalize_grounding_key,
    prepare_knowledge_graph,
)
from .llm_backend import LLMBackend, OllamaBackend, OpenAIBackend, UsageRecord
from .llm_extractor import extract_graph, extract_graph_with_usage
from .models import (
    CurationConfidence,
    CurationRecord,
    CurationStatus,
    Edge,
    EdgeType,
    KnowledgeGraph,
    MatchStatus,
    Node,
    NodeType,
    ProvenanceRecord,
    RecordOrigin,
)
from .reference_data import (
    ACTIVITY_SCORE_METADATA,
    ACTIVITY_SCORES,
    CURATION_SOURCE_MANIFEST,
    REFERENCE_KEGG_PATHWAYS,
    build_full_panel,
    build_tier1_panel,
    build_tier2_panel,
    get_activity_score_metadata,
    get_activity_score_references,
    get_activity_scores,
)
from .seeder import seed_from_ctd, seed_from_kegg_pathway, seed_iarc_classification
from .storage import GraphRepository, GraphRevision, GraphRevisionSummary
from .viewer_dash import (
    apply_viewer_filters,
    build_detail_payload,
    create_dash_viewer_app,
    launch_dash_viewer,
)

__all__ = [
    "ACTIVITY_SCORE_METADATA",
    "ACTIVITY_SCORES",
    "APP_NAME",
    "ArchitectureInventoryGroup",
    "ArchitectureSummary",
    "ArchitectureEdgeLegendItem",
    "ArchitectureFigureData",
    "ArchitectureListItem",
    "CTDClient",
    "APP_TAGLINE",
    "APP_VERSION",
    "AppMode",
    "CONTACT_EMAIL",
    "COPYRIGHT_HOLDER",
    "CURATION_SOURCE_MANIFEST",
    "CurationConfidence",
    "CurationRecord",
    "CurationStatus",
    "CytoscapeBundle",
    "DEVELOPED_BY",
    "Edge",
    "EdgeType",
    "GraphMode",
    "GraphEngine",
    "GraphVisibility",
    "GraphRepository",
    "IARCClassifier",
    "IARCGroup",
    "GroundingMatch",
    "GraphRevision",
    "GraphRevisionSummary",
    "KEGGClient",
    "KnowledgeGraph",
    "LLMBackend",
    "LLMProvider",
    "MatchStatus",
    "MetabolismChain",
    "Node",
    "NodeType",
    "OllamaBackend",
    "OpenAIBackend",
    "PharmacogenomicRiskClassProfile",
    "PharmacogenomicRiskGeneProfile",
    "ProvenanceRecord",
    "RecordOrigin",
    "REFERENCE_KEGG_PATHWAYS",
    "VariantImpact",
    "ViewerLayoutMode",
    "build_full_panel",
    "build_tier1_panel",
    "build_tier2_panel",
    "build_cytoscape_bundle",
    "build_cytoscape_elements",
    "build_cytoscape_metadata",
    "ensure_viewer_bundle",
    "export_viewer_bundle",
    "all_shortest_paths",
    "apply_viewer_filters",
    "build_architecture_figure_data",
    "build_detail_payload",
    "build_androgen_module_engine",
    "build_androgen_module_graph",
    "build_full_legends_architecture_summary",
    "build_full_legends_engine",
    "build_full_legends_graph",
    "build_pharmacogenomic_risk_class_profiles",
    "build_pharmacogenomic_risk_gene_profiles",
    "centrality",
    "UsageRecord",
    "compute_viewer_positions",
    "create_dash_viewer_app",
    "extract_graph",
    "extract_graph_with_usage",
    "filter_knowledge_graph",
    "filtered_engine",
    "build_default_grounding_index",
    "build_graph_grounding_index",
    "build_iarc_grounding_index",
    "get_activity_score_metadata",
    "get_activity_score_references",
    "get_activity_scores",
    "get_app_mode",
    "ground_knowledge_graph",
    "ground_node",
    "graph_visibility_label",
    "prepare_knowledge_graph",
    "launch_dash_viewer",
    "load_cytoscape_bundle",
    "load_viewer_positions",
    "metabolism_chain",
    "normalize_app_mode",
    "normalize_graph_mode",
    "normalize_graph_visibility",
    "normalize_grounding_key",
    "normalize_viewer_layout_mode",
    "pathway_subgraph",
    "parse_graph_artifact",
    "parse_graph_data_js",
    "parse_graph_data_text",
    "parse_graph_html",
    "paper_architecture_overrides",
    "pharmacogenomic_risk_class_rows",
    "pharmacogenomic_risk_gene_rows",
    "persistence_enabled",
    "render_androgen_publication_figure",
    "render_exemplar_pathways_figure",
    "render_architecture_figure",
    "render_pharmacogenomic_risk_figure",
    "save_architecture_figure",
    "seed_from_ctd",
    "seed_from_kegg_pathway",
    "seed_iarc_classification",
    "shortest_path",
    "to_gexf",
    "to_graph_data_js",
    "to_interactive_html",
    "to_interactive_html_string",
    "to_json",
    "to_plotly_figure",
    "to_plotly_html",
    "to_plotly_html_string",
    "variant_impact_score",
    "viewer_layout",
    "viewer_stylesheet",
    "write_full_legends_exports",
    "write_cytoscape_bundle",
    "write_viewer_positions",
]
