"""
This type stub file was generated by pyright.
"""

import numpy as np
from typing import Callable
from pandas._libs import index as libindex
from pandas._typing import Dtype, npt
from pandas.util._decorators import cache_readonly
from pandas.core.indexes.base import Index

class NumericIndex(Index):
    """
    Immutable numeric sequence used for indexing and alignment.

    The basic object storing axis labels for all pandas objects.
    NumericIndex is a special case of `Index` with purely numpy int/uint/float labels.

    .. versionadded:: 1.4.0

    Parameters
    ----------
    data : array-like (1-dimensional)
    dtype : NumPy dtype (default: None)
    copy : bool
        Make a copy of input ndarray.
    name : object
        Name to be stored in the index.

    Attributes
    ----------
    None

    Methods
    -------
    None

    See Also
    --------
    Index : The base pandas Index type.
    Int64Index : Index of purely int64 labels (deprecated).
    UInt64Index : Index of purely uint64 labels (deprecated).
    Float64Index : Index of  purely float64 labels (deprecated).

    Notes
    -----
    An NumericIndex instance can **only** contain numpy int64/32/16/8, uint64/32/16/8 or
    float64/32/16 dtype. In particular, ``NumericIndex`` *can not* hold Pandas numeric
    dtypes (:class:`Int64Dtype`, :class:`Int32Dtype` etc.).
    """
    _typ = ...
    _values: np.ndarray
    _default_dtype: np.dtype | None = ...
    _dtype_validation_metadata: tuple[Callable[..., bool], str] = ...
    _is_numeric_dtype = ...
    _can_hold_strings = ...
    _is_backward_compat_public_numeric_index: bool = ...
    _engine_types: dict[np.dtype, type[libindex.IndexEngine]] = ...
    @cache_readonly
    def inferred_type(self) -> str:
        ...
    
    def __new__(cls, data=..., dtype: Dtype | None = ..., copy=..., name=...) -> NumericIndex:
        ...
    


_num_index_shared_docs = ...
class IntegerIndex(NumericIndex):
    """
    This is an abstract class for Int64Index, UInt64Index.
    """
    _is_backward_compat_public_numeric_index: bool = ...
    @property
    def asi8(self) -> npt.NDArray[np.int64]:
        ...
    


class Int64Index(IntegerIndex):
    _index_descr_args = ...
    __doc__ = ...
    _typ = ...
    _default_dtype = ...
    _dtype_validation_metadata = ...


class UInt64Index(IntegerIndex):
    _index_descr_args = ...
    __doc__ = ...
    _typ = ...
    _default_dtype = ...
    _dtype_validation_metadata = ...


class Float64Index(NumericIndex):
    _index_descr_args = ...
    __doc__ = ...
    _typ = ...
    _default_dtype = ...
    _dtype_validation_metadata = ...
    _is_backward_compat_public_numeric_index: bool = ...


