# Interface methods for submodule: PointSetToPointSetMetricv4
from typing import Union, Any
# additional imports
from .support.template_class import itkTemplate as _itkTemplate
from ._proxies import ObjectToObjectMetricBaseTemplateProxy as _ObjectToObjectMetricBaseTemplateProxy


# Interface methods for class: PointSetToPointSetMetricv4
class PointSetToPointSetMetricv4Proxy(_ObjectToObjectMetricBaseTemplateProxy):
	def GetNameOfClass(self):
		""""""
		...

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

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

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

	def SetParameters(self, params) -> None:
		""""""
		...

	def GetParameters(self):
		""""""
		...

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

	def UpdateTransformParameters(self, derivative: Sequence[float], factor: float) -> None:
		""""""
		...

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

	def GetModifiableFixedTransform(self):
		""""""
		...

	def GetFixedTransform(self):
		""""""
		...

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

	def GetModifiableMovingTransform(self):
		""""""
		...

	def GetMovingTransform(self):
		""""""
		...

	def SetTransform(self, transform) -> None:
		""""""
		...

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

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

	def SetVirtualDomain(self, spacing: Sequence[float], origin: Sequence[float], direction, region: ImageRegion) -> None:
		""""""
		...

	def SetVirtualDomainFromImage(self, virtualImage) -> None:
		""""""
		...

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

	def GetVirtualDomainTimeStamp(self):
		""""""
		...

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

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

	def GetVirtualDirection(self):
		""""""
		...

	def GetVirtualRegion(self) -> ImageRegion:
		""""""
		...

	def GetModifiableVirtualImage(self):
		""""""
		...

	def GetVirtualImage(self):
		""""""
		...

	def ComputeParameterOffsetFromVirtualIndex(self, index: Sequence[int], numberOfLocalParameters: int) -> int:
		""""""
		...

	def ComputeParameterOffsetFromVirtualPoint(self, point: Sequence[float], numberOfLocalParameters: int) -> int:
		""""""
		...

	@overload
	def IsInsideVirtualDomain(self, point: Sequence[float]) -> bool:
		""""""
		...

	@overload
	def IsInsideVirtualDomain(self, index: Sequence[int]) -> bool:
		""""""
		...

	def GetMetricCategory(self):
		""""""
		...

	def SetFixedObject(self, object) -> None:
		""""""
		...

	def SetMovingObject(self, object) -> None:
		""""""
		...

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

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

	def GetModifiableFixedTransformedPointSet(self):
		""""""
		...

	def GetFixedTransformedPointSet(self):
		""""""
		...

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

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

	def GetModifiableMovingTransformedPointSet(self):
		""""""
		...

	def GetMovingTransformedPointSet(self):
		""""""
		...

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

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

	def GetDerivative(self, arg0: Sequence[float]) -> None:
		""""""
		...

	def GetValueAndDerivative(self, arg0: float, arg1: Sequence[float]) -> None:
		""""""
		...

	def GetVirtualTransformedPointSet(self):
		""""""
		...

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

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

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

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

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

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

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

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

	@overload
	def GetLocalNeighborhoodValue(self, arg0: Sequence[float], pixel: int) -> float:
		""""""
		...

	@overload
	def GetLocalNeighborhoodValue(self, arg0: Sequence[float], pixel: float) -> float:
		""""""
		...

	@overload
	def GetLocalNeighborhoodDerivative(self, arg0: Sequence[float], pixel: int) -> Sequence[float]:
		""""""
		...

	@overload
	def GetLocalNeighborhoodDerivative(self, arg0: Sequence[float], pixel: float) -> Sequence[float]:
		""""""
		...

	@overload
	def GetLocalNeighborhoodValueAndDerivative(self, arg0: Sequence[float], arg1: float, arg2: Sequence[float], pixel: int) -> None:
		""""""
		...

	@overload
	def GetLocalNeighborhoodValueAndDerivative(self, arg0: Sequence[float], arg1: float, arg2: Sequence[float], pixel: float) -> None:
		""""""
		...

