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

from OCC.Core.Standard import *
from OCC.Core.NCollection import *
from OCC.Core.StepData import *
from OCC.Core.IFSelect import *
from OCC.Core.Interface import *
from OCC.Core.TCollection import *


class stepedit:
	@staticmethod
	def NewModel() -> StepData_StepModel: ...
	@staticmethod
	def NewSelectPlacedItem() -> IFSelect_SelectSignature: ...
	@staticmethod
	def NewSelectSDR() -> IFSelect_SelectSignature: ...
	@staticmethod
	def NewSelectShapeRepr() -> IFSelect_SelectSignature: ...
	@staticmethod
	def Protocol() -> Interface_Protocol: ...
	@staticmethod
	def SignType() -> IFSelect_Signature: ...

class STEPEdit_EditContext(IFSelect_Editor):
	def __init__(self) -> None: ...
	def Apply(self, form: IFSelect_EditForm, ent: Standard_Transient, model: Interface_InterfaceModel) -> bool: ...
	def Label(self) -> TCollection_AsciiString: ...
	def Load(self, form: IFSelect_EditForm, ent: Standard_Transient, model: Interface_InterfaceModel) -> bool: ...
	def Recognize(self, form: IFSelect_EditForm) -> bool: ...
	def StringValue(self, form: IFSelect_EditForm, num: int) -> TCollection_HAsciiString: ...

class STEPEdit_EditSDR(IFSelect_Editor):
	def __init__(self) -> None: ...
	def Apply(self, form: IFSelect_EditForm, ent: Standard_Transient, model: Interface_InterfaceModel) -> bool: ...
	def Label(self) -> TCollection_AsciiString: ...
	def Load(self, form: IFSelect_EditForm, ent: Standard_Transient, model: Interface_InterfaceModel) -> bool: ...
	def Recognize(self, form: IFSelect_EditForm) -> bool: ...
	def StringValue(self, form: IFSelect_EditForm, num: int) -> TCollection_HAsciiString: ...

# harray1 classes
# harray2 classes
# hsequence classes

stepedit_NewModel = stepedit.NewModel
stepedit_NewSelectPlacedItem = stepedit.NewSelectPlacedItem
stepedit_NewSelectSDR = stepedit.NewSelectSDR
stepedit_NewSelectShapeRepr = stepedit.NewSelectShapeRepr
stepedit_Protocol = stepedit.Protocol
stepedit_SignType = stepedit.SignType
