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.vtkRenderingCore

class vtkHyperTreeGridMapper(vtkmodules.vtkRenderingCore.vtkMapper):
    bounds:'getset_descriptor'
    composite_data_display_attributes:'getset_descriptor'
    input_connection:'getset_descriptor'
    input_data_object:'getset_descriptor'
    use_adaptive_decimation:'getset_descriptor'
    def __init__(self, **properties:Any) -> None: ...
    def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ...
    def GetBlockVisibility(self, index:int) -> bool: ...
    @overload
    def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ...
    @overload
    def GetBounds(self, bounds:MutableSequence[float]) -> None: ...
    def GetBoundsComposite(self, bounds:MutableSequence[float]) -> None: ...
    def GetCompositeDataDisplayAttributes(self) -> 'vtkCompositeDataDisplayAttributes': ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def GetUseAdaptiveDecimation(self) -> bool: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def NewInstance(self) -> 'vtkHyperTreeGridMapper': ...
    def RemoveBlockVisibilities(self) -> None: ...
    def RemoveBlockVisibility(self, index:int) -> None: ...
    def Render(self, ren:'vtkRenderer', act:'vtkActor') -> None: ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridMapper': ...
    def SetBlockVisibility(self, index:int, visible:bool) -> None: ...
    def SetCompositeDataDisplayAttributes(self, attributes:'vtkCompositeDataDisplayAttributes') -> None: ...
    @overload
    def SetInputConnection(self, port:int, input:'vtkAlgorithmOutput') -> None: ...
    @overload
    def SetInputConnection(self, input:'vtkAlgorithmOutput') -> None: ...
    @overload
    def SetInputDataObject(self, port:int, input:'vtkDataObject') -> None: ...
    @overload
    def SetInputDataObject(self, input:'vtkDataObject') -> None: ...
    def SetUseAdaptiveDecimation(self, _arg:bool) -> None: ...
    def UseAdaptiveDecimationOff(self) -> None: ...
    def UseAdaptiveDecimationOn(self) -> None: ...

