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

from OCC.Core.Standard import *
from OCC.Core.NCollection import *
from OCC.Core.BinMDF import *
from OCC.Core.Message import *
from OCC.Core.TDF import *
from OCC.Core.BinObjMgt import *
from OCC.Core.BinTools import *
from OCC.Core.TopLoc import *


class binmxcafdoc:
	@staticmethod
	def AddDrivers(theDriverTable: BinMDF_ADriverTable, theMsgDrv: Message_Messenger) -> None: ...

class BinMXCAFDoc_AssemblyItemRefDriver(BinMDF_ADriver):
	def __init__(self, theMsgDriver: Message_Messenger) -> None: ...
	def NewEmpty(self) -> TDF_Attribute: ...
	@overload
	def Paste(self, theSource: BinObjMgt_Persistent, theTarget: TDF_Attribute, theRelocTable: BinObjMgt_RRelocationTable) -> bool: ...
	@overload
	def Paste(self, theSource: TDF_Attribute, theTarget: BinObjMgt_Persistent, theRelocTable: BinObjMgt_SRelocationTable) -> None: ...

class BinMXCAFDoc_CentroidDriver(BinMDF_ADriver):
	def __init__(self, theMsgDriver: Message_Messenger) -> None: ...
	def NewEmpty(self) -> TDF_Attribute: ...
	@overload
	def Paste(self, theSource: BinObjMgt_Persistent, theTarget: TDF_Attribute, theRelocTable: BinObjMgt_RRelocationTable) -> bool: ...
	@overload
	def Paste(self, theSource: TDF_Attribute, theTarget: BinObjMgt_Persistent, theRelocTable: BinObjMgt_SRelocationTable) -> None: ...

class BinMXCAFDoc_ColorDriver(BinMDF_ADriver):
	def __init__(self, theMsgDriver: Message_Messenger) -> None: ...
	def NewEmpty(self) -> TDF_Attribute: ...
	@overload
	def Paste(self, theSource: BinObjMgt_Persistent, theTarget: TDF_Attribute, theRelocTable: BinObjMgt_RRelocationTable) -> bool: ...
	@overload
	def Paste(self, theSource: TDF_Attribute, theTarget: BinObjMgt_Persistent, theRelocTable: BinObjMgt_SRelocationTable) -> None: ...

class BinMXCAFDoc_DatumDriver(BinMDF_ADriver):
	def __init__(self, theMsgDriver: Message_Messenger) -> None: ...
	def NewEmpty(self) -> TDF_Attribute: ...
	@overload
	def Paste(self, theSource: BinObjMgt_Persistent, theTarget: TDF_Attribute, theRelocTable: BinObjMgt_RRelocationTable) -> bool: ...
	@overload
	def Paste(self, theSource: TDF_Attribute, theTarget: BinObjMgt_Persistent, theRelocTable: BinObjMgt_SRelocationTable) -> None: ...

class BinMXCAFDoc_DimTolDriver(BinMDF_ADriver):
	def __init__(self, theMsgDriver: Message_Messenger) -> None: ...
	def NewEmpty(self) -> TDF_Attribute: ...
	@overload
	def Paste(self, theSource: BinObjMgt_Persistent, theTarget: TDF_Attribute, theRelocTable: BinObjMgt_RRelocationTable) -> bool: ...
	@overload
	def Paste(self, theSource: TDF_Attribute, theTarget: BinObjMgt_Persistent, theRelocTable: BinObjMgt_SRelocationTable) -> None: ...

class BinMXCAFDoc_GraphNodeDriver(BinMDF_ADriver):
	def __init__(self, theMsgDriver: Message_Messenger) -> None: ...
	def NewEmpty(self) -> TDF_Attribute: ...
	@overload
	def Paste(self, theSource: BinObjMgt_Persistent, theTarget: TDF_Attribute, theRelocTable: BinObjMgt_RRelocationTable) -> bool: ...
	@overload
	def Paste(self, theSource: TDF_Attribute, theTarget: BinObjMgt_Persistent, theRelocTable: BinObjMgt_SRelocationTable) -> None: ...

