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): ...