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

from .vtkInformationKey import vtkInformationKey

class vtkInformationObjectBaseVectorKey(vtkInformationKey):
    """
    vtkInformationObjectBaseVectorKey - Key for vtkObjectBase vector
    values.
    
    Superclass: vtkInformationKey
    
    vtkInformationObjectBaseVectorKey is used to represent keys for
    double vector values in vtkInformation.h. NOTE the interface in this
    key differs from that in other similar keys because of our internal
    use of smart pointers.
    """
    def Append(self, vtkInformation, vtkObjectBase):
        """
        V.Append(vtkInformation, vtkObjectBase)
        C++: void Append(vtkInformation *info, vtkObjectBase *value)
        
        Put the value on the back of the vector, with ref counting.
        """
        ...
    
    def Clear(self, vtkInformation):
        """
        V.Clear(vtkInformation)
        C++: void Clear(vtkInformation *info)
        
        Clear the vector.
        """
        ...
    
    def Get(self, vtkInformation, p_int):
        """
        V.Get(vtkInformation, int) -> vtkObjectBase
        C++: vtkObjectBase *Get(vtkInformation *info, int idx)
        
        Get the vtkObjectBase at a specific location in the vector.
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Given a the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Given a the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Return 1 if this class is the same type of (or a subclass of) the
        named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Return 1 if this class type is the same type of (or a subclass
        of) the named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def Length(self, vtkInformation):
        """
        V.Length(vtkInformation) -> int
        C++: int Length(vtkInformation *info)
        """
        ...
    
    def MakeKey(self, string, string_1, string_2):
        """
        V.MakeKey(string, string, string)
            -> vtkInformationObjectBaseVectorKey
        C++: static vtkInformationObjectBaseVectorKey *MakeKey(
            const char *name, const char *location,
            const char *requiredClass=nullptr)
        
        This method simply returns a new
        vtkInformationObjectBaseVectorKey, given a name, location and
        optionally a required class (a classname to restrict which class
        types can be set with this key). This method is provided for
        wrappers. Use the constructor directly from C++ instead.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkInformationObjectBaseVectorKey
        C++: vtkInformationObjectBaseVectorKey *NewInstance()
        """
        ...
    
    def Remove(self, vtkInformation, vtkObjectBase):
        """
        V.Remove(vtkInformation, vtkObjectBase)
        C++: void Remove(vtkInformation *info, vtkObjectBase *val)
        V.Remove(vtkInformation, int)
        C++: void Remove(vtkInformation *info, int idx)
        V.Remove(vtkInformation)
        C++: virtual void Remove(vtkInformation *info)
        
        Remove all instances of val from the list. If using the indexed
        overload, the object at the specified position is removed.
        """
        ...
    
    def Resize(self, vtkInformation, p_int):
        """
        V.Resize(vtkInformation, int)
        C++: void Resize(vtkInformation *info, int n)
        
        Resize (extend) the vector to hold n objects. Any new elements
        created will be null initialized.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkInformationObjectBaseVectorKey
        C++: static vtkInformationObjectBaseVectorKey *SafeDownCast(
            vtkObjectBase *o)
        """
        ...
    
    def Set(self, vtkInformation, vtkObjectBase, p_int):
        """
        V.Set(vtkInformation, vtkObjectBase, int)
        C++: void Set(vtkInformation *info, vtkObjectBase *value, int i)
        
        Set element i of the vector to value. Resizes the vector if
        needed.
        """
        ...
    
    def ShallowCopy(self, vtkInformation, vtkInformation_1):
        """
        V.ShallowCopy(vtkInformation, vtkInformation)
        C++: void ShallowCopy(vtkInformation *from, vtkInformation *to)
            override;
        
        Copy the entry associated with this key from one information
        object to another.  If there is no entry in the first information
        object for this key, the value is removed from the second.
        """
        ...
    
    def Size(self, vtkInformation):
        """
        V.Size(vtkInformation) -> int
        C++: int Size(vtkInformation *info)
        
        Get the vector's length.
        """
        ...
    
    def __delattr__(self, *args, **kwargs):
        """ Implement delattr(self, name). """
        ...
    
    def __getattribute__(self, *args, **kwargs):
        """ Return getattr(self, name). """
        ...
    
    def __init__(self, *args, **kwargs) -> None:
        ...
    
    @staticmethod
    def __new__(*args, **kwargs):
        """ Create and return a new object.  See help(type) for accurate signature. """
        ...
    
    def __repr__(self, *args, **kwargs):
        """ Return repr(self). """
        ...
    
    def __setattr__(self, *args, **kwargs):
        """ Implement setattr(self, name, value). """
        ...
    
    def __str__(self, *args, **kwargs) -> str:
        """ Return str(self). """
        ...
    
    __this__ = ...
    __dict__ = ...
    __vtkname__ = ...


