"""Hosting execution plane — two-plane architecture.

Routing plane  (W4P KV + proxy Workers): ``CloudflareRoutingProvider``
Deployment plane (CF Pages auto-build):  ``CloudflarePagesProvider``
"""
from src.domain.hosting.deployment_targets import (
    DeploymentTargetKind,
    PagesBuildConfig,
    decide_target_kind,
    get_pages_build_config,
    pages_preview_branch_url,
    pages_production_url,
    pages_project_name,
)
from src.domain.hosting.factory import get_deployment_provider, get_hosting_provider, get_routing_provider
from src.domain.hosting.protocol import DeploymentPlaneProvider, HostingProvider, RoutingPlaneProvider
from src.domain.hosting.types import DeployArtifact, DeployJobContext, DeploymentOutcome, DeploymentTarget, RoutingDescriptor

__all__ = [
    # types
    "DeployArtifact",
    "DeployJobContext",
    "DeploymentOutcome",
    "DeploymentTarget",
    "DeploymentTargetKind",
    "PagesBuildConfig",
    "RoutingDescriptor",
    # protocols
    "DeploymentPlaneProvider",
    "HostingProvider",
    "RoutingPlaneProvider",
    # factories
    "get_deployment_provider",
    "get_hosting_provider",
    "get_routing_provider",
    # decision helpers
    "decide_target_kind",
    "get_pages_build_config",
    "pages_preview_branch_url",
    "pages_production_url",
    "pages_project_name",
]
