from _typeshed import Incomplete
from homeassistant.components.mailbox import CONTENT_TYPE_MPEG as CONTENT_TYPE_MPEG, Mailbox as Mailbox, StreamError as StreamError
from homeassistant.core import HomeAssistant as HomeAssistant
from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
from typing import Any

_LOGGER: Incomplete
MAILBOX_NAME: str

async def async_get_handler(hass: HomeAssistant, config: ConfigType, discovery_info: DiscoveryInfoType | None = None) -> Mailbox: ...

class DemoMailbox(Mailbox):
    _messages: Incomplete
    def __init__(self, hass: HomeAssistant, name: str) -> None: ...
    @property
    def media_type(self) -> str: ...
    @property
    def can_delete(self) -> bool: ...
    @property
    def has_media(self) -> bool: ...
    async def async_get_media(self, msgid: str) -> bytes: ...
    async def async_get_messages(self) -> list[dict[str, Any]]: ...
    async def async_delete(self, msgid: str) -> bool: ...
