"""Models for Zeroconf."""

from zeroconf import Zeroconf
from zeroconf.asyncio import AsyncZeroconf


class HaZeroconf(Zeroconf):
    """Zeroconf that cannot be closed."""

    def close(self) -> None:
        """Fake method to avoid integrations closing it."""

    ha_close = Zeroconf.close


class HaAsyncZeroconf(AsyncZeroconf):
    """Home Assistant version of AsyncZeroconf."""

    async def async_close(self) -> None:
        """Fake method to avoid integrations closing it."""

    ha_async_close = AsyncZeroconf.async_close