from collections import Counter
from contextlib import suppress as suppress
from typing import Any, ClassVar, NamedTuple

import numpy as np
from numpy import ndarray, str_

from . import is_scalar_nan as is_scalar_nan

class MissingValues(NamedTuple):
    nan: bool = ...
    none: bool = ...

    def to_list(self) -> list[float | Any]: ...

class _nandict(dict):
    def __init__(self, mapping: dict[str, int] | dict[str | float, int] | dict[str_, int]) -> None: ...
    def __missing__(self, key): ...

class _NaNCounter(Counter):
    def __init__(self, items: ndarray) -> None: ...
    def __missing__(self, key): ...
