import numpy as np
from pandas._libs import missing as libmissing
from typing import Any, Optional, Union

def kleene_or(left: Union[bool, np.ndarray], right: Union[bool, np.ndarray], left_mask: Optional[np.ndarray], right_mask: Optional[np.ndarray]) -> Any: ...
def kleene_xor(left: Union[bool, np.ndarray], right: Union[bool, np.ndarray], left_mask: Optional[np.ndarray], right_mask: Optional[np.ndarray]) -> Any: ...
def kleene_and(left: Union[bool, libmissing.NAType, np.ndarray], right: Union[bool, libmissing.NAType, np.ndarray], left_mask: Optional[np.ndarray], right_mask: Optional[np.ndarray]) -> Any: ...
def raise_for_nan(value: Any, method: Any) -> None: ...