class BinMXCAFDoc_LocationDriver(BinMDF_ADriver):
	def __init__(self, theMsgDriver: Message_Messenger) -> None: ...
	def NewEmpty(self) -> TDF_Attribute: ...
	@overload
	def Paste(self, theSource: BinObjMgt_Persistent, theTarget: TDF_Attribute, theRelocTable: BinObjMgt_RRelocationTable) -> bool: ...
	@overload
	def Paste(self, theSource: TDF_Attribute, theTarget: BinObjMgt_Persistent, theRelocTable: BinObjMgt_SRelocationTable) -> None: ...
	def SetSharedLocations(self, theLocations: BinTools_LocationSetPtr) -> None: ...
	@overload
	def Translate(self, theSource: BinObjMgt_Persistent, theLoc: TopLoc_Location, theMap: BinObjMgt_RRelocationTable) -> bool: ...
	@overload
	def Translate(self, theLoc: TopLoc_Location, theTarget: BinObjMgt_Persistent, theMap: BinObjMgt_SRelocationTable) -> None: ...

class BinMXCAFDoc_MaterialDriver(BinMDF_ADriver):
	def __init__(self, theMsgDriver: Message_Messenger) -> None: ...
	def NewEmpty(self) -> TDF_Attribute: ...
	@overload
	def Paste(self, theSource: BinObjMgt_Persistent, theTarget: TDF_Attribute, theRelocTable: BinObjMgt_RRelocationTable) -> bool: ...
	@overload
	def Paste(self, theSource: TDF_Attribute, theTarget: BinObjMgt_Persistent, theRelocTable: BinObjMgt_SRelocationTable) -> None: ...

class BinMXCAFDoc_NoteDriver(BinMDF_ADriver):
	@overload
	def Paste(self, theSource: BinObjMgt_Persistent, theTarget: TDF_Attribute, theRelocTable: BinObjMgt_RRelocationTable) -> bool: ...
	@overload
	def Paste(self, theSource: TDF_Attribute, theTarget: BinObjMgt_Persistent, theRelocTable: BinObjMgt_SRelocationTable) -> None: ...

class BinMXCAFDoc_VisMaterialDriver(BinMDF_ADriver):
	def __init__(self, theMsgDriver: Message_Messenger) -> None: ...
	def NewEmpty(self) -> TDF_Attribute: ...
	@overload
	def Paste(self, theSource: BinObjMgt_Persistent, theTarget: TDF_Attribute, theRelocTable: BinObjMgt_RRelocationTable) -> bool: ...
	@overload
	def Paste(self, theSource: TDF_Attribute, theTarget: BinObjMgt_Persistent, theRelocTable: BinObjMgt_SRelocationTable) -> None: ...

class BinMXCAFDoc_VisMaterialToolDriver(BinMDF_ADriver):
	def __init__(self, theMsgDriver: Message_Messenger) -> None: ...
	def NewEmpty(self) -> TDF_Attribute: ...
	@overload
	def Paste(self, theSource: BinObjMgt_Persistent, theTarget: TDF_Attribute, theRelocTable: BinObjMgt_RRelocationTable) -> bool: ...
	@overload
	def Paste(self, theSource: TDF_Attribute, theTarget: BinObjMgt_Persistent, theRelocTable: BinObjMgt_SRelocationTable) -> None: ...

class BinMXCAFDoc_NoteBinDataDriver(BinMXCAFDoc_NoteDriver):
	def __init__(self, theMsgDriver: Message_Messenger) -> None: ...
	def NewEmpty(self) -> TDF_Attribute: ...
	@overload
	def Paste(self, theSource: BinObjMgt_Persistent, theTarget: TDF_Attribute, theRelocTable: BinObjMgt_RRelocationTable) -> bool: ...
	@overload
	def Paste(self, theSource: TDF_Attribute, theTarget: BinObjMgt_Persistent, theRelocTable: BinObjMgt_SRelocationTable) -> None: ...

class BinMXCAFDoc_NoteCommentDriver(BinMXCAFDoc_NoteDriver):
	def __init__(self, theMsgDriver: Message_Messenger) -> None: ...
	def NewEmpty(self) -> TDF_Attribute: ...
	@overload
	def Paste(self, theSource: BinObjMgt_Persistent, theTarget: TDF_Attribute, theRelocTable: BinObjMgt_RRelocationTable) -> bool: ...
	@overload
	def Paste(self, theSource: TDF_Attribute, theTarget: BinObjMgt_Persistent, theRelocTable: BinObjMgt_SRelocationTable) -> None: ...

# harray1 classes
# harray2 classes
# hsequence classes

binmxcafdoc_AddDrivers = binmxcafdoc.AddDrivers
