import numpy as np
from pandas._typing import Scalar as Scalar
from pandas.core.algorithms import take as take
from pandas.core.arrays import ExtensionArray as ExtensionArray, ExtensionOpsMixin as ExtensionOpsMixin

from pandas.core.dtypes.missing import isna as isna, notna as notna

from typing import Any, Optional

class BaseMaskedArray(ExtensionArray, ExtensionOpsMixin):
    def __getitem__(self, item: Any) -> Any: ...
    def __iter__(self) -> Any: ...
    def __len__(self) -> int: ...
    def __invert__(self) -> Any: ...
    def to_numpy(self, dtype: Any = ..., copy: Any = ..., na_value: Scalar=...) -> Any: ...
    __array_priority__: int = ...
    def __array__(self, dtype: Any = ...) -> np.ndarray: ...
    def __arrow_array__(self, type: Optional[Any] = ...) -> Any: ...
    def isna(self) -> Any: ...
    @property
    def nbytes(self) -> Any: ...
    def take(self, indexer: Any, allow_fill: bool = ..., fill_value: Optional[Any] = ...) -> Any: ...
    def copy(self) -> Any: ...
    def value_counts(self, dropna: bool = ...) -> Any: ...
