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
import vtkmodules.vtkIOCore

class vtkIOSSReader(vtkmodules.vtkCommonExecutionModel.vtkReaderAlgorithm):
    class EntityType(int): ...
    BLOCK_END:'EntityType'
    BLOCK_START:'EntityType'
    EDGEBLOCK:'EntityType'
    EDGESET:'EntityType'
    ELEMENTBLOCK:'EntityType'
    ELEMENTSET:'EntityType'
    ENTITY_END:'EntityType'
    ENTITY_START:'EntityType'
    FACEBLOCK:'EntityType'
    FACESET:'EntityType'
    NODEBLOCK:'EntityType'
    NODESET:'EntityType'
    NUMBER_OF_ENTITY_TYPES:'EntityType'
    SET_END:'EntityType'
    SET_START:'EntityType'
    SIDESET:'EntityType'
    STRUCTUREDBLOCK:'EntityType'
    apply_displacements:'getset_descriptor'
    assembly:'getset_descriptor'
    assembly_tag:'getset_descriptor'
    caching:'getset_descriptor'
    catalyst_conduit_channel_name:'getset_descriptor'
    controller:'getset_descriptor'
    database_type_override:'getset_descriptor'
    displacement_magnitude:'getset_descriptor'
    edge_block_field_selection:'getset_descriptor'
    edge_block_selection:'getset_descriptor'
    edge_set_field_selection:'getset_descriptor'
    edge_set_selection:'getset_descriptor'
    element_and_side_ids:'getset_descriptor'
    element_block_field_selection:'getset_descriptor'
    element_block_selection:'getset_descriptor'
    element_set_field_selection:'getset_descriptor'
    element_set_selection:'getset_descriptor'
    face_block_field_selection:'getset_descriptor'
    face_block_selection:'getset_descriptor'
    face_set_field_selection:'getset_descriptor'
    face_set_selection:'getset_descriptor'
    field_suffix_separator:'getset_descriptor'
    file_name:'getset_descriptor'
    file_range:'getset_descriptor'
    file_stride:'getset_descriptor'
    generate_file_id:'getset_descriptor'
    global_field_selection:'getset_descriptor'
    group_alphabetic_vector_field_components:'getset_descriptor'
    group_numeric_vector_field_components:'getset_descriptor'
    include_ghost_nodes:'getset_descriptor'
    m_time:'getset_descriptor'
    merge_exodus_entity_blocks:'getset_descriptor'
    node_block_field_selection:'getset_descriptor'
    node_block_selection:'getset_descriptor'
    node_set_field_selection:'getset_descriptor'
    node_set_selection:'getset_descriptor'
    number_of_file_names:'getset_descriptor'
    number_of_selectors:'getset_descriptor'
    read_all_files_to_determine_structure:'getset_descriptor'
    read_global_fields:'getset_descriptor'
    read_ids:'getset_descriptor'
    read_qa_and_information_records:'getset_descriptor'
    remove_unused_points:'getset_descriptor'
    scan_for_related_files:'getset_descriptor'
    selector:'getset_descriptor'
    side_set_field_selection:'getset_descriptor'
    side_set_selection:'getset_descriptor'
    structured_block_field_selection:'getset_descriptor'
    structured_block_selection:'getset_descriptor'
    def __init__(self, **properties:Any) -> None: ...
    def AddFileName(self, fname:str) -> None: ...
    @overload
    def AddProperty(self, name:str, value:int) -> None: ...
    @overload
    def AddProperty(self, name:str, value:float) -> None: ...
    @overload
    def AddProperty(self, name:str, value:Pointer) -> None: ...
    @overload
    def AddProperty(self, name:str, value:str) -> None: ...
    def AddSelector(self, selector:str) -> bool: ...
    def ApplyDisplacementsOff(self) -> None: ...
    def ApplyDisplacementsOn(self) -> None: ...
    def CachingOff(self) -> None: ...
    def CachingOn(self) -> None: ...
    def ClearFileNames(self) -> None: ...
    def ClearProperties(self) -> None: ...
    def ClearSelectors(self) -> None: ...
    @staticmethod
    def DoTestFilePatternMatching() -> bool: ...
    @staticmethod
    def ENTITY_ID() -> 'vtkInformationIntegerKey': ...
    def ElementAndSideIdsOff(self) -> None: ...
    def ElementAndSideIdsOn(self) -> None: ...
    def GenerateFileIdOff(self) -> None: ...
    def GenerateFileIdOn(self) -> None: ...
    def GetApplyDisplacements(self) -> bool: ...
    def GetAssembly(self) -> 'vtkDataAssembly': ...
    def GetAssemblyTag(self) -> int: ...
    def GetCaching(self) -> bool: ...
    def GetCatalystConduitChannelName(self) -> str: ...
    def GetController(self) -> 'vtkMultiProcessController': ...
    @staticmethod
    def GetDataAssemblyNodeNameForEntityType(type:int) -> str: ...
    def GetDatabaseTypeOverride(self) -> str: ...
    def GetDisplacementMagnitude(self) -> float: ...
    def GetEdgeBlockFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetEdgeBlockIdMapAsString(self) -> 'vtkStringArray': ...
    def GetEdgeBlockSelection(self) -> 'vtkDataArraySelection': ...
    def GetEdgeSetFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetEdgeSetIdMapAsString(self) -> 'vtkStringArray': ...
    def GetEdgeSetSelection(self) -> 'vtkDataArraySelection': ...
    def GetElementAndSideIds(self) -> bool: ...
    def GetElementBlockFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetElementBlockIdMapAsString(self) -> 'vtkStringArray': ...
    def GetElementBlockSelection(self) -> 'vtkDataArraySelection': ...
    def GetElementSetFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetElementSetIdMapAsString(self) -> 'vtkStringArray': ...
    def GetElementSetSelection(self) -> 'vtkDataArraySelection': ...
    def GetEntityIdMapAsString(self, type:int) -> 'vtkStringArray': ...
    def GetEntitySelection(self, type:int) -> 'vtkDataArraySelection': ...
    @staticmethod
    def GetEntityTypeIsBlock(type:int) -> bool: ...
    @staticmethod
    def GetEntityTypeIsSet(type:int) -> bool: ...
    def GetFaceBlockFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetFaceBlockIdMapAsString(self) -> 'vtkStringArray': ...
    def GetFaceBlockSelection(self) -> 'vtkDataArraySelection': ...
    def GetFaceSetFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetFaceSetIdMapAsString(self) -> 'vtkStringArray': ...
    def GetFaceSetSelection(self) -> 'vtkDataArraySelection': ...
    def GetFieldSelection(self, type:int) -> 'vtkDataArraySelection': ...
    def GetFieldSuffixSeparator(self) -> str: ...
    def GetFileName(self, index:int) -> str: ...
    def GetFileRange(self) -> Tuple[int, int]: ...
    def GetFileStride(self) -> int: ...
    def GetFileStrideMaxValue(self) -> int: ...
    def GetFileStrideMinValue(self) -> int: ...
    def GetGenerateFileId(self) -> bool: ...
    def GetGlobalFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetGroupAlphabeticVectorFieldComponents(self) -> bool: ...
    def GetGroupNumericVectorFieldComponents(self) -> bool: ...
    def GetIncludeGhostNodes(self) -> bool: ...
    def GetMTime(self) -> int: ...
    def GetMergeExodusEntityBlocks(self) -> bool: ...
    @staticmethod
    def GetMergedEntityNameForEntityType(type:int) -> str: ...
    def GetNodeBlockFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetNodeBlockIdMapAsString(self) -> 'vtkStringArray': ...
    def GetNodeBlockSelection(self) -> 'vtkDataArraySelection': ...
    def GetNodeSetFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetNodeSetIdMapAsString(self) -> 'vtkStringArray': ...
    def GetNodeSetSelection(self) -> 'vtkDataArraySelection': ...
    def GetNumberOfFileNames(self) -> int: ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def GetNumberOfSelectors(self) -> int: ...
    def GetReadAllFilesToDetermineStructure(self) -> bool: ...
    def GetReadGlobalFields(self) -> bool: ...
    def GetReadIds(self) -> bool: ...
    def GetReadQAAndInformationRecords(self) -> bool: ...
    def GetRemoveUnusedPoints(self) -> bool: ...
    def GetScanForRelatedFiles(self) -> bool: ...
    def GetSelector(self, index:int) -> str: ...
    def GetSideSetFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetSideSetIdMapAsString(self) -> 'vtkStringArray': ...
    def GetSideSetSelection(self) -> 'vtkDataArraySelection': ...
    def GetStructuredBlockFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetStructuredBlockIdMapAsString(self) -> 'vtkStringArray': ...
    def GetStructuredBlockSelection(self) -> 'vtkDataArraySelection': ...
    def GroupAlphabeticVectorFieldComponentsOff(self) -> None: ...
    def GroupAlphabeticVectorFieldComponentsOn(self) -> None: ...
    def GroupNumericVectorFieldComponentsOff(self) -> None: ...
    def GroupNumericVectorFieldComponentsOn(self) -> None: ...
    def IncludeGhostNodesOff(self) -> None: ...
    def IncludeGhostNodesOn(self) -> None: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def MergeExodusEntityBlocksOff(self) -> None: ...
    def MergeExodusEntityBlocksOn(self) -> None: ...
    def NewInstance(self) -> 'vtkIOSSReader': ...
    def ReadAllFilesToDetermineStructureOff(self) -> None: ...
    def ReadAllFilesToDetermineStructureOn(self) -> None: ...
    def ReadArrays(self, __a:int, __b:int, __c:int, __d:int, __e:'vtkDataObject') -> int: ...
    def ReadGlobalFieldsOff(self) -> None: ...
    def ReadGlobalFieldsOn(self) -> None: ...
    def ReadIdsOff(self) -> None: ...
    def ReadIdsOn(self) -> None: ...
    def ReadMesh(self, piece:int, npieces:int, nghosts:int, timestep:int, output:'vtkDataObject') -> int: ...
    def ReadMetaData(self, metadata:'vtkInformation') -> int: ...
    def ReadPoints(self, __a:int, __b:int, __c:int, __d:int, __e:'vtkDataObject') -> int: ...
    def ReadQAAndInformationRecordsOff(self) -> None: ...
    def ReadQAAndInformationRecordsOn(self) -> None: ...
    def RemoveAllEntitySelections(self) -> None: ...
    def RemoveAllFieldSelections(self) -> None: ...
    def RemoveAllSelections(self) -> None: ...
    def RemoveProperty(self, name:str) -> None: ...
    def RemoveUnusedPointsOff(self) -> None: ...
    def RemoveUnusedPointsOn(self) -> None: ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkIOSSReader': ...
    def ScanForRelatedFilesOff(self) -> None: ...
    def ScanForRelatedFilesOn(self) -> None: ...
    def SetApplyDisplacements(self, _arg:bool) -> None: ...
    def SetCaching(self, value:bool) -> None: ...
    def SetCatalystConduitChannelName(self, newString:str) -> None: ...
    def SetController(self, controller:'vtkMultiProcessController') -> None: ...
    def SetDatabaseTypeOverride(self, _arg:str) -> None: ...
    def SetDisplacementMagnitude(self, magnitude:float) -> None: ...
    def SetElementAndSideIds(self, value:bool) -> None: ...
    def SetFieldSuffixSeparator(self, value:str) -> None: ...
    def SetFileName(self, fname:str) -> None: ...
    @overload
    def SetFileRange(self, _arg1:int, _arg2:int) -> None: ...
    @overload
    def SetFileRange(self, _arg:Sequence[int]) -> None: ...
    def SetFileStride(self, _arg:int) -> None: ...
    def SetGenerateFileId(self, _arg:bool) -> None: ...
    def SetGroupAlphabeticVectorFieldComponents(self, value:bool) -> None: ...
    def SetGroupNumericVectorFieldComponents(self, value:bool) -> None: ...
    def SetIncludeGhostNodes(self, _arg:bool) -> None: ...
    def SetMergeExodusEntityBlocks(self, value:bool) -> None: ...
    def SetReadAllFilesToDetermineStructure(self, __a:bool) -> None: ...
    def SetReadGlobalFields(self, value:bool) -> None: ...
    def SetReadIds(self, _arg:bool) -> None: ...
    def SetReadQAAndInformationRecords(self, _arg:bool) -> None: ...
    def SetRemoveUnusedPoints(self, __a:bool) -> None: ...
    def SetScanForRelatedFiles(self, value:bool) -> None: ...
    def SetSelector(self, selector:str) -> None: ...

