# Interface methods for submodule: LevelSetFunction
from typing import Union, Any
# additional imports
from .support.template_class import itkTemplate as _itkTemplate
from ._proxies import FiniteDifferenceFunctionProxy as _FiniteDifferenceFunctionProxy


# Interface methods for class: LevelSetFunction
class LevelSetFunctionProxy(_FiniteDifferenceFunctionProxy):
	@staticmethod
	def New():
		""""""
		...

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

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

	def AdvectionField(self, arg0, arg1: Sequence[float], arg2 = 0) -> Sequence[float]:
		""""""
		...

	def PropagationSpeed(self, arg0, arg1: Sequence[float], arg2 = 0) -> float:
		""""""
		...

	def CurvatureSpeed(self, arg0, arg1: Sequence[float], arg2 = ...) -> float:
		""""""
		...

	def LaplacianSmoothingSpeed(self, arg0, arg1: Sequence[float], arg2 = 0) -> float:
		""""""
		...

	def SetAdvectionWeight(self, a: float) -> None:
		""""""
		...

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

	def SetPropagationWeight(self, p: float) -> None:
		""""""
		...

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

	def SetCurvatureWeight(self, c: float) -> None:
		""""""
		...

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

	def SetLaplacianSmoothingWeight(self, c: float) -> None:
		""""""
		...

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

	def SetEpsilonMagnitude(self, e: float) -> None:
		""""""
		...

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

	def ComputeUpdate(self, it, globalData, arg2: Sequence[float] = ...) -> float:
		""""""
		...

	def ComputeGlobalTimeStep(self, GlobalData) -> float:
		""""""
		...

	def GetGlobalDataPointer(self):
		""""""
		...

	def Initialize(self, r: Sequence[int]) -> None:
		""""""
		...

	def ReleaseGlobalDataPointer(self, GlobalData) -> None:
		""""""
		...

	def ComputeCurvatureTerm(self, arg0, arg1: Sequence[float], gd = 0) -> float:
		""""""
		...

	def ComputeMeanCurvature(self, arg0, arg1: Sequence[float], gd = 0) -> float:
		""""""
		...

	def ComputeMinimalCurvature(self, arg0, arg1: Sequence[float], gd = 0) -> float:
		""""""
		...

	def Compute3DMinimalCurvature(self, arg0, arg1: Sequence[float], gd = 0) -> float:
		""""""
		...

	def SetUseMinimalCurvature(self, b: bool) -> None:
		""""""
		...

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

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

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

	@staticmethod
	def SetMaximumCurvatureTimeStep(n: float) -> None:
		""""""
		...

	@staticmethod
	def GetMaximumCurvatureTimeStep() -> float:
		""""""
		...

	@staticmethod
	def SetMaximumPropagationTimeStep(n: float) -> None:
		""""""
		...

	@staticmethod
	def GetMaximumPropagationTimeStep() -> float:
		""""""
		...

