from kele.syntax import TERM_TYPE, CompoundTerm, Constant
from kele.syntax.base_classes import GROUNDED_TYPE

class EggEquivalence:
    def __init__(self, trace: bool) -> None: ...
    def add_to_equiv(self, lhs: TERM_TYPE, rhs: TERM_TYPE) -> None: ...
    def query_equivalence(self, term_l: TERM_TYPE, term_r: TERM_TYPE) -> bool: ...
    def get_represent_elem(self, term: Constant | CompoundTerm) -> Constant | CompoundTerm[Constant | CompoundTerm]: ...
    def get_equiv_elem(self, term: TERM_TYPE) -> list[GROUNDED_TYPE]: ...
    def rebuild_egraph(self) -> None: ...
    def clear(self) -> None: ...
