--- /dev/null
+# Stubs for zlib\r
+import sys\r
+\r
+DEFLATED = ... # type: int\r
+DEF_MEM_LEVEL = ... # type: int\r
+MAX_WBITS = ... # type: int\r
+ZLIB_VERSION = ... # type: str\r
+Z_BEST_COMPRESSION = ... # type: int\r
+Z_BEST_SPEED = ... # type: int\r
+Z_DEFAULT_COMPRESSION = ... # type: int\r
+Z_DEFAULT_STRATEGY = ... # type: int\r
+Z_FILTERED = ... # type: int\r
+Z_FINISH = ... # type: int\r
+Z_FULL_FLUSH = ... # type: int\r
+Z_HUFFMAN_ONLY = ... # type: int\r
+Z_NO_FLUSH = ... # type: int\r
+Z_SYNC_FLUSH = ... # type: int\r
+if sys.version_info >= (3,):\r
+ DEF_BUF_SIZE = ... # type: int\r
+ ZLIB_RUNTIME_VERSION = ... # type: str\r
+\r
+class error(Exception): ...\r
+\r
+\r
+class _Compress:\r
+ def compress(self, data: bytes) -> bytes: ...\r
+ def flush(self, mode: int = ...) -> bytes: ...\r
+ def copy(self) -> _Compress: ...\r
+\r
+\r
+class _Decompress:\r
+ unused_data = ... # type: bytes\r
+ unconsumed_tail = ... # type: bytes\r
+ if sys.version_info >= (3,):\r
+ eof = ... # type: bool\r
+ def decompress(self, data: bytes, max_length: int = ...) -> bytes: ...\r
+ def flush(self, length: int = ...) -> bytes: ...\r
+ def copy(self) -> _Decompress: ...\r
+\r
+\r
+def adler32(data: bytes, value: int = ...) -> int: ...\r
+def compress(data: bytes, level: int = ...) -> bytes: ...\r
+if sys.version_info >= (3,):\r
+ def compressobj(level: int = ..., method: int = ..., wbits: int = ...,\r
+ memLevel: int = ..., strategy: int = ...,\r
+ zdict: bytes = ...) -> _Compress: ...\r
+else:\r
+ def compressobj(level: int = ..., method: int = ..., wbits: int = ...,\r
+ memlevel: int = ..., strategy: int = ...) -> _Compress: ...\r
+def crc32(data: bytes, value: int = ...) -> int: ...\r
+def decompress(data: bytes, wbits: int = ..., bufsize: int = ...) -> bytes: ...\r
+if sys.version_info >= (3,):\r
+ def decompressobj(wbits: int = ..., zdict: bytes = ...) -> _Decompress: ...\r
+else:\r
+ def decompressobj(wbits: int = ...) -> _Decompress: ...\r