# Interface methods for submodule: KdTree
from typing import Union, Any
# additional imports
from .support.template_class import itkTemplate as _itkTemplate
from ._proxies import ObjectProxy as _ObjectProxy


# Interface methods for class: KdTree
class KdTreeProxy(_ObjectProxy):
	def GetNameOfClass(self):
		""""""
		...

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

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

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

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

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

	def GetSample(self):
		""""""
		...

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

	def GetEmptyTerminalNode(self):
		""""""
		...

	def SetRoot(self, root) -> None:
		""""""
		...

	def GetRoot(self):
		""""""
		...

	def GetMeasurementVector(self, id: int) -> Sequence[float]:
		""""""
		...

	def GetFrequency(self, id: int) -> int:
		""""""
		...

	def GetDistanceMetric(self):
		""""""
		...

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

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

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

	def BallWithinBounds(self, arg0: Sequence[float], arg1: Sequence[float], arg2: Sequence[float], arg3: float) -> bool:
		""""""
		...

	def BoundsOverlapBall(self, arg0: Sequence[float], arg1: Sequence[float], arg2: Sequence[float], arg3: float) -> bool:
		""""""
		...

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

	@overload
	def PrintTree(self, arg0) -> None:
		""""""
		...

	@overload
	def PrintTree(self, arg0, arg1: int, arg2: int, os = ...) -> None:
		""""""
		...

	@overload
	def PlotTree(self, os) -> None:
		""""""
		...

	@overload
	def PlotTree(self, node, os = ...) -> None:
		""""""
		...

