import ast
from collections.abc import Sequence

from cycler import Cycler

interactive_bk = ...
non_interactive_bk = ...
all_backends = ...

class ValidateInStrings:
    def __init__(
        self, key: str, valid: Sequence[str] | _ignorecase, ignorecase: bool = ..., *, _deprecated_since=...
    ) -> None: ...
    def __call__(self, s: str) -> str: ...

def validate_any(s): ...

validate_anylist = ...

def validate_bool(b) -> bool: ...
def validate_axisbelow(s) -> bool | str: ...
def validate_dpi(s) -> float | str: ...

validate_string = ...
validate_string_or_None = ...
validate_stringlist = ...
validate_int = ...
validate_int_or_None = ...
validate_float = ...
validate_float_or_None = ...
validate_floatlist = ...

def validate_fonttype(s) -> int: ...
def validate_backend(s) -> str: ...
def validate_color_or_inherit(s) -> str: ...
def validate_color_or_auto(s) -> str: ...
def validate_color_for_prop_cycle(s) -> str: ...
def validate_color(s) -> str: ...

validate_colorlist = ...

def validate_aspect(s) -> str: ...
def validate_fontsize_None(s) -> None: ...
def validate_fontsize(s) -> float | str: ...

validate_fontsizelist = ...

def validate_fontweight(s) -> str: ...
def validate_fontstretch(s) -> str: ...
def validate_font_properties(s) -> str: ...
def validate_whiskers(s) -> float: ...
def validate_ps_distiller(s) -> None: ...

validate_fillstyle = ...
validate_fillstylelist = ...

def validate_markevery(s): ...

validate_markeverylist = ...

def validate_bbox(s) -> None: ...
def validate_sketch(s) -> None | tuple[float, ...]: ...
def validate_hatch(s): ...

validate_hatchlist = ...
validate_dashlist = ...

def cycler(*args, **kwargs) -> Cycler: ...

class _DunderChecker(ast.NodeVisitor):
    def visit_Attribute(self, node): ...

def validate_cycler(s) -> Cycler: ...
def validate_hist_bins(s) -> int: ...

class _ignorecase(list): ...
