from typing import Any, IO, AnyStr, Callable, Tuple, List
from types import TracebackType, FrameType

ExtractTbResult = List[Tuple[str, int, str, str]]

def print_tb(traceback: TracebackType, limit: int = ..., file: IO[str] = ...) -> None: ...
def print_exception(type: type, value: Exception, limit: int = ..., file: IO[str] = ...) -> None: ...
def print_exc(limit: int = ..., file: IO[str] = ...) -> None: ...
def format_exc(limit: int = ...) -> str: ...
def print_last(limit: int = ..., file: IO[str] = ...) -> None: ...
def print_stack(f: FrameType = ..., limit: int = ..., file: IO[AnyStr] = ...) -> None: ...
def extract_tb(f: TracebackType, limit: int = ...) -> ExtractTbResult: ...
def extract_stack(f: FrameType = ..., limit: int = ...) -> ExtractTbResult: ...
def format_list(list: ExtractTbResult) -> List[str]: ...
def format_exception_only(type: type, value: List[str]) -> str: ...
def format_exception(type: type, value: List[str], tb: TracebackType, limit: int = ...) -> str: ...
def format_tb(f: TracebackType, limit: int = ...) -> List[str]: ...
def format_stack(f: FrameType = ..., limit: int = ...) -> List[str]: ...
def tb_lineno(tb: TracebackType) -> AnyStr: ...
