from __future__ import annotations
from typing import AsyncIterable, Iterable, Iterator, AsyncIterator

from .discovery_result import MaybeDiscoveryResult

class DeviceDiscoveryIter(Iterator[MaybeDiscoveryResult], AsyncIterator[MaybeDiscoveryResult]):
    def __iter__(self) -> DeviceDiscoveryIter: ...
    def __aiter__(self) -> DeviceDiscoveryIter: ...
    def __next__(self) -> MaybeDiscoveryResult: ...
    async def __anext__(self) -> MaybeDiscoveryResult: ...

class DeviceDiscovery(Iterable[MaybeDiscoveryResult], AsyncIterable[MaybeDiscoveryResult]):
    def __iter__(self) -> DeviceDiscoveryIter: ...
    def __aiter__(self) -> DeviceDiscoveryIter: ...
