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 homeassistant.util import dt as dt
from typing import Any

_LOGGER: Incomplete
MAILBOX_NAME: str

async def async_get_handler(hass: HomeAssistant, config: ConfigType, discovery_info: Union[DiscoveryInfoType, 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: ...
