# Interface methods for submodule: CompositeTransform
from typing import Union, Any
# additional imports
from .support.template_class import itkTemplate as _itkTemplate
from ._proxies import MultiTransformProxy as _MultiTransformProxy


# Interface methods for class: CompositeTransform
class CompositeTransformProxy(_MultiTransformProxy):
	def GetNameOfClass(self):
		""""""
		...

	@staticmethod
	def New():
		""""""
		...

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

	def SetNthTransformToOptimize(self, i: int, state: bool) -> None:
		""""""
		...

	def SetNthTransformToOptimizeOn(self, i: int) -> None:
		""""""
		...

	def SetNthTransformToOptimizeOff(self, i: int) -> None:
		""""""
		...

	def SetAllTransformsToOptimize(self, state: bool) -> None:
		""""""
		...

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

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

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

	def GetNthTransformToOptimize(self, i: int) -> bool:
		""""""
		...

	def GetTransformsToOptimizeFlags(self):
		""""""
		...

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

	def GetInverse(self, inverse) -> bool:
		""""""
		...

	def GetInverseTransform(self):
		""""""
		...

	def TransformPoint(self, inputPoint: Sequence[float]) -> Sequence[float]:
		""""""
		...

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

	@overload
	def TransformVector(self, inputVector: vnl_vector_fixed) -> vnl_vector_fixed:
		""""""
		...

	@overload
	def TransformVector(self, inputVector):
		""""""
		...

	@overload
	def TransformVector(self, inputVector: Sequence[float], inputPoint: Sequence[float]) -> Sequence[float]:
		""""""
		...

	@overload
	def TransformVector(self, inputVector: vnl_vector_fixed, inputPoint: Sequence[float]) -> vnl_vector_fixed:
		""""""
		...

	@overload
	def TransformVector(self, inputVector, inputPoint: Sequence[float]):
		""""""
		...

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

	@overload
	def TransformCovariantVector(self, arg0):
		""""""
		...

	@overload
	def TransformCovariantVector(self, inputVector: Sequence[float], inputPoint: Sequence[float]) -> Sequence[float]:
		""""""
		...

	@overload
	def TransformCovariantVector(self, inputVector, inputPoint: Sequence[float]):
		""""""
		...

	@overload
	def TransformDiffusionTensor3D(self, inputTensor):
		""""""
		...

	@overload
	def TransformDiffusionTensor3D(self, inputTensor, inputPoint: Sequence[float]):
		""""""
		...

	@overload
	def TransformSymmetricSecondRankTensor(self, inputTensor):
		""""""
		...

	@overload
	def TransformSymmetricSecondRankTensor(self, inputTensor, inputPoint: Sequence[float]):
		""""""
		...

	def GetTransformCategory(self):
		""""""
		...

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

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

	def GetFixedParameters(self):
		""""""
		...

	def SetFixedParameters(self, inputParameters) -> None:
		""""""
		...

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

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

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

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

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

	def ComputeJacobianWithRespectToParameters(self, p: Sequence[float], outJacobian) -> None:
		""""""
		...

	def ComputeJacobianWithRespectToParametersCachedTemporaries(self, p: Sequence[float], outJacobian, cacheJacobian) -> None:
		""""""
		...

