# Interface methods for submodule: ImageRegistrationMethodv4
from typing import Union, Any
# additional imports
from .support.template_class import itkTemplate as _itkTemplate
from ._proxies import ProcessObjectProxy as _ProcessObjectProxy


# Interface methods for class: ImageRegistrationMethodv4
class ImageRegistrationMethodv4Proxy(_ProcessObjectProxy):
	@staticmethod
	def New():
		""""""
		...

	def Clone(self):
		""""""
		...

	def GetNameOfClass(self):
		""""""
		...

	@overload
	def SetFixedImage(self, image) -> None:
		""""""
		...

	@overload
	def SetFixedImage(self, arg0: int, arg1) -> None:
		""""""
		...

	@overload
	def GetFixedImage(self):
		""""""
		...

	@overload
	def GetFixedImage(self, arg0: int):
		""""""
		...

	@overload
	def SetMovingImage(self, image) -> None:
		""""""
		...

	@overload
	def SetMovingImage(self, arg0: int, arg1) -> None:
		""""""
		...

	@overload
	def GetMovingImage(self):
		""""""
		...

	@overload
	def GetMovingImage(self, arg0: int):
		""""""
		...

	@overload
	def SetFixedPointSet(self, pointSet) -> None:
		""""""
		...

	@overload
	def SetFixedPointSet(self, arg0: int, arg1) -> None:
		""""""
		...

	@overload
	def GetFixedPointSet(self):
		""""""
		...

	@overload
	def GetFixedPointSet(self, arg0: int):
		""""""
		...

	@overload
	def SetMovingPointSet(self, pointSet) -> None:
		""""""
		...

	@overload
	def SetMovingPointSet(self, arg0: int, arg1) -> None:
		""""""
		...

	@overload
	def GetMovingPointSet(self):
		""""""
		...

	@overload
	def GetMovingPointSet(self, arg0: int):
		""""""
		...

	def SetOptimizer(self, _arg) -> None:
		""""""
		...

	def GetModifiableOptimizer(self):
		""""""
		...

	def GetOptimizer(self):
		""""""
		...

	def SetOptimizerWeights(self, arg0) -> None:
		""""""
		...

	def GetOptimizerWeights(self):
		""""""
		...

	def SetMetric(self, _arg) -> None:
		""""""
		...

	def GetModifiableMetric(self):
		""""""
		...

	def GetMetric(self):
		""""""
		...

	def SetMetricSamplingStrategy(self, _arg) -> None:
		""""""
		...

	def GetMetricSamplingStrategy(self):
		""""""
		...

	@overload
	def MetricSamplingReinitializeSeed(self) -> None:
		""""""
		...

	@overload
	def MetricSamplingReinitializeSeed(self, seed: int) -> None:
		""""""
		...

	def SetMetricSamplingPercentage(self, arg0: float) -> None:
		""""""
		...

	def SetMetricSamplingPercentagePerLevel(self, samplingPercentages: Sequence[float]) -> None:
		""""""
		...

	def GetMetricSamplingPercentagePerLevel(self) -> Sequence[float]:
		""""""
		...

	def SetFixedInitialTransformInput(self, _arg) -> None:
		""""""
		...

	def SetFixedInitialTransform(self, _arg) -> None:
		""""""
		...

	def GetFixedInitialTransformInput(self):
		""""""
		...

	def GetFixedInitialTransform(self):
		""""""
		...

	def SetMovingInitialTransformInput(self, _arg) -> None:
		""""""
		...

	def SetMovingInitialTransform(self, _arg) -> None:
		""""""
		...

	def GetMovingInitialTransformInput(self):
		""""""
		...

	def GetMovingInitialTransform(self):
		""""""
		...

	def SetInitialTransformInput(self, _arg) -> None:
		""""""
		...

	def SetInitialTransform(self, _arg) -> None:
		""""""
		...

	def GetInitialTransformInput(self):
		""""""
		...

	def GetInitialTransform(self):
		""""""
		...

	def SetTransformParametersAdaptorsPerLevel(self, arg0) -> None:
		""""""
		...

	def GetTransformParametersAdaptorsPerLevel(self):
		""""""
		...

	def SetNumberOfLevels(self, arg0: int) -> None:
		""""""
		...

	def GetNumberOfLevels(self) -> int:
		""""""
		...

	def SetShrinkFactorsPerLevel(self, factors: Sequence[int]) -> None:
		""""""
		...

	def GetShrinkFactorsPerDimension(self, level: int) -> Sequence[int]:
		""""""
		...

	def SetShrinkFactorsPerDimension(self, level: int, factors: Sequence[int]) -> None:
		""""""
		...

	def SetSmoothingSigmasPerLevel(self, _arg: Sequence[float]) -> None:
		""""""
		...

	def GetSmoothingSigmasPerLevel(self) -> Sequence[float]:
		""""""
		...

	def SetSmoothingSigmasAreSpecifiedInPhysicalUnits(self, _arg: bool) -> None:
		""""""
		...

	def GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self) -> bool:
		""""""
		...

	def SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self) -> None:
		""""""
		...

	def SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self) -> None:
		""""""
		...

	def MakeOutput(self, arg0: int):
		""""""
		...

	def GetOutput(self):
		""""""
		...

	def GetTransformOutput(self):
		""""""
		...

	def GetModifiableTransform(self):
		""""""
		...

	def GetTransform(self):
		""""""
		...

	def GetCurrentLevel(self) -> int:
		""""""
		...

	def GetCurrentIteration(self) -> int:
		""""""
		...

	def GetCurrentMetricValue(self) -> float:
		""""""
		...

	def GetCurrentConvergenceValue(self) -> float:
		""""""
		...

	def GetIsConverged(self) -> bool:
		""""""
		...

	def SetInPlace(self, _arg: bool) -> None:
		""""""
		...

	def GetInPlace(self) -> bool:
		""""""
		...

	def InPlaceOn(self) -> None:
		""""""
		...

	def InPlaceOff(self) -> None:
		""""""
		...

	def InitializeCenterOfLinearOutputTransformOn(self) -> None:
		""""""
		...

	def InitializeCenterOfLinearOutputTransformOff(self) -> None:
		""""""
		...

	def SetInitializeCenterOfLinearOutputTransform(self, _arg: bool) -> None:
		""""""
		...

	def GetInitializeCenterOfLinearOutputTransform(self) -> bool:
		""""""
		...

	def InitializeCenterOfLinearOutputTransform(self) -> None:
		""""""
		...

