from .const import DATA_CAMERAS as DATA_CAMERAS, DATA_EVENTS as DATA_EVENTS, DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER
from _typeshed import Incomplete
from homeassistant.components.media_player import BrowseError as BrowseError, MediaClass as MediaClass, MediaType as MediaType
from homeassistant.components.media_source.error import MediaSourceError as MediaSourceError, Unresolvable as Unresolvable
from homeassistant.components.media_source.models import BrowseMediaSource as BrowseMediaSource, MediaSource as MediaSource, MediaSourceItem as MediaSourceItem, PlayMedia as PlayMedia
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback

_LOGGER: Incomplete
MIME_TYPE: str

class IncompatibleMediaSource(MediaSourceError): ...

async def async_get_media_source(hass: HomeAssistant) -> NetatmoSource: ...

class NetatmoSource(MediaSource):
    name: str
    hass: Incomplete
    events: Incomplete
    def __init__(self, hass: HomeAssistant) -> None: ...
    async def async_resolve_media(self, item: MediaSourceItem) -> PlayMedia: ...
    async def async_browse_media(self, item: MediaSourceItem) -> BrowseMediaSource: ...
    def _browse_media(self, source: str, camera_id: str, event_id: int | None) -> BrowseMediaSource: ...
    def _build_item_response(self, source: str, camera_id: str, event_id: int | None = None) -> BrowseMediaSource: ...

def remove_html_tags(text: str) -> str: ...
def async_parse_identifier(item: MediaSourceItem) -> tuple[str, str, int | None]: ...
