# Interface methods for submodule: LBFGS2Optimizerv4Template
from typing import Union, Any
# additional imports
from .support.template_class import itkTemplate as _itkTemplate
from ._proxies import GradientDescentOptimizerv4TemplateProxy as _GradientDescentOptimizerv4TemplateProxy


# Interface methods for class: LBFGS2Optimizerv4Template
class LBFGS2Optimizerv4TemplateProxy(_GradientDescentOptimizerv4TemplateProxy):
	@staticmethod
	def New():
		""""""
		...

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

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

	def StartOptimization(self, doOnlyInitialization: bool = False) -> None:
		""""""
		...

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

	def GetStopConditionDescription(self) -> str:
		""""""
		...

	def SetHessianApproximationAccuracy(self, m: int) -> None:
		""""""
		...

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

	def SetSolutionAccuracy(self, epsilon: float) -> None:
		""""""
		...

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

	def SetDeltaConvergenceDistance(self, nPast: int) -> None:
		""""""
		...

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

	def SetDeltaConvergenceTolerance(self, tol: float) -> None:
		""""""
		...

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

	def SetMaximumIterations(self, maxIterations: int) -> None:
		""""""
		...

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

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

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

	def SetLineSearch(self, linesearch) -> None:
		""""""
		...

	def GetLineSearch(self):
		""""""
		...

	def SetMaximumLineSearchEvaluations(self, n: int) -> None:
		""""""
		...

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

	def SetMinimumLineSearchStep(self, step: float) -> None:
		""""""
		...

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

	def SetMaximumLineSearchStep(self, step: float) -> None:
		""""""
		...

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

	def SetLineSearchAccuracy(self, ftol: float) -> None:
		""""""
		...

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

	def SetWolfeCoefficient(self, wc: float) -> None:
		""""""
		...

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

	def SetLineSearchGradientAccuracy(self, gtol: float) -> None:
		""""""
		...

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

	def SetMachinePrecisionTolerance(self, xtol: float) -> None:
		""""""
		...

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

	def SetOrthantwiseCoefficient(self, orthant_c: float) -> None:
		""""""
		...

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

	def SetOrthantwiseStart(self, start: int) -> None:
		""""""
		...

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

	def SetOrthantwiseEnd(self, end: int) -> None:
		""""""
		...

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

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

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

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

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

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

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

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

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

