"""Type stubs for cssl_core C++ module.

Auto-generated by IncludeCPP - DO NOT EDIT.
Provides VSCode/PyCharm autocomplete for C++ bindings.
"""

from typing import Any, List, Dict, Optional, Union, overload

class Lexer:
    """C++ class: Lexer"""

    def __init__(self, arg0: str) -> None:
        """Initialize Lexer instance."""
        ...

    def tokenize(self) -> Any:
        """C++ method: tokenize"""
        ...


class Token:
    """C++ class: Token"""

    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, arg0: int, arg1: int, arg2: int) -> None: ...
    @overload
    def __init__(self, arg0: int, arg1: str, arg2: int, arg3: int) -> None: ...
    @overload
    def __init__(self, arg0: int, arg1: float, arg2: int, arg3: int) -> None: ...
    @overload
    def __init__(self, arg0: int, arg1: bool, arg2: int, arg3: int) -> None: ...

    def __init__(self, *args: Any, **kwargs: Any) -> None:
        """Initialize Token instance."""
        ...

    pass

class TokenType:
    """C++ class: TokenType"""

    def __init__(self) -> None:
        """Initialize TokenType instance."""
        ...

    pass

class Value:
    """C++ class: Value"""

    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, arg0: bool) -> None: ...
    @overload
    def __init__(self, arg0: Any) -> None: ...
    @overload
    def __init__(self, arg0: float) -> None: ...
    @overload
    def __init__(self, arg0: str) -> None: ...

    def __init__(self, *args: Any, **kwargs: Any) -> None:
        """Initialize Value instance."""
        ...

    def as_bool(self) -> Any:
        """C++ method: as_bool"""
        ...

    def as_float(self) -> Any:
        """C++ method: as_float"""
        ...

    def as_int(self) -> Any:
        """C++ method: as_int"""
        ...

    def as_string(self) -> Any:
        """C++ method: as_string"""
        ...

    def get_type(self) -> Any:
        """C++ method: get_type"""
        ...

    def is_bool(self) -> Any:
        """C++ method: is_bool"""
        ...

    def is_dict(self) -> Any:
        """C++ method: is_dict"""
        ...

    def is_float(self) -> Any:
        """C++ method: is_float"""
        ...

    def is_int(self) -> Any:
        """C++ method: is_int"""
        ...

    def is_list(self) -> Any:
        """C++ method: is_list"""
        ...

    def is_null(self) -> Any:
        """C++ method: is_null"""
        ...

    def is_number(self) -> Any:
        """C++ method: is_number"""
        ...

    def is_string(self) -> Any:
        """C++ method: is_string"""
        ...

    def to_bool(self) -> Any:
        """C++ method: to_bool"""
        ...

    def to_string(self) -> Any:
        """C++ method: to_string"""
        ...


def is_keyword(word: str) -> bool:
    """C++ function: is_keyword"""
    ...

def math_clamp(value: float, min_val: float, max_val: float) -> float:
    """C++ function: math_clamp"""
    ...

def math_ipow(base: Any, exp: Any) -> Any:
    """C++ function: math_ipow"""
    ...

def math_pow(base: float, exp: float) -> float:
    """C++ function: math_pow"""
    ...

def str_concat(a: str, b: str) -> str:
    """C++ function: str_concat"""
    ...

def str_contains(s: str, sub: str) -> bool:
    """C++ function: str_contains"""
    ...

def str_join(parts: List[str], delim: str) -> str:
    """C++ function: str_join"""
    ...

def str_lower(s: str) -> str:
    """C++ function: str_lower"""
    ...

def str_replace(s: str, from: str, to: str) -> str:
    """C++ function: str_replace"""
    ...

def str_split(s: str, delim: str) -> List[str]:
    """C++ function: str_split"""
    ...

def str_trim(s: str) -> str:
    """C++ function: str_trim"""
    ...

def str_upper(s: str) -> str:
    """C++ function: str_upper"""
    ...

def version(*args: Any, **kwargs: Any) -> str:
    """C++ function: version"""
    ...

