from _typeshed import Incomplete
from collections.abc import Generator
from _ast import PyCF_ONLY_AST

BOOLOP_SYMBOLS: Incomplete
BINOP_SYMBOLS: Incomplete
CMPOP_SYMBOLS: Incomplete
UNARYOP_SYMBOLS: Incomplete
ALL_SYMBOLS: Incomplete

def parse(expr, filename: str = ..., mode: str = ...): ...
def iter_fields(node) -> Generator[Incomplete, None, None]: ...

class NodeVisitor:
    def get_visitor(self, node): ...
    def visit(self, node): ...
    def generic_visit(self, node) -> None: ...

class NodeTransformer(NodeVisitor):
    def generic_visit(self, node): ...

class SourceGenerator(NodeVisitor):
    result: Incomplete
    indent_with: Incomplete
    indentation: int
    new_lines: int
    def __init__(self, indent_with) -> None: ...
    def write(self, x) -> None: ...
    def newline(self, n: int = ...) -> None: ...
    new_line: bool
    def body(self, statements) -> None: ...
    def body_or_else(self, node) -> None: ...
    def signature(self, node) -> None: ...
    def decorators(self, node) -> None: ...
    def visit_Assign(self, node) -> None: ...
    def visit_AugAssign(self, node) -> None: ...
    def visit_ImportFrom(self, node) -> None: ...
    def visit_Import(self, node) -> None: ...
    def visit_Expr(self, node) -> None: ...
    def visit_FunctionDef(self, node) -> None: ...
    def visit_ClassDef(self, node) -> None: ...
    def visit_If(self, node) -> None: ...
    def visit_For(self, node) -> None: ...
    def visit_While(self, node) -> None: ...
    def visit_With(self, node) -> None: ...
    def visit_Pass(self, node) -> None: ...
    def visit_Print(self, node) -> None: ...
    def visit_Delete(self, node) -> None: ...
    def visit_TryExcept(self, node) -> None: ...
    def visit_TryFinally(self, node) -> None: ...
    def visit_Global(self, node) -> None: ...
    def visit_Nonlocal(self, node) -> None: ...
    def visit_Return(self, node) -> None: ...
    def visit_Break(self, node) -> None: ...
    def visit_Continue(self, node) -> None: ...
    def visit_Raise(self, node) -> None: ...
    def visit_Attribute(self, node) -> None: ...
    def visit_Call(self, node) -> None: ...
    def visit_Name(self, node) -> None: ...
    def visit_NameConstant(self, node) -> None: ...
    def visit_arg(self, node) -> None: ...
    def visit_Str(self, node) -> None: ...
    def visit_Bytes(self, node) -> None: ...
    def visit_Num(self, node) -> None: ...
    def visit_Constant(self, node) -> None: ...
    def visit_Tuple(self, node) -> None: ...
    def visit_List(self, node) -> None: ...
    def visit_Set(self, node) -> None: ...
    def visit_Dict(self, node) -> None: ...
    def visit_BinOp(self, node) -> None: ...
    def visit_BoolOp(self, node) -> None: ...
    def visit_Compare(self, node) -> None: ...
    def visit_UnaryOp(self, node) -> None: ...
    def visit_Subscript(self, node) -> None: ...
    def visit_Slice(self, node) -> None: ...
    def visit_ExtSlice(self, node) -> None: ...
    def visit_Yield(self, node) -> None: ...
    def visit_Lambda(self, node) -> None: ...
    def visit_Ellipsis(self, node) -> None: ...
    def visit_ListComp(self, node) -> None: ...
    def visit_GeneratorExp(self, node) -> None: ...
    def visit_SetComp(self, node) -> None: ...
    def visit_DictComp(self, node) -> None: ...
    def visit_IfExp(self, node) -> None: ...
    def visit_Starred(self, node) -> None: ...
    def visit_Repr(self, node) -> None: ...
    def visit_alias(self, node) -> None: ...
    def visit_comprehension(self, node) -> None: ...
    def visit_excepthandler(self, node) -> None: ...
