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

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

# the following typedef cannot be wrapped as is
Expr_MapOfNamedUnknown = NewType("Expr_MapOfNamedUnknown", Any)

class Expr_Array1OfGeneralExpression:
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, theLower: int, theUpper: int) -> None: ...
    def __getitem__(self, index: int) -> False: ...
    def __setitem__(self, index: int, value: False) -> None: ...
    def __len__(self) -> int: ...
    def __iter__(self) -> Iterator[False]: ...
    def next(self) -> False: ...
    __next__ = next
    def Init(self, theValue: False) -> None: ...
    def Size(self) -> int: ...
    def Length(self) -> int: ...
    def IsEmpty(self) -> bool: ...
    def Lower(self) -> int: ...
    def Upper(self) -> int: ...
    def IsDetectable(self) -> bool: ...
    def IsAllocated(self) -> bool: ...
    def First(self) -> False: ...
    def Last(self) -> False: ...
    def Value(self, theIndex: int) -> False: ...
    def SetValue(self, theIndex: int, theValue: False) -> None: ...

class Expr_Array1OfNamedUnknown:
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, theLower: int, theUpper: int) -> None: ...
    def __getitem__(self, index: int) -> False: ...
    def __setitem__(self, index: int, value: False) -> None: ...
    def __len__(self) -> int: ...
    def __iter__(self) -> Iterator[False]: ...
    def next(self) -> False: ...
    __next__ = next
    def Init(self, theValue: False) -> None: ...
    def Size(self) -> int: ...
    def Length(self) -> int: ...
    def IsEmpty(self) -> bool: ...
    def Lower(self) -> int: ...
    def Upper(self) -> int: ...
    def IsDetectable(self) -> bool: ...
    def IsAllocated(self) -> bool: ...
    def First(self) -> False: ...
    def Last(self) -> False: ...
    def Value(self, theIndex: int) -> False: ...
    def SetValue(self, theIndex: int, theValue: False) -> None: ...

class Expr_Array1OfSingleRelation:
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, theLower: int, theUpper: int) -> None: ...
    def __getitem__(self, index: int) -> False: ...
    def __setitem__(self, index: int, value: False) -> None: ...
    def __len__(self) -> int: ...
    def __iter__(self) -> Iterator[False]: ...
    def next(self) -> False: ...
    __next__ = next
    def Init(self, theValue: False) -> None: ...
    def Size(self) -> int: ...
    def Length(self) -> int: ...
    def IsEmpty(self) -> bool: ...
    def Lower(self) -> int: ...
    def Upper(self) -> int: ...
    def IsDetectable(self) -> bool: ...
    def IsAllocated(self) -> bool: ...
    def First(self) -> False: ...
    def Last(self) -> False: ...
    def Value(self, theIndex: int) -> False: ...
    def SetValue(self, theIndex: int, theValue: False) -> None: ...

class Expr_SequenceOfGeneralExpression:
    def __init__(self) -> None: ...
    def __len__(self) -> int: ...
    def Size(self) -> int: ...
    def Clear(self) -> None: ...
    def First(self) -> False: ...
    def Last(self) -> False: ...
    def Length(self) -> int: ...
    def Append(self, theItem: False) -> False: ...
    def Prepend(self, theItem: False) -> False: ...
    def RemoveFirst(self) -> None: ...
    def Reverse(self) -> None: ...
    def Value(self, theIndex: int) -> False: ...
    def SetValue(self, theIndex: int, theValue: False) -> None: ...

class Expr_SequenceOfGeneralRelation:
    def __init__(self) -> None: ...
    def __len__(self) -> int: ...
    def Size(self) -> int: ...
    def Clear(self) -> None: ...
    def First(self) -> False: ...
    def Last(self) -> False: ...
    def Length(self) -> int: ...
    def Append(self, theItem: False) -> False: ...
    def Prepend(self, theItem: False) -> False: ...
    def RemoveFirst(self) -> None: ...
    def Reverse(self) -> None: ...
    def Value(self, theIndex: int) -> False: ...
    def SetValue(self, theIndex: int, theValue: False) -> None: ...

#classnotwrapped
class Expr: ...

#classnotwrapped
class Expr_Absolute: ...

#classnotwrapped
class Expr_ArcCosine: ...

#classnotwrapped
class Expr_ArcSine: ...

#classnotwrapped
class Expr_ArcTangent: ...

#classnotwrapped
class Expr_ArgCosh: ...

#classnotwrapped
class Expr_ArgSinh: ...

#classnotwrapped
class Expr_ArgTanh: ...

#classnotwrapped
class Expr_BinaryExpression: ...

#classnotwrapped
class Expr_BinaryFunction: ...

#classnotwrapped
class Expr_Cosh: ...

#classnotwrapped
class Expr_Cosine: ...

#classnotwrapped
class Expr_Difference: ...

#classnotwrapped
class Expr_Different: ...

#classnotwrapped
class Expr_Division: ...

#classnotwrapped
class Expr_Equal: ...

#classnotwrapped
class Expr_Exponential: ...

#classnotwrapped
class Expr_Exponentiate: ...

#classnotwrapped
class Expr_FunctionDerivative: ...

#classnotwrapped
class Expr_GeneralExpression: ...

#classnotwrapped
class Expr_GeneralFunction: ...

#classnotwrapped
class Expr_GeneralRelation: ...

#classnotwrapped
class Expr_GreaterThan: ...

#classnotwrapped
class Expr_GreaterThanOrEqual: ...

#classnotwrapped
class Expr_LessThan: ...

#classnotwrapped
class Expr_LessThanOrEqual: ...

#classnotwrapped
class Expr_LogOf10: ...

#classnotwrapped
class Expr_LogOfe: ...

#classnotwrapped
class Expr_NamedConstant: ...

#classnotwrapped
class Expr_NamedExpression: ...

#classnotwrapped
class Expr_NamedFunction: ...

#classnotwrapped
class Expr_NamedUnknown: ...

#classnotwrapped
class Expr_NumericValue: ...

#classnotwrapped
class Expr_PolyExpression: ...

#classnotwrapped
class Expr_PolyFunction: ...

#classnotwrapped
class Expr_Product: ...

#classnotwrapped
class Expr_RUIterator: ...

#classnotwrapped
class Expr_RelationIterator: ...

#classnotwrapped
class Expr_Sign: ...

#classnotwrapped
class Expr_Sine: ...

#classnotwrapped
class Expr_SingleRelation: ...

#classnotwrapped
class Expr_Sinh: ...

#classnotwrapped
class Expr_Square: ...

#classnotwrapped
class Expr_SquareRoot: ...

#classnotwrapped
class Expr_Sum: ...

#classnotwrapped
class Expr_SystemRelation: ...

#classnotwrapped
class Expr_Tangent: ...

#classnotwrapped
class Expr_Tanh: ...

#classnotwrapped
class Expr_UnaryExpression: ...

#classnotwrapped
class Expr_UnaryFunction: ...

#classnotwrapped
class Expr_UnaryMinus: ...

#classnotwrapped
class Expr_UnknownIterator: ...

# harray1 classes
# harray2 classes
# hsequence classes

