import numpy as np
from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike as construct_1d_object_array_from_listlike, find_common_type as find_common_type, maybe_upcast_putmask as maybe_upcast_putmask
from pandas.core.dtypes.common import ensure_object as ensure_object, is_bool_dtype as is_bool_dtype, is_integer_dtype as is_integer_dtype, is_list_like as is_list_like, is_object_dtype as is_object_dtype, is_scalar as is_scalar
from pandas.core.dtypes.generic import ABCDatetimeArray as ABCDatetimeArray, ABCExtensionArray as ABCExtensionArray, ABCIndex as ABCIndex, ABCIndexClass as ABCIndexClass, ABCSeries as ABCSeries, ABCTimedeltaArray as ABCTimedeltaArray
from pandas.core.dtypes.missing import isna as isna, notna as notna
from pandas.core.ops import missing as missing
from pandas.core.ops.dispatch import dispatch_to_extension_op as dispatch_to_extension_op, should_extension_dispatch as should_extension_dispatch
from pandas.core.ops.invalid import invalid_comparison as invalid_comparison
from pandas.core.ops.roperator import rpow as rpow
from typing import Any, Optional, Union

def comp_method_OBJECT_ARRAY(op: Any, x: Any, y: Any) -> Any: ...
def masked_arith_op(x: Any, y: Any, op: Any) -> Any: ...
def define_na_arithmetic_op(op: Any, str_rep: str) -> Any: ...
def na_arithmetic_op(left: Any, right: Any, op: Any, str_rep: str) -> Any: ...
def arithmetic_op(left: Union[np.ndarray, ABCExtensionArray], right: Any, op: Any, str_rep: str) -> Any: ...
def comparison_op(left: Union[np.ndarray, ABCExtensionArray], right: Any, op: Any) -> Union[np.ndarray, ABCExtensionArray]: ...
def na_logical_op(x: np.ndarray, y: Any, op: Any) -> Any: ...
def logical_op(left: Union[np.ndarray, ABCExtensionArray], right: Any, op: Any) -> Union[np.ndarray, ABCExtensionArray]: ...
def get_array_op(op: Any, str_rep: Optional[str]=...) -> Any: ...
