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

class vtkSerDesMock(vtkmodules.vtkCommonCore.vtkObject):
    class CStyleEnum(int): ...
    class MemberScopedEnum(int):
        Value1:'MemberScopedEnum'
        Value2:'MemberScopedEnum'
    Value1:'CStyleEnum'
    Value2:'CStyleEnum'
    def __init__(self, **properties:Any) -> None: ...
    def CallWithArguments(self, arg0:'CStyleEnum', arg1:'MemberScopedEnum', arg2:'vtkSerDesMockObject', arg3:'vtkSerDesMockObject', arg4:float, arg5:MutableSequence[float], arg6:str, arg7:str, arg8:Sequence[int], arg9:Sequence[float], arg10:Sequence[str] , arg11:'vtkBoundingBox', arg12:'vtkColor3d', arg13:'vtkColor3f', arg14:'vtkColor3ub', arg15:'vtkColor4d', arg16:'vtkColor4f', arg17:'vtkColor4ub', arg18:'vtkRectd', arg19:'vtkRectf', arg20:'vtkRecti', arg21:'vtkTuple_IiLi3EE', arg22:'vtkVector_IiLi3EE', arg23:'vtkVector2d', arg24:'vtkVector2f', arg25:'vtkVector2i', arg26:'vtkVector3d', arg27:'vtkVector3f', arg28:'vtkVector3i', arg29:'vtkVector4d', arg30:'vtkVector4i') -> None: ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def NewInstance(self) -> 'vtkSerDesMock': ...
    def ReturnBoundingBox(self) -> 'vtkBoundingBox': ...
    def ReturnCStyleEnum(self) -> 'CStyleEnum': ...
    def ReturnCharPointer(self) -> str: ...
    def ReturnColor3d(self) -> 'vtkColor3d': ...
    def ReturnColor3f(self) -> 'vtkColor3f': ...
    def ReturnColor3ub(self) -> 'vtkColor3ub': ...
    def ReturnColor4d(self) -> 'vtkColor4d': ...
    def ReturnColor4f(self) -> 'vtkColor4f': ...
    def ReturnColor4ub(self) -> 'vtkColor4ub': ...
    def ReturnMemberScopedEnum(self) -> 'MemberScopedEnum': ...
    def ReturnNumericArray(self) -> Tuple[float, float, float, float]: ...
    def ReturnNumericScalar(self) -> float: ...
    def ReturnRectd(self) -> 'vtkRectd': ...
    def ReturnRectf(self) -> 'vtkRectf': ...
    def ReturnRecti(self) -> 'vtkRecti': ...
    def ReturnStdString(self) -> str: ...
    def ReturnStdVectorOfInt(self) -> Tuple[int, int]: ...
    def ReturnStdVectorOfReal(self) -> Tuple[float, float]: ...
    def ReturnStdVectorOfStdString(self) -> Tuple[str, str]: ...
    def ReturnTupleInt3(self) -> 'vtkTuple_IiLi3EE': ...
    def ReturnVTKObjectRawPointer(self) -> 'vtkSerDesMockObject': ...
    def ReturnVTKSmartPointer(self) -> 'vtkSerDesMockObject': ...
    def ReturnVector2d(self) -> 'vtkVector2d': ...
    def ReturnVector2f(self) -> 'vtkVector2f': ...
    def ReturnVector2i(self) -> 'vtkVector2i': ...
    def ReturnVector3d(self) -> 'vtkVector3d': ...
    def ReturnVector3f(self) -> 'vtkVector3f': ...
    def ReturnVector3i(self) -> 'vtkVector3i': ...
    def ReturnVector4d(self) -> 'vtkVector4d': ...
    def ReturnVector4i(self) -> 'vtkVector4i': ...
    def ReturnVectorInt3(self) -> 'vtkVector_IiLi3EE': ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkSerDesMock': ...

class vtkSerDesMockObject(vtkmodules.vtkCommonCore.vtkObject):
    tag:'getset_descriptor'
    def __init__(self, **properties:Any) -> None: ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def GetTag(self) -> int: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def NewInstance(self) -> 'vtkSerDesMockObject': ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkSerDesMockObject': ...
    def SetTag(self, _arg:int) -> None: ...

