from __future__ import annotations

from typing import Any, Optional

from ..fluid.data_feeder import check_type as check_type
from ..fluid.data_feeder import check_variable_and_dtype as check_variable_and_dtype
from ..fluid.framework import in_dygraph_mode as in_dygraph_mode
from ..fluid.layer_helper import LayerHelper as LayerHelper
from ..fluid.layers import is_empty as is_empty
from ..fluid.layers import logical_and as logical_and
from ..fluid.layers import logical_not as logical_not
from ..fluid.layers import logical_or as logical_or
from ..fluid.layers import logical_xor as logical_xor
from ..fluid.layers.layer_function_generator import templatedoc as templatedoc
from ..static import Variable as Variable

Tensor: Any

def equal_all(x: Any, y: Any, name: Optional[Any] = ...): ...
def allclose(
    x: Any, y: Any, rtol: float = ..., atol: float = ..., equal_nan: bool = ..., name: Optional[Any] = ...
): ...
def equal(x: Any, y: Any, name: Optional[Any] = ...): ...
def greater_equal(x: Any, y: Any, name: Optional[Any] = ...): ...
def greater_than(x: Any, y: Any, name: Optional[Any] = ...): ...
def less_equal(x: Any, y: Any, name: Optional[Any] = ...): ...
def less_than(x: Any, y: Any, name: Optional[Any] = ...): ...
def not_equal(x: Any, y: Any, name: Optional[Any] = ...): ...
def is_tensor(x: Any): ...
def bitwise_and(x: Any, y: Any, out: Optional[Any] = ..., name: Optional[Any] = ...): ...
def bitwise_or(x: Any, y: Any, out: Optional[Any] = ..., name: Optional[Any] = ...): ...
def bitwise_xor(x: Any, y: Any, out: Optional[Any] = ..., name: Optional[Any] = ...): ...
def bitwise_not(x: Any, out: Optional[Any] = ..., name: Optional[Any] = ...): ...
def isclose(x: Any, y: Any, rtol: float = ..., atol: float = ..., equal_nan: bool = ..., name: Optional[Any] = ...): ...
