--- /dev/null
+from typing import Any, Text, Type, TypeVar, overload
+
+from werkzeug._internal import _DictAccessorProperty
+from werkzeug.wrappers import Response
+
+class cached_property(property):
+ __name__: Any
+ __module__: Any
+ __doc__: Any
+ func: Any
+ def __init__(self, func, name: Any | None = ..., doc: Any | None = ...): ...
+ def __set__(self, obj, value): ...
+ def __get__(self, obj, type: Any | None = ...): ...
+
+class environ_property(_DictAccessorProperty):
+ read_only: Any
+ def lookup(self, obj): ...
+
+class header_property(_DictAccessorProperty):
+ def lookup(self, obj): ...
+
+class HTMLBuilder:
+ def __init__(self, dialect): ...
+ def __call__(self, s): ...
+ def __getattr__(self, tag): ...
+
+html: Any
+xhtml: Any
+
+def get_content_type(mimetype, charset): ...
+def format_string(string, context): ...
+def secure_filename(filename: Text) -> Text: ...
+def escape(s, quote: Any | None = ...): ...
+def unescape(s): ...
+
+# 'redirect' returns a werkzeug Response, unless you give it
+# another Response type to use instead.
+_RC = TypeVar("_RC", bound=Response)
+
+@overload
+def redirect(location: str, code: int = ..., Response: None = ...) -> Response: ...
+@overload
+def redirect(location: str, code: int = ..., Response: Type[_RC] = ...) -> _RC: ...
+def append_slash_redirect(environ, code: int = ...): ...
+def import_string(import_name, silent: bool = ...): ...
+def find_modules(import_path, include_packages: bool = ..., recursive: bool = ...): ...
+def validate_arguments(func, args, kwargs, drop_extra: bool = ...): ...
+def bind_arguments(func, args, kwargs): ...
+
+class ArgumentValidationError(ValueError):
+ missing: Any
+ extra: Any
+ extra_positional: Any
+ def __init__(self, missing: Any | None = ..., extra: Any | None = ..., extra_positional: Any | None = ...): ...
+
+class ImportStringError(ImportError):
+ import_name: Any
+ exception: Any
+ def __init__(self, import_name, exception): ...