import typing

class TSTError(Exception):
    def __init__(
        self,
        tag: str,
        message: str,
        can_inspect: bool = True,
        other_exception: Exception | None = None,
        metadata: dict[str, typing.Any] | None = None,
        *args,
        **kwargs,
    ) -> None: ...
    def to_dict(self) -> dict[str, typing.Any]: ...
    def func_trace(self) -> list[str]: ...
    def message(self) -> str: ...
    def tag(self) -> str: ...
    def metadata(self) -> dict[str, typing.Any] | None: ...
    def to_json(self) -> str: ...
    def routes(self, *func_names: str) -> bool: ...
    def sub_routes(self, *func_names: str) -> bool: ...
    def fuzzy_routes(self, *func_names: str) -> bool: ...
    def set_func_trace(self, func_trace: list[str]) -> None: ...
    def __eq__(self, other: object) -> bool: ...
