--- /dev/null
+import sys\r
+from typing import Any, Iterable, Iterator, Optional, NoReturn, Callable\r
+\r
+from wsgiref.types import WSGIApplication, InputStream, ErrorStream\r
+\r
+class WSGIWarning(Warning): ...\r
+\r
+def validator(application: WSGIApplication) -> WSGIApplication: ...\r
+\r
+class InputWrapper:\r
+ input: InputStream\r
+ def __init__(self, wsgi_input: InputStream) -> None: ...\r
+ if sys.version_info < (3,):\r
+ def read(self, size: int = ...) -> bytes: ...\r
+ def readline(self) -> bytes: ...\r
+ else:\r
+ def read(self, size: int) -> bytes: ...\r
+ def readline(self, size: int = ...) -> bytes: ...\r
+ def readlines(self, hint: int = ...) -> bytes: ...\r
+ def __iter__(self) -> Iterable[bytes]: ...\r
+ def close(self) -> NoReturn: ...\r
+\r
+class ErrorWrapper:\r
+ errors: ErrorStream\r
+ def __init__(self, wsgi_errors: ErrorStream) -> None: ...\r
+ def write(self, s: str) -> None: ...\r
+ def flush(self) -> None: ...\r
+ def writelines(self, seq: Iterable[str]) -> None: ...\r
+ def close(self) -> NoReturn: ...\r
+\r
+class WriteWrapper:\r
+ writer: Callable[[bytes], Any]\r
+ def __init__(self, wsgi_writer: Callable[[bytes], Any]) -> None: ...\r
+ def __call__(self, s: bytes) -> None: ...\r
+\r
+class PartialIteratorWrapper:\r
+ iterator: Iterator[bytes]\r
+ def __init__(self, wsgi_iterator: Iterator[bytes]) -> None: ...\r
+ def __iter__(self) -> IteratorWrapper: ...\r
+\r
+class IteratorWrapper:\r
+ original_iterator: Iterator[bytes]\r
+ iterator: Iterator[bytes]\r
+ closed: bool\r
+ check_start_response: Optional[bool]\r
+ def __init__(self, wsgi_iterator: Iterator[bytes], check_start_response: Optional[bool]) -> None: ...\r
+ def __iter__(self) -> IteratorWrapper: ...\r
+ if sys.version_info < (3,):\r
+ def next(self) -> bytes: ...\r
+ else:\r
+ def __next__(self) -> bytes: ...\r
+ def close(self) -> None: ...\r
+ def __del__(self) -> None: ...\r