from typing import Any

from pandas.core.computation import (
    expr as expr,
    ops as ops,
)
from pandas.core.computation.expr import BaseExprVisitor as BaseExprVisitor
from pandas.core.indexes.base import Index

class BinOp(ops.BinOp):
    op: str
    queryables: dict[str, Any]
    encoding = ...
    condition = ...
    @property
    def is_valid(self) -> bool: ...
    @property
    def is_in_table(self) -> bool: ...
    def convert_values(self) -> None: ...

class FilterBinOp(BinOp):
    filter: tuple[Any, Any, Index] | None = ...

class PyTablesExpr(expr.Expr):
    encoding = ...
    condition = ...
    filter = ...
    terms = ...
    expr = ...
    def __init__(
        self,
        where: Any,
        queryables: dict[str, Any] | None = ...,
        encoding: Any = ...,
        scope_level: int = ...,
    ) -> None: ...

class TermValue:
    value = ...
    converted = ...
    kind = ...
