from . import core as core
from _typeshed import Incomplete
from collections.abc import Generator

class Stream:
    s: Incomplete
    e: Incomplete
    out_buf: bytes
    def __init__(self, s, e=...) -> None: ...
    def get_extra_info(self, v): ...
    async def __aenter__(self): ...
    async def __aexit__(self, exc_type, exc, tb) -> None: ...
    def close(self) -> None: ...
    async def wait_closed(self) -> None: ...
    def read(self, n: int = ...) -> Generator[Incomplete, None, Incomplete]: ...
    def readinto(self, buf) -> Generator[Incomplete, None, Incomplete]: ...
    def readexactly(self, n) -> Generator[Incomplete, None, Incomplete]: ...
    def readline(self) -> Generator[Incomplete, None, Incomplete]: ...
    def write(self, buf) -> None: ...
    def drain(self) -> Generator[Incomplete, Incomplete, Incomplete]: ...

StreamReader = Stream
StreamWriter = Stream

def open_connection(host, port) -> Generator[Incomplete, None, Incomplete]: ...

class Server:
    async def __aenter__(self): ...
    async def __aexit__(self, exc_type, exc, tb) -> None: ...
    def close(self) -> None: ...
    async def wait_closed(self) -> None: ...
    async def _serve(self, s, cb) -> Generator[Incomplete, None, None]: ...

async def start_server(cb, host, port, backlog: int = ...): ...
async def stream_awrite(self, buf, off: int = ..., sz: int = ...) -> None: ...
