from enum import IntEnum
from typing import overload, NewType, Optional, Tuple

from OCC.Core.Standard import *
from OCC.Core.NCollection import *


class precision:
    @staticmethod
    def Angular() -> float: ...
    @staticmethod
    def Approximation() -> float: ...
    @staticmethod
    def Confusion() -> float: ...
    @staticmethod
    def Infinite() -> float: ...
    @staticmethod
    def Intersection() -> float: ...
    @staticmethod
    def IsInfinite(R: float) -> bool: ...
    @staticmethod
    def IsNegativeInfinite(R: float) -> bool: ...
    @staticmethod
    def IsPositiveInfinite(R: float) -> bool: ...
    @overload
    @staticmethod
    def PApproximation(T: float) -> float: ...
    @overload
    @staticmethod
    def PApproximation() -> float: ...
    @overload
    @staticmethod
    def PConfusion(T: float) -> float: ...
    @overload
    @staticmethod
    def PConfusion() -> float: ...
    @overload
    @staticmethod
    def PIntersection(T: float) -> float: ...
    @overload
    @staticmethod
    def PIntersection() -> float: ...
    @overload
    @staticmethod
    def Parametric(P: float, T: float) -> float: ...
    @overload
    @staticmethod
    def Parametric(P: float) -> float: ...
    @staticmethod
    def SquareConfusion() -> float: ...
    @staticmethod
    def SquarePConfusion() -> float: ...

# harray1 classes
# harray2 classes
# hsequence classes

