from typing import overload, Any, Callable, TypeVar, Union
from typing import Tuple, List, Sequence, MutableSequence

Callback = Union[Callable[..., None], None]
Buffer = TypeVar('Buffer')
Pointer = TypeVar('Pointer')
Template = TypeVar('Template')

import vtkmodules.vtkCommonCore
import vtkmodules.vtkCommonExecutionModel

class vtkTensorPrincipalInvariants(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm):
    def GetCellDataArraySelection(self) -> 'vtkDataArraySelection': ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def GetPointDataArraySelection(self) -> 'vtkDataArraySelection': ...
    def GetScaleVectors(self) -> bool: ...
    @staticmethod
    def GetSigmaValueArrayName(baseName:str, index:int) -> str: ...
    @staticmethod
    def GetSigmaVectorArrayName(baseName:str, index:int) -> str: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def NewInstance(self) -> 'vtkTensorPrincipalInvariants': ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkTensorPrincipalInvariants': ...
    def SetScaleVectors(self, _arg:bool) -> None: ...

class vtkYieldCriteria(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm):
    class Criterion(int):
        PrincipalStress:'Criterion'
        Tresca:'Criterion'
        VonMises:'Criterion'
    def GetCellDataArraySelection(self) -> 'vtkDataArraySelection': ...
    def GetCriteriaSelection(self) -> 'vtkDataArraySelection': ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def GetPointDataArraySelection(self) -> 'vtkDataArraySelection': ...
    def GetScaleVectors(self) -> bool: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def NewInstance(self) -> 'vtkYieldCriteria': ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkYieldCriteria': ...
    def SetScaleVectors(self, _arg:bool) -> None: ...

