"""Pydantic v2 schemas for chuk-mcp-ui Views."""

from .infer import infer_view, infer_views, ViewSuggestion
from .chart import ChartContent, ChartDataset
from .dashboard import DashboardContent, Panel
from .datatable import DataTableContent, Column, RowAction
from .form import (
    FormContent,
    JSONSchemaField,
    FieldSchema,
    UISchema,
    FieldUI,
    FieldGroup,
)
from .map import MapContent, MapLayer, LayerStyle, PopupTemplate, PopupAction
from .markdown import MarkdownContent
from .pdf import PdfContent
from .split import SplitContent, SplitPanel
from .tabs import TabsContent, Tab
from .video import VideoContent

__all__ = [
    "infer_view",
    "infer_views",
    "ViewSuggestion",
    "ChartContent",
    "ChartDataset",
    "DashboardContent",
    "Panel",
    "DataTableContent",
    "Column",
    "RowAction",
    "FormContent",
    "JSONSchemaField",
    "FieldSchema",
    "UISchema",
    "FieldUI",
    "FieldGroup",
    "MapContent",
    "MapLayer",
    "LayerStyle",
    "PopupTemplate",
    "PopupAction",
    "MarkdownContent",
    "PdfContent",
    "SplitContent",
    "SplitPanel",
    "TabsContent",
    "Tab",
    "VideoContent",
]

# Server-side decorator helpers (optional — requires mcp package)
try:
    from .fastmcp import (  # noqa: F401
        map_tool,
        chart_tool,
        datatable_tool,
        form_tool,
        markdown_tool,
        video_tool,
        pdf_tool,
        dashboard_tool,
        split_tool,
        tabs_tool,
        detail_tool,
        counter_tool,
        code_tool,
        progress_tool,
        confirm_tool,
        json_tool,
        status_tool,
        gallery_tool,
        tree_tool,
        timeline_tool,
        log_tool,
        image_tool,
        compare_tool,
        chat_tool,
        ranked_tool,
        quiz_tool,
        poll_tool,
        alert_tool,
        stepper_tool,
        filter_tool,
        settings_tool,
        embed_tool,
        diff_tool,
        kanban_tool,
        audio_tool,
        carousel_tool,
        heatmap_tool,
        gauge_tool,
        treemap_tool,
        sunburst_tool,
        scatter_tool,
        boxplot_tool,
        pivot_tool,
        crosstab_tool,
        layers_tool,
        timeseries_tool,
        profile_tool,
        minimap_tool,
        gis_legend_tool,
        terminal_tool,
        spectrogram_tool,
        annotation_tool,
        calendar_tool,
        flowchart_tool,
        funnel_tool,
        gantt_tool,
        geostory_tool,
        globe_tool,
        graph_tool,
        investigation_tool,
        neural_tool,
        notebook_tool,
        sankey_tool,
        slides_tool,
        swimlane_tool,
        threed_tool,
        view_tool,
        CDN_BASE,
        VIEW_PATHS,
    )
except ImportError:
    pass
