from _typeshed import Incomplete
from typing import Any

from ..sql import operators

class UnevaluatableError(Exception): ...

class _NoObject(operators.ColumnOperators[Any]):
    def operate(self, *arg, **kw) -> None: ...
    def reverse_operate(self, *arg, **kw) -> None: ...

class EvaluatorCompiler:
    target_cls: Any
    def __init__(self, target_cls: Incomplete | None = ...) -> None: ...
    def process(self, *clauses): ...
    def visit_grouping(self, clause): ...
    def visit_null(self, clause): ...
    def visit_false(self, clause): ...
    def visit_true(self, clause): ...
    def visit_column(self, clause): ...
    def visit_tuple(self, clause): ...
    def visit_clauselist(self, clause): ...
    def visit_binary(self, clause): ...
    def visit_unary(self, clause): ...
    def visit_bindparam(self, clause): ...
