--- /dev/null
+from typing import (Any, TypeVar, Set, Dict, List, TextIO, Union, Tuple, Generic, Callable,\r
+ Coroutine, Generator, Iterable, Awaitable, overload, Sequence, Iterator,\r
+ Optional)\r
+from types import FrameType\r
+import concurrent.futures\r
+from .events import AbstractEventLoop\r
+from .futures import Future\r
+\r
+__all__: List[str]\r
+\r
+_T = TypeVar('_T')\r
+_T1 = TypeVar('_T1')\r
+_T2 = TypeVar('_T2')\r
+_T3 = TypeVar('_T3')\r
+_T4 = TypeVar('_T4')\r
+_T5 = TypeVar('_T5')\r
+_FutureT = Union[Future[_T], Generator[Any, None, _T], Awaitable[_T]]\r
+\r
+FIRST_EXCEPTION: str\r
+FIRST_COMPLETED: str\r
+ALL_COMPLETED: str\r
+\r
+def as_completed(fs: Sequence[_FutureT[_T]], *, loop: AbstractEventLoop = ...,\r
+ timeout: Optional[float] = ...) -> Iterator[Generator[Any, None, _T]]: ...\r
+def ensure_future(coro_or_future: _FutureT[_T],\r
+ *, loop: AbstractEventLoop = ...) -> Future[_T]: ...\r
+async = ensure_future\r
+@overload\r
+def gather(coro_or_future1: _FutureT[_T1],\r
+ *, loop: AbstractEventLoop = ..., return_exceptions: bool = ...) -> Future[Tuple[_T1]]: ...\r
+@overload\r
+def gather(coro_or_future1: _FutureT[_T1], coro_or_future2: _FutureT[_T2],\r
+ *, loop: AbstractEventLoop = ..., return_exceptions: bool = ...) -> Future[Tuple[_T1, _T2]]: ...\r
+@overload\r
+def gather(coro_or_future1: _FutureT[_T1], coro_or_future2: _FutureT[_T2], coro_or_future3: _FutureT[_T3],\r
+ *, loop: AbstractEventLoop = ..., return_exceptions: bool = ...) -> Future[Tuple[_T1, _T2, _T3]]: ...\r
+@overload\r
+def gather(coro_or_future1: _FutureT[_T1], coro_or_future2: _FutureT[_T2], coro_or_future3: _FutureT[_T3],\r
+ coro_or_future4: _FutureT[_T4],\r
+ *, loop: AbstractEventLoop = ..., return_exceptions: bool = ...) -> Future[Tuple[_T1, _T2, _T3, _T4]]: ...\r
+@overload\r
+def gather(coro_or_future1: _FutureT[_T1], coro_or_future2: _FutureT[_T2], coro_or_future3: _FutureT[_T3],\r
+ coro_or_future4: _FutureT[_T4], coro_or_future5: _FutureT[_T5],\r
+ *, loop: AbstractEventLoop = ..., return_exceptions: bool = ...) -> Future[Tuple[_T1, _T2, _T3, _T4, _T5]]: ...\r
+@overload\r
+def gather(coro_or_future1: _FutureT[Any], coro_or_future2: _FutureT[Any], coro_or_future3: _FutureT[Any],\r
+ coro_or_future4: _FutureT[Any], coro_or_future5: _FutureT[Any], coro_or_future6: _FutureT[Any],\r
+ *coros_or_futures: _FutureT[Any],\r
+ loop: AbstractEventLoop = ..., return_exceptions: bool = ...) -> Future[Tuple[Any, ...]]: ...\r
+def run_coroutine_threadsafe(coro: _FutureT[_T],\r
+ loop: AbstractEventLoop) -> concurrent.futures.Future[_T]: ...\r
+def shield(arg: _FutureT[_T], *, loop: AbstractEventLoop = ...) -> Future[_T]: ...\r
+def sleep(delay: float, result: _T = ..., loop: AbstractEventLoop = ...) -> Future[_T]: ...\r
+def wait(fs: Iterable[_FutureT[_T]], *, loop: AbstractEventLoop = ...,\r
+ timeout: Optional[float] = ...,\r
+ return_when: str = ...) -> Future[Tuple[Set[Future[_T]], Set[Future[_T]]]]: ...\r
+def wait_for(fut: _FutureT[_T], timeout: Optional[float],\r
+ *, loop: AbstractEventLoop = ...) -> Future[_T]: ...\r
+\r
+class Task(Future[_T], Generic[_T]):\r
+ @classmethod\r
+ def current_task(cls, loop: AbstractEventLoop = ...) -> Task: ...\r
+ @classmethod\r
+ def all_tasks(cls, loop: AbstractEventLoop = ...) -> Set[Task]: ...\r
+ def __init__(self, coro: Union[Generator[Any, None, _T], Awaitable[_T]], *, loop: AbstractEventLoop = ...) -> None: ...\r
+ def __repr__(self) -> str: ...\r
+ def get_stack(self, *, limit: int = ...) -> List[FrameType]: ...\r
+ def print_stack(self, *, limit: int = ..., file: TextIO = ...) -> None: ...\r
+ def cancel(self) -> bool: ...\r
+ def _step(self, value: Any = ..., exc: Exception = ...) -> None: ...\r
+ def _wakeup(self, future: Future[Any]) -> None: ...\r