from typing import Any, List

from typing import overload
import mrpt.pymrpt.mrpt.poses

class TMatchingPairListTempl_float_t:
    @overload
    def __init__(self, arg0: TMatchingPairListTempl_float_t) -> None: ...
    @overload
    def __init__(self) -> None: ...
    def assign(self) -> TMatchingPairListTempl_float_t: ...
    @overload
    def dumpToFile(self, fileName: str) -> None: ...
    @overload
    def dumpToFile(conststd) -> void: ...
    @overload
    def filterUniqueRobustPairs(self, num_elements_this_map: int, out_filtered_list: TMatchingPairListTempl_float_t) -> None: ...
    @overload
    def filterUniqueRobustPairs(size_t, classmrpt) -> void: ...
    @overload
    def indexOtherMapHasCorrespondence(self, idx: int) -> bool: ...
    @overload
    def indexOtherMapHasCorrespondence(size_t) -> bool: ...
    @overload
    def overallSquareError(self, q: mrpt.pymrpt.mrpt.poses.CPose2D) -> float: ...
    @overload
    def overallSquareError(constclassmrpt) -> float: ...
    @overload
    def overallSquareError(self, q: mrpt.pymrpt.mrpt.poses.CPose3D) -> float: ...
    @overload
    def overallSquareError(constclassmrpt) -> float: ...
    @overload
    def saveAsMATLABScript(self, filName: str) -> None: ...
    @overload
    def saveAsMATLABScript(conststd) -> void: ...

class TPotentialMatch:
    idx_other: int
    idx_this: int
    def __init__(self) -> None: ...

class TSE2RobustParams:
    max_rmse_to_end: float
    probability_find_good_model: float
    ransac_algorithmForLandmarks: bool
    ransac_fuseByCorrsMatch: bool
    ransac_fuseMaxDiffPhi: float
    ransac_fuseMaxDiffXY: float
    ransac_mahalanobisDistanceThreshold: float
    ransac_maxSetSize: int
    ransac_minSetSize: int
    ransac_min_nSimulations: int
    ransac_nSimulations: int
    user_individual_compat_callback: Any
    verbose: bool
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, arg0: TSE2RobustParams) -> None: ...
    def assign(self) -> TSE2RobustParams: ...

class TSE2RobustResult:
    largestSubSet: TMatchingPairListTempl_float_t
    ransac_iters: int
    transformation: mrpt.pymrpt.mrpt.poses.CPosePDFSOG
    def __init__(self) -> None: ...

class TSE3RobustParams:
    forceScaleToUnity: bool
    ransac_maxSetSizePct: float
    ransac_minSetSize: int
    ransac_nmaxSimulations: int
    ransac_threshold_ang: float
    ransac_threshold_lin: float
    ransac_threshold_scale: float
    user_individual_compat_callback: Any
    verbose: bool
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, arg0: TSE3RobustParams) -> None: ...
    def assign(self) -> TSE3RobustParams: ...

class TSE3RobustResult:
    inliers_idx: List[int]
    scale: float
    transformation: mrpt.pymrpt.mrpt.poses.CPose3DQuat
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, arg0: TSE3RobustResult) -> None: ...
    def assign(self) -> TSE3RobustResult: ...

def se2_l2(*args, **kwargs) -> Any: ...
def se2_l2_robust(*args, **kwargs) -> Any: ...
def se3_l2(*args, **kwargs) -> Any: ...
def se3_l2_robust(*args, **kwargs) -> Any: ...
