from typing import TYPE_CHECKING, Any, overload if TYPE_CHECKING: from ._typing import IntoExpr, IntoPyType class Expression: def __add__(self, other: IntoExpr) -> Expression: ... def __and__(self, other: IntoExpr) -> Expression: ... def __div__(self, other: IntoExpr) -> Expression: ... def __eq__(self, other: IntoExpr) -> Expression: ... # type: ignore[override] def __floordiv__(self, other: IntoExpr) -> Expression: ... def __ge__(self, other: IntoExpr) -> Expression: ... def __gt__(self, other: IntoExpr) -> Expression: ... @overload def __init__(self, arg0: str) -> None: ... @overload def __init__(self, arg0: Any) -> None: ... def __invert__(self) -> Expression: ... def __le__(self, other: IntoExpr) -> Expression: ... def __lt__(self, other: IntoExpr) -> Expression: ... def __mod__(self, other: IntoExpr) -> Expression: ... def __mul__(self, other: IntoExpr) -> Expression: ... def __ne__(self, other: IntoExpr) -> Expression: ... # type: ignore[override] def __neg__(self) -> Expression: ... def __or__(self, other: IntoExpr) -> Expression: ... def __pow__(self, other: IntoExpr) -> Expression: ... def __radd__(self, other: IntoExpr) -> Expression: ... def __rand__(self, other: IntoExpr) -> Expression: ... def __rdiv__(self, other: IntoExpr) -> Expression: ... def __rfloordiv__(self, other: IntoExpr) -> Expression: ... def __rmod__(self, other: IntoExpr) -> Expression: ... def __rmul__(self, other: IntoExpr) -> Expression: ... def __ror__(self, other: IntoExpr) -> Expression: ... def __rpow__(self, other: IntoExpr) -> Expression: ... def __rsub__(self, other: IntoExpr) -> Expression: ... def __rtruediv__(self, other: IntoExpr) -> Expression: ... def __sub__(self, other: IntoExpr) -> Expression: ... def __truediv__(self, other: IntoExpr) -> Expression: ... def alias(self, name: str) -> Expression: ... def asc(self) -> Expression: ... def between(self, lower: IntoExpr, upper: IntoExpr) -> Expression: ... def cast(self, type: IntoPyType) -> Expression: ... def collate(self, collation: str) -> Expression: ... def desc(self) -> Expression: ... def get_name(self) -> str: ... def isin(self, *args: IntoExpr) -> Expression: ... def isnotin(self, *args: IntoExpr) -> Expression: ... def isnotnull(self) -> Expression: ... def isnull(self) -> Expression: ... def nulls_first(self) -> Expression: ... def nulls_last(self) -> Expression: ... def otherwise(self, value: IntoExpr) -> Expression: ... def show(self) -> None: ... def when(self, condition: IntoExpr, value: IntoExpr) -> Expression: ...