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

from .vtkObjectBase import vtkObjectBase

class vtkObject(vtkObjectBase):
    """
    vtkObject - abstract base class for most VTK objects
    
    Superclass: vtkObjectBase
    
    vtkObject is the base class for most objects in the visualization
    toolkit. vtkObject provides methods for tracking modification time,
    debugging, printing, and event callbacks. Most objects created within
    the VTK framework should be a subclass of vtkObject or one of its
    children.  The few exceptions tend to be very small helper classes
    that usually never get instantiated or situations where multiple
    inheritance gets in the way.  vtkObject also 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.
    
    @warning
    Note: in VTK objects should always be created with the New() method
    and deleted with the Delete() method. VTK objects cannot be allocated
    off the stack (i.e., automatic objects) because the constructor is a
    protected method.
    
    @sa
    vtkCommand vtkTimeStamp
    """
    def AddObserver(self, p_int, function):
        """
        V.AddObserver(int, function) -> int
        C++: unsigned long AddObserver(const char *event,
            vtkCommand *command, float priority=0.0f)
        
        Add an event callback function(vtkObject, int) for an event type.
        Returns a handle that can be used with RemoveEvent(int).
        """
        ...
    
    def BreakOnError(self):
        """
        V.BreakOnError()
        C++: static void BreakOnError()
        
        This method is called when vtkErrorMacro executes. It allows the
        debugger to break on error.
        """
        ...
    
    def DebugOff(self):
        """
        V.DebugOff()
        C++: virtual void DebugOff()
        
        Turn debugging output off.
        """
        ...
    
    def DebugOn(self):
        """
        V.DebugOn()
        C++: virtual void DebugOn()
        
        Turn debugging output on.
        """
        ...
    
    def GetCommand(self, p_int):
        """
        V.GetCommand(int) -> vtkCommand
        C++: vtkCommand *GetCommand(unsigned long tag)
        
        Allow people to add/remove/invoke observers (callbacks) to any
        VTK object.  This is an implementation of the subject/observer
        design pattern. An observer is added by specifying an event to
        respond to and a vtkCommand to execute. It returns an unsigned
        long tag which can be used later to remove the event or retrieve
        the command. When events are invoked, the observers are called in
        the order they were added. If a priority value is specified, then
        the higher priority commands are called first. A command may set
        an abort flag to stop processing of the event. (See vtkCommand.h
        for more information.)
        """
        ...
    
    def GetDebug(self):
        """
        V.GetDebug() -> bool
        C++: bool GetDebug()
        
        Get the value of the debug flag.
        """
        ...
    
    def GetGlobalWarningDisplay(self):
        """
        V.GetGlobalWarningDisplay() -> int
        C++: static int GetGlobalWarningDisplay()
        
        This is a global flag that controls whether any debug, warning or
        error messages are displayed.
        """
        ...
    
    def GetMTime(self):
        """
        V.GetMTime() -> int
        C++: virtual vtkMTimeType GetMTime()
        
        Return this object's modified time.
        """
        ...
    
    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 GlobalWarningDisplayOff(self):
        """
        V.GlobalWarningDisplayOff()
        C++: static void GlobalWarningDisplayOff()
        
        This is a global flag that controls whether any debug, warning or
        error messages are displayed.
        """
        ...
    
    def GlobalWarningDisplayOn(self):
        """
        V.GlobalWarningDisplayOn()
        C++: static void GlobalWarningDisplayOn()
        
        This is a global flag that controls whether any debug, warning or
        error messages are displayed.
        """
        ...
    
    def HasObserver(self, p_int, vtkCommand):
        """
        V.HasObserver(int, vtkCommand) -> int
        C++: vtkTypeBool HasObserver(unsigned long event, vtkCommand *)
        V.HasObserver(string, vtkCommand) -> int
        C++: vtkTypeBool HasObserver(const char *event, vtkCommand *)
        V.HasObserver(int) -> int
        C++: vtkTypeBool HasObserver(unsigned long event)
        V.HasObserver(string) -> int
        C++: vtkTypeBool HasObserver(const char *event)
        
        Allow people to add/remove/invoke observers (callbacks) to any
        VTK object.  This is an implementation of the subject/observer
        design pattern. An observer is added by specifying an event to
        respond to and a vtkCommand to execute. It returns an unsigned
        long tag which can be used later to remove the event or retrieve
        the command. When events are invoked, the observers are called in
        the order they were added. If a priority value is specified, then
        the higher priority commands are called first. A command may set
        an abort flag to stop processing of the event. (See vtkCommand.h
        for more information.)
        """
        ...
    
    def InvokeEvent(self, p_int, void):
        """
        V.InvokeEvent(int, void) -> int
        C++: int InvokeEvent(unsigned long event, void *callData)
        V.InvokeEvent(string, void) -> int
        C++: int InvokeEvent(const char *event, void *callData)
        V.InvokeEvent(int) -> int
        C++: int InvokeEvent(unsigned long event)
        V.InvokeEvent(string) -> int
        C++: int InvokeEvent(const char *event)
        
        This method invokes an event and return whether the event was
        aborted or not. If the event was aborted, the return value is 1,
        otherwise it is 0.
        """
        ...
    
    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 Modified(self):
        """
        V.Modified()
        C++: virtual void Modified()
        
        Update the modification time for this object. Many filters rely
        on the modification time to determine if they need to recompute
        their data. The modification time is a unique monotonically
        increasing unsigned long integer.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkObject
        C++: vtkObject *NewInstance()
        """
        ...
    
    def RemoveAllObservers(self):
        """
        V.RemoveAllObservers()
        C++: void RemoveAllObservers()
        """
        ...
    
    def RemoveObserver(self, vtkCommand):
        """
        V.RemoveObserver(vtkCommand)
        C++: void RemoveObserver(vtkCommand *)
        V.RemoveObserver(int)
        C++: void RemoveObserver(unsigned long tag)
        
        Allow people to add/remove/invoke observers (callbacks) to any
        VTK object.  This is an implementation of the subject/observer
        design pattern. An observer is added by specifying an event to
        respond to and a vtkCommand to execute. It returns an unsigned
        long tag which can be used later to remove the event or retrieve
        the command. When events are invoked, the observers are called in
        the order they were added. If a priority value is specified, then
        the higher priority commands are called first. A command may set
        an abort flag to stop processing of the event. (See vtkCommand.h
        for more information.)
        """
        ...
    
    def RemoveObservers(self, p_int, vtkCommand):
        """
        V.RemoveObservers(int, vtkCommand)
        C++: void RemoveObservers(unsigned long event, vtkCommand *)
        V.RemoveObservers(string, vtkCommand)
        C++: void RemoveObservers(const char *event, vtkCommand *)
        V.RemoveObservers(int)
        C++: void RemoveObservers(unsigned long event)
        V.RemoveObservers(string)
        C++: void RemoveObservers(const char *event)
        
        Allow people to add/remove/invoke observers (callbacks) to any
        VTK object.  This is an implementation of the subject/observer
        design pattern. An observer is added by specifying an event to
        respond to and a vtkCommand to execute. It returns an unsigned
        long tag which can be used later to remove the event or retrieve
        the command. When events are invoked, the observers are called in
        the order they were added. If a priority value is specified, then
        the higher priority commands are called first. A command may set
        an abort flag to stop processing of the event. (See vtkCommand.h
        for more information.)
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkObject
        C++: static vtkObject *SafeDownCast(vtkObjectBase *o)
        """
        ...
    
    def SetDebug(self, bool):
        """
        V.SetDebug(bool)
        C++: void SetDebug(bool debugFlag)
        
        Set the value of the debug flag. A true value turns debugging on.
        """
        ...
    
    def SetGlobalWarningDisplay(self, p_int):
        """
        V.SetGlobalWarningDisplay(int)
        C++: static void SetGlobalWarningDisplay(int val)
        
        This is a global flag that controls whether any debug, warning or
        error messages are displayed.
        """
        ...
    
    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__ = ...


