l(self) -> Optional[Tuple[_Gen, ...]]: ...
    def scroll(self, value: int, mode: Text = ...) -> None: ...
    def __iter__(self) -> Iterator[_Gen]: ...
    def __enter__(self: _SelfT) -> _SelfT: ...
    def __exit__(self, *exc_info: Any) -> None: ...

class DictCursor(Cursor):
    def fetchone(self) -> Optional[Dict[Text, Any]]: ...
    def fetchmany(self, size: Optional[int] = ...) -> Optional[Tuple[Dict[Text, Any], ...]]: ...
    def fetchall(self) -> Optional[Tuple[Dict[Text, Any], ...]]: ...

class DictCursorMixin:
    dict_type: Any

class SSCursor(Cursor):
    # fetchall return type is incompatible with the supertype.
    def fetchall(self) -> List[_Gen]: ...  # type: ignore
    def fetchall_unbuffered(self) -> Iterator[_Gen]: ...
    def __iter__(self) -> Iterator[_Gen]: ...
    def fetchmany(self, size: Optional[int] = ...) -> List[_Gen]: ...
    def scroll(self, value: int, mode: Text = ...) -> None: ...

class SSDictCursor(DictCursorMixin, SSCursor): ...
PK