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.vtkCommonDataModel
import vtkmodules.vtkFiltersCore

class vtkSMPContourGrid(vtkmodules.vtkFiltersCore.vtkContourGrid):
    merge_pieces:'getset_descriptor'
    def __init__(self, **properties:Any) -> None: ...
    def GetMergePieces(self) -> bool: ...
    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 MergePiecesOff(self) -> None: ...
    def MergePiecesOn(self) -> None: ...
    def NewInstance(self) -> 'vtkSMPContourGrid': ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkSMPContourGrid': ...
    def SetMergePieces(self, _arg:bool) -> None: ...

class vtkSMPMergePoints(vtkmodules.vtkCommonDataModel.vtkMergePoints):
    max_id:'getset_descriptor'
    number_of_buckets:'getset_descriptor'
    def __init__(self, **properties:Any) -> None: ...
    def FixSizeOfPointArray(self) -> None: ...
    def GetMaxId(self) -> int: ...
    def GetNumberOfBuckets(self) -> int: ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def GetNumberOfIdsInBucket(self, idx:int) -> int: ...
    def InitializeMerge(self) -> None: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def Merge(self, locator:'vtkSMPMergePoints', idx:int, outPd:'vtkPointData', inPd:'vtkPointData', idList:'vtkIdList') -> None: ...
    def NewInstance(self) -> 'vtkSMPMergePoints': ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkSMPMergePoints': ...

class vtkSMPMergePolyDataHelper(object):
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, __a:'vtkSMPMergePolyDataHelper') -> None: ...

