--- /dev/null
+import sys
+from typing import Any, Iterable, TextIO, TypeVar
+
+def split(s: str, comments: bool = ..., posix: bool = ...) -> list[str]: ...
+
+if sys.version_info >= (3, 8):
+ def join(split_command: Iterable[str]) -> str: ...
+
+def quote(s: str) -> str: ...
+
+_SLT = TypeVar("_SLT", bound=shlex)
+
+class shlex(Iterable[str]):
+ commenters: str
+ wordchars: str
+ whitespace: str
+ escape: str
+ quotes: str
+ escapedquotes: str
+ whitespace_split: bool
+ infile: str
+ instream: TextIO
+ source: str
+ debug: int
+ lineno: int
+ token: str
+ eof: str
+ punctuation_chars: str
+ def __init__(
+ self,
+ instream: str | TextIO | None = ...,
+ infile: str | None = ...,
+ posix: bool = ...,
+ punctuation_chars: bool | str = ...,
+ ) -> None: ...
+ def get_token(self) -> str: ...
+ def push_token(self, tok: str) -> None: ...
+ def read_token(self) -> str: ...
+ def sourcehook(self, newfile: str) -> tuple[str, TextIO]: ...
+ # TODO argument types
+ def push_source(self, newstream: Any, newfile: Any = ...) -> None: ...
+ def pop_source(self) -> None: ...
+ def error_leader(self, infile: str | None = ..., lineno: int | None = ...) -> None: ...
+ def __iter__(self: _SLT) -> _SLT: ...
+ def __next__(self) -> str: ...