"""Ports for Cloud credit side effects (hosting gate)."""
from __future__ import annotations

from typing import Protocol
from uuid import UUID


class PublicServingGate(Protocol):
    """Edge serving control for generated apps. Preview hosts stay up."""

    async def set_public_blocked(self, project_ids: list[UUID], blocked: bool) -> None:
        ...

    async def set_owner_bypass(self, project_ids: list[UUID], token: str) -> None:
        ...
