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

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


class AppCont_Function:
    def FirstParameter(self) -> float: ...
    def GetNbOf2dPoints(self) -> int: ...
    def GetNbOf3dPoints(self) -> int: ...
    def GetNumberOfPoints(self) -> Tuple[int, int]: ...
    def LastParameter(self) -> float: ...

class AppCont_LeastSquare:
    def __init__(self, SSP: AppCont_Function, U0: float, U1: float, FirstCons: AppParCurves_Constraint, LastCons: AppParCurves_Constraint, Deg: int, NbPoints: int) -> None: ...
    def Error(self) -> Tuple[float, float, float]: ...
    def IsDone(self) -> bool: ...
    def Value(self) -> AppParCurves_MultiCurve: ...

# harray1 classes
# harray2 classes
# hsequence classes

