from .client_wrapper import get_artwork_url as get_artwork_url
from .const import CONTENT_TYPE_MAP as CONTENT_TYPE_MAP, MEDIA_CLASS_MAP as MEDIA_CLASS_MAP, MEDIA_TYPE_NONE as MEDIA_TYPE_NONE, SUPPORTED_COLLECTION_TYPES as SUPPORTED_COLLECTION_TYPES
from _typeshed import Incomplete
from homeassistant.components.media_player import BrowseError as BrowseError, MediaClass as MediaClass, MediaType as MediaType
from homeassistant.components.media_player.browse_media import BrowseMedia as BrowseMedia
from homeassistant.core import HomeAssistant as HomeAssistant
from jellyfin_apiclient_python import JellyfinClient as JellyfinClient
from typing import Any

CONTAINER_TYPES_SPECIFIC_MEDIA_CLASS: dict[str, str]
PLAYABLE_MEDIA_TYPES: Incomplete

async def item_payload(hass: HomeAssistant, client: JellyfinClient, user_id: str, item: dict[str, Any]) -> BrowseMedia: ...
async def build_root_response(hass: HomeAssistant, client: JellyfinClient, user_id: str) -> BrowseMedia: ...
async def build_item_response(hass: HomeAssistant, client: JellyfinClient, user_id: str, media_content_type: str | None, media_content_id: str) -> BrowseMedia: ...
def fetch_item(client: JellyfinClient, item_id: str) -> dict[str, Any] | None: ...
def fetch_items(client: JellyfinClient, params: dict[str, Any]) -> list[dict[str, Any]] | None: ...
async def get_media_info(hass: HomeAssistant, client: JellyfinClient, user_id: str, media_content_type: str | None, media_content_id: str) -> tuple[str | None, list[dict[str, Any]] | None, str | None]: ...