class vtkIOSSCellGridReader(vtkIOSSReader):
    def __init__(self, **properties:Any) -> 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) -> 'vtkIOSSCellGridReader': ...
    def ReadArrays(self, __a:int, __b:int, __c:int, __d:int, __e:'vtkDataObject') -> int: ...
    def ReadMesh(self, piece:int, npieces:int, nghosts:int, timestep:int, output:'vtkDataObject') -> int: ...
    def ReadMetaData(self, metadata:'vtkInformation') -> int: ...
    def ReadPoints(self, __a:int, __b:int, __c:int, __d:int, __e:'vtkDataObject') -> int: ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkIOSSCellGridReader': ...

class vtkIOSSWriter(vtkmodules.vtkIOCore.vtkWriter):
    assembly_name:'getset_descriptor'
    choose_fields_to_write:'getset_descriptor'
    controller:'getset_descriptor'
    displacement_magnitude:'getset_descriptor'
    edge_block_field_selection:'getset_descriptor'
    edge_block_selector:'getset_descriptor'
    edge_set_field_selection:'getset_descriptor'
    edge_set_selector:'getset_descriptor'
    element_block_field_selection:'getset_descriptor'
    element_block_selector:'getset_descriptor'
    element_set_field_selection:'getset_descriptor'
    element_set_selector:'getset_descriptor'
    face_block_field_selection:'getset_descriptor'
    face_block_selector:'getset_descriptor'
    face_set_field_selection:'getset_descriptor'
    face_set_selector:'getset_descriptor'
    file_name:'getset_descriptor'
    node_block_field_selection:'getset_descriptor'
    node_set_field_selection:'getset_descriptor'
    node_set_selector:'getset_descriptor'
    number_of_edge_block_selectors:'getset_descriptor'
    number_of_edge_set_selectors:'getset_descriptor'
    number_of_element_block_selectors:'getset_descriptor'
    number_of_element_set_selectors:'getset_descriptor'
    number_of_face_block_selectors:'getset_descriptor'
    number_of_face_set_selectors:'getset_descriptor'
    number_of_node_set_selectors:'getset_descriptor'
    number_of_side_set_selectors:'getset_descriptor'
    offset_global_ids:'getset_descriptor'
    preserve_original_ids:'getset_descriptor'
    remove_ghosts:'getset_descriptor'
    side_set_field_selection:'getset_descriptor'
    side_set_selector:'getset_descriptor'
    time_step_range:'getset_descriptor'
    time_step_stride:'getset_descriptor'
    write_qa_and_information_records:'getset_descriptor'
    def __init__(self, **properties:Any) -> None: ...
    def AddEdgeBlockSelector(self, selector:str) -> bool: ...
    def AddEdgeSetSelector(self, selector:str) -> bool: ...
    def AddElementBlockSelector(self, selector:str) -> bool: ...
    def AddElementSetSelector(self, selector:str) -> bool: ...
    def AddFaceBlockSelector(self, selector:str) -> bool: ...
    def AddFaceSetSelector(self, selector:str) -> bool: ...
    def AddNodeSetSelector(self, selector:str) -> bool: ...
    def AddSelector(self, entity:vtkIOSSReader.EntityType, selector:str) -> bool: ...
    def AddSideSetSelector(self, selector:str) -> bool: ...
    def ChooseFieldsToWriteOff(self) -> None: ...
    def ChooseFieldsToWriteOn(self) -> None: ...
    def ClearEdgeBlockSelectors(self) -> None: ...
    def ClearEdgeSetSelectors(self) -> None: ...
    def ClearElementBlockSelectors(self) -> None: ...
    def ClearElementSetSelectors(self) -> None: ...
    def ClearFaceBlockSelectors(self) -> None: ...
    def ClearFaceSetSelectors(self) -> None: ...
    def ClearNodeSetSelectors(self) -> None: ...
    def ClearSelectors(self, entity:vtkIOSSReader.EntityType) -> None: ...
    def ClearSideSetSelectors(self) -> None: ...
    def GetAssemblyName(self) -> str: ...
    def GetChooseFieldsToWrite(self) -> bool: ...
    def GetController(self) -> 'vtkMultiProcessController': ...
    def GetDisplacementMagnitude(self) -> float: ...
    def GetDisplacementMagnitudeMaxValue(self) -> float: ...
    def GetDisplacementMagnitudeMinValue(self) -> float: ...
    def GetEdgeBlockFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetEdgeBlockSelector(self, index:int) -> str: ...
    def GetEdgeSetFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetEdgeSetSelector(self, index:int) -> str: ...
    def GetElementBlockFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetElementBlockSelector(self, index:int) -> str: ...
    def GetElementSetFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetElementSetSelector(self, index:int) -> str: ...
    def GetFaceBlockFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetFaceBlockSelector(self, index:int) -> str: ...
    def GetFaceSetFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetFaceSetSelector(self, index:int) -> str: ...
    def GetFieldSelection(self, type:vtkIOSSReader.EntityType) -> 'vtkDataArraySelection': ...
    def GetFileName(self) -> str: ...
    def GetNodeBlockFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetNodeSetFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetNodeSetSelector(self, index:int) -> str: ...
    def GetNumberOfEdgeBlockSelectors(self) -> int: ...
    def GetNumberOfEdgeSetSelectors(self) -> int: ...
    def GetNumberOfElementBlockSelectors(self) -> int: ...
    def GetNumberOfElementSetSelectors(self) -> int: ...
    def GetNumberOfFaceBlockSelectors(self) -> int: ...
    def GetNumberOfFaceSetSelectors(self) -> int: ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def GetNumberOfNodeSetSelectors(self) -> int: ...
    def GetNumberOfSelectors(self, entity:vtkIOSSReader.EntityType) -> int: ...
    def GetNumberOfSideSetSelectors(self) -> int: ...
    def GetOffsetGlobalIds(self) -> bool: ...
    def GetPreserveOriginalIds(self) -> bool: ...
    def GetRemoveGhosts(self) -> bool: ...
    def GetSelector(self, entity:vtkIOSSReader.EntityType, index:int) -> str: ...
    def GetSideSetFieldSelection(self) -> 'vtkDataArraySelection': ...
    def GetSideSetSelector(self, index:int) -> str: ...
    def GetTimeStepRange(self) -> Tuple[int, int]: ...
    def GetTimeStepStride(self) -> int: ...
    def GetTimeStepStrideMaxValue(self) -> int: ...
    def GetTimeStepStrideMinValue(self) -> int: ...
    def GetWriteQAAndInformationRecords(self) -> bool: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def NewInstance(self) -> 'vtkIOSSWriter': ...
    def OffsetGlobalIdsOff(self) -> None: ...
    def OffsetGlobalIdsOn(self) -> None: ...
    def PreserveOriginalIdsOff(self) -> None: ...
    def PreserveOriginalIdsOn(self) -> None: ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkIOSSWriter': ...
    def SetAssemblyName(self, _arg:str) -> None: ...
    def SetChooseFieldsToWrite(self, _arg:bool) -> None: ...
    def SetController(self, controller:'vtkMultiProcessController') -> None: ...
    def SetDisplacementMagnitude(self, _arg:float) -> None: ...
    def SetEdgeBlockSelector(self, selector:str) -> None: ...
    def SetEdgeSetSelector(self, selector:str) -> None: ...
    def SetElementBlockSelector(self, selector:str) -> None: ...
    def SetElementSetSelector(self, selector:str) -> None: ...
    def SetFaceBlockSelector(self, selector:str) -> None: ...
    def SetFaceSetSelector(self, selector:str) -> None: ...
    def SetFileName(self, _arg:str) -> None: ...
    def SetNodeSetSelector(self, selector:str) -> None: ...
    def SetOffsetGlobalIds(self, _arg:bool) -> None: ...
    def SetPreserveOriginalIds(self, _arg:bool) -> None: ...
    def SetRemoveGhosts(self, _arg:bool) -> None: ...
    def SetSelector(self, entity:vtkIOSSReader.EntityType, selector:str) -> None: ...
    def SetSideSetSelector(self, selector:str) -> None: ...
    @overload
    def SetTimeStepRange(self, _arg1:int, _arg2:int) -> None: ...
    @overload
    def SetTimeStepRange(self, _arg:Sequence[int]) -> None: ...
    def SetTimeStepStride(self, _arg:int) -> None: ...
    def SetWriteQAAndInformationRecords(self, _arg:bool) -> None: ...
    def WriteQAAndInformationRecordsOff(self) -> None: ...
    def WriteQAAndInformationRecordsOn(self) -> None: ...

