--- /dev/null
+from typing import Any
+
+class Options:
+ dict_cls: Any
+ custom_functions: Any
+ def __init__(self, dict_cls: Any | None = ..., custom_functions: Any | None = ...) -> None: ...
+
+class _Expression:
+ expression: Any
+ interpreter: Any
+ def __init__(self, expression, interpreter) -> None: ...
+ def visit(self, node, *args, **kwargs): ...
+
+class Visitor:
+ def __init__(self) -> None: ...
+ def visit(self, node, *args, **kwargs): ...
+ def default_visit(self, node, *args, **kwargs) -> None: ...
+
+class TreeInterpreter(Visitor):
+ COMPARATOR_FUNC: Any
+ MAP_TYPE: Any
+ def __init__(self, options: Any | None = ...) -> None: ...
+ def default_visit(self, node, *args, **kwargs) -> None: ...
+ def visit_subexpression(self, node, value): ...
+ def visit_field(self, node, value): ...
+ def visit_comparator(self, node, value): ...
+ def visit_current(self, node, value): ...
+ def visit_expref(self, node, value): ...
+ def visit_function_expression(self, node, value): ...
+ def visit_filter_projection(self, node, value): ...
+ def visit_flatten(self, node, value): ...
+ def visit_identity(self, node, value): ...
+ def visit_index(self, node, value): ...
+ def visit_index_expression(self, node, value): ...
+ def visit_slice(self, node, value): ...
+ def visit_key_val_pair(self, node, value): ...
+ def visit_literal(self, node, value): ...
+ def visit_multi_select_dict(self, node, value): ...
+ def visit_multi_select_list(self, node, value): ...
+ def visit_or_expression(self, node, value): ...
+ def visit_and_expression(self, node, value): ...
+ def visit_not_expression(self, node, value): ...
+ def visit_pipe(self, node, value): ...
+ def visit_projection(self, node, value): ...
+ def visit_value_projection(self, node, value): ...
+
+class GraphvizVisitor(Visitor):
+ def __init__(self) -> None: ...
+ def visit(self, node, *args, **kwargs): ...