from _typeshed import Incomplete
from collections.abc import Generator
from typing import Literal

class Differ:
    F: float
    uniqueattrs: Incomplete
    fast_match: Incomplete
    best_match: Incomplete
    ignored_attrs: Incomplete
    def __init__(
        self,
        F: float | None = None,
        uniqueattrs=None,
        ratio_mode: Literal["accurate", "fast", "faster"] = "fast",
        fast_match: bool = False,
        best_match: bool = False,
        ignored_attrs=[],
    ) -> None: ...
    left: Incomplete
    right: Incomplete
    def clear(self) -> None: ...
    def set_trees(self, left, right) -> None: ...
    def append_match(self, lnode, rnode, max_match) -> None: ...
    def match(self, left=None, right=None): ...
    def node_ratio(self, left, right): ...
    def node_text(self, node): ...
    def node_attribs(self, node): ...
    def leaf_ratio(self, left, right): ...
    def child_ratio(self, left, right): ...
    def update_node_tag(self, left, right) -> Generator[Incomplete]: ...
    def update_node_attr(self, left, right) -> Generator[Incomplete]: ...
    def update_node_text(self, left, right) -> Generator[Incomplete]: ...
    def find_pos(self, node): ...
    def align_children(self, left, right) -> Generator[Incomplete, None, Incomplete]: ...
    def diff(self, left=None, right=None) -> Generator[Incomplete, Incomplete]: ...
