--- /dev/null
+from typing import Any, Callable, Container, Iterable, List, Mapping, NamedTuple, Sequence, Union
+
+LATEX_ESCAPE_RULES: dict[str, str]
+MIN_PADDING: int
+PRESERVE_WHITESPACE: bool
+WIDE_CHARS_MODE: bool
+multiline_formats: dict[str, str]
+tabulate_formats: list[str]
+
+class Line(NamedTuple):
+ begin: str
+ hline: str
+ sep: str
+ end: str
+
+class DataRow(NamedTuple):
+ begin: str
+ sep: str
+ end: str
+
+_TableFormatLine = Union[None, Line, Callable[[List[int], List[str]], str]]
+_TableFormatRow = Union[None, DataRow, Callable[[List[Any], List[int], List[str]], str]]
+
+class TableFormat(NamedTuple):
+ lineabove: _TableFormatLine
+ linebelowheader: _TableFormatLine
+ linebetweenrows: _TableFormatLine
+ linebelow: _TableFormatLine
+ headerrow: _TableFormatRow
+ datarow: _TableFormatRow
+ padding: int
+ with_header_hide: Container[str] | None
+
+def simple_separated_format(separator: str) -> TableFormat: ...
+def tabulate(
+ tabular_data: Mapping[str, Iterable[Any]] | Iterable[Iterable[Any]],
+ headers: str | dict[str, str] | Sequence[str] = ...,
+ tablefmt: str | TableFormat = ...,
+ floatfmt: str | Iterable[str] = ...,
+ numalign: str | None = ...,
+ stralign: str | None = ...,
+ missingval: str | Iterable[str] = ...,
+ showindex: str | bool | Iterable[Any] = ...,
+ disable_numparse: bool | Iterable[int] = ...,
+ colalign: Iterable[str | None] | None = ...,
+) -> str: ...