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

from .object import object

class vtkObjectBase(object):
    """
    vtkObjectBase - abstract base class for most VTK objects
    
    vtkObjectBase is the base class for all reference counted classes in
    the VTK. These classes include vtkCommand classes, vtkInformationKey
    classes, and vtkObject classes.
    
    vtkObjectBase performs reference counting: objects that are reference
    counted exist as long as another object uses them. Once the last
    reference to a reference counted object is removed, the object will
    spontaneously destruct.
    
    Constructor and destructor of the subclasses of vtkObjectBase should
    be protected, so that only New() and UnRegister() actually call them.
    Debug leaks can be used to see if there are any objects left with
    nonzero reference count.
    
    @warning
    Note: Objects of subclasses of vtkObjectBase should always be created
    with the New() method and deleted with the Delete() method. They
    cannot be allocated off the stack (i.e., automatic objects) because
    the constructor is a protected method.
    
    @sa
    vtkObject vtkCommand vtkInformationKey
    """
    def FastDelete(self):
        """
        V.FastDelete()
        C++: virtual void FastDelete()
        
        Delete a reference to this object.  This version will not invoke
        garbage collection and can potentially leak the object if it is
        part of a reference loop.  Use this method only when it is known
        that the object has another reference and would not be collected
        if a full garbage collection check were done.
        """
        ...
    
    def GetAddressAsString(self, string):
        """
        V.GetAddressAsString(string) -> string
        C++: const char *GetAddressAsString()
        
        Get address of C++ object in format 'Addr=%p' after casting to
        the specified type.  You can get the same information from o.__this__.
        """
        ...
    
    def GetClassName(self):
        """
        V.GetClassName() -> string
        C++: const char *GetClassName()
        
        Return the class name as a string.
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: virtual vtkIdType GetNumberOfGenerationsFromBase(
            const char *name)
        
        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 *name)
        
        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 GetReferenceCount(self):
        """
        V.GetReferenceCount() -> int
        C++: int GetReferenceCount()
        
        Return the current reference count of this object.
        """
        ...
    
    def InitializeObjectBase(self):
        """
        V.InitializeObjectBase()
        C++: void InitializeObjectBase()
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: virtual vtkTypeBool IsA(const char *name)
        
        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 *name)
        
        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 Register(self, vtkObjectBase):
        """
        V.Register(vtkObjectBase)
        C++: virtual void Register(vtkObjectBase *o)
        
        Increase the reference count by 1.
        """
        ...
    
    def SetReferenceCount(self, p_int):
        """
        V.SetReferenceCount(int)
        C++: void SetReferenceCount(int)
        
        Sets the reference count. (This is very dangerous, use with
        care.)
        """
        ...
    
    def UnRegister(self, vtkObjectBase):
        """
        V.UnRegister(vtkObjectBase)
        C++: virtual void UnRegister(vtkObjectBase *o)
        
        Decrease the reference count (release by another object). This
        has the same effect as invoking Delete() (i.e., it reduces the
        reference count by 1).
        """
        ...
    
    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__ = ...


