--- /dev/null
+from datetime import datetime, date, time\r
+\r
+from typing import Any, Dict, Tuple, Iterable, List, Optional, Union, Sequence\r
+\r
+Scalar = Union[int, float, str, datetime, date, time]\r
+Result = Union[Tuple[Scalar, ...], Dict[str, Scalar]]\r
+\r
+class Connection(object):\r
+ def __init__(self, user, password, host, database, timeout,\r
+ login_timeout, charset, as_dict) -> None: ...\r
+ def autocommit(self, status: bool) -> None: ...\r
+ def close(self) -> None: ...\r
+ def commit(self) -> None: ...\r
+ def cursor(self) -> 'Cursor': ...\r
+ def rollback(self) -> None: ...\r
+\r
+class Cursor(object):\r
+ def __init__(self) -> None: ...\r
+ def __iter__(self): ...\r
+ def __next__(self) -> Any: ...\r
+ def callproc(self, procname: str, **kwargs) -> None: ...\r
+ def close(self) -> None: ...\r
+ def execute(self, stmt: str,\r
+ params: Optional[Union[Scalar, Tuple[Scalar, ...],\r
+ Dict[str, Scalar]]]) -> None: ...\r
+ def executemany(self, stmt: str,\r
+ params: Optional[Sequence[Tuple[Scalar, ...]]]) -> None: ...\r
+ def fetchall(self) -> List[Result]: ...\r
+ def fetchmany(self, size: Optional[int]) -> List[Result]: ...\r
+ def fetchone(self) -> Result: ...\r
+\r
+def connect(server: Optional[str],\r
+ user: Optional[str],\r
+ password: Optional[str],\r
+ database: Optional[str],\r
+ timeout: Optional[int],\r
+ login_timeout: Optional[int],\r
+ charset: Optional[str],\r
+ as_dict: Optional[bool],\r
+ host: Optional[str],\r
+ appname: Optional[str],\r
+ port: Optional[str],\r
+\r
+ conn_properties: Optional[Union[str, Sequence[str]]],\r
+ autocommit: Optional[bool],\r
+ tds_version: Optional[str]) -> Connection: ...\r
+def get_max_connections() -> int: ...\r
+def set_max_connections(n: int) -> None: ...\r