"""MCP (Model Context Protocol) support for Hatch.

This module provides MCP host configuration management functionality,
including backup and restore capabilities for MCP server configurations,
decorator-based strategy registration, and consolidated Pydantic models.

Architecture Notes (v2.0 - Unified Adapter Architecture):
- MCPServerConfig is the single unified model for all MCP configurations
- Host-specific serialization is handled by adapters in hatch/mcp_host_config/adapters/
- Legacy host-specific models (MCPServerConfigGemini, etc.) have been removed
"""

from .backup import MCPHostConfigBackupManager
from .models import (
    MCPHostType,
    MCPServerConfig,
    HostConfiguration,
    EnvironmentData,
    PackageHostConfiguration,
    EnvironmentPackageEntry,
    ConfigurationResult,
    SyncResult,
)
from .host_management import (
    MCPHostRegistry,
    MCPHostStrategy,
    MCPHostConfigurationManager,
    register_host_strategy,
)
from .reporting import (
    FieldOperation,
    ConversionReport,
    generate_conversion_report,
    display_report,
)
from .adapters import AdapterRegistry, get_adapter, get_default_registry

# Import strategies to trigger decorator registration
from . import strategies  # noqa: F401

__all__ = [
    "MCPHostConfigBackupManager",
    # Core models
    "MCPHostType",
    "MCPServerConfig",
    "HostConfiguration",
    "EnvironmentData",
    "PackageHostConfiguration",
    "EnvironmentPackageEntry",
    "ConfigurationResult",
    "SyncResult",
    # Adapter architecture
    "AdapterRegistry",
    "get_adapter",
    "get_default_registry",
    # User feedback reporting
    "FieldOperation",
    "ConversionReport",
    "generate_conversion_report",
    "display_report",
    # Host management
    "MCPHostRegistry",
    "MCPHostStrategy",
    "MCPHostConfigurationManager",
    "register_host_strategy",
]
