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

import sys

"""
Utility functions to mimic the template support functions for vtkVariant
"""
_variant_type_map = ...
_variant_method_map = ...
_variant_check_map = ...
def vtkVariantCreate(v, t):
    """
    Create a vtkVariant of the specified type, where the type is in the
    following format: 'int', 'unsigned int', etc. for numeric types,
    and 'string' or 'unicode string' for strings.  You can also use an
    integer VTK type constant for the type.
    """
    ...

def vtkVariantExtract(v, t=...):
    """
    Extract the specified value type from the vtkVariant, where the type is
    in the following format: 'int', 'unsigned int', etc. for numeric types,
    and 'string' or 'unicode string' for strings.  You can also use an
    integer VTK type constant for the type.  Set the type to 'None" to
    extract the value in its native type.
    """
    ...

def vtkVariantCast(v, t):
    """
    Cast the vtkVariant to the specified value type, where the type is
    in the following format: 'int', 'unsigned int', etc. for numeric types,
    and 'string' or 'unicode string' for strings.  You can also use an
    integer VTK type constant for the type.
    """
    ...

def vtkVariantStrictWeakOrder(s1, s2):
    """
    Compare variants by type first, and then by value.  When called from
    within a Python 2 interpreter, the return values are -1, 0, 1 like the
    cmp() method, for compatibility with the Python 2 list sort() method.
    This is in contrast with the Python 3 version of this method (and the
    VTK C++ version), which return true or false.
    """
    ...

if sys.hexversion >= 50331648:
    class vtkVariantStrictWeakOrderKey:
        """A key method (class, actually) for use with sort()"""
        def __init__(self, obj, *args) -> None:
            ...
        
        def __lt__(self, other) -> bool:
            ...
        
    
    
else:
    class vtkVariantStrictWeakOrderKey:
        """A key method (class, actually) for use with sort()"""
        def __init__(self, obj, *args) -> None:
            ...
        
        def __lt__(self, other) -> bool:
            ...
        
        def __gt__(self, other) -> bool:
            ...
        
        def __eq__(self, other) -> bool:
            ...
        
        def __le__(self, other) -> bool:
            ...
        
        def __ge__(self, other) -> bool:
            ...
        
        def __ne__(self, other) -> bool:
            ...
        
    
    
def vtkVariantStrictEquality(s1, s2):
    """
    Check two variants for strict equality of type and value.
    """
    ...

def vtkVariantLessThan(s1, s2):
    """
    Return true if s1 < s2.
    """
    ...

def vtkVariantEqual(s1, s2):
    """
    Return true if s1 == s2.
    """
    ...

