# mypy: disable-error-code="misc, override, attr-defined, no-redef, assignment"

import UI4.FormMaster.Editors as Editors
import PyQt5.QtWidgets
import QT4FormWidgets as QT4FormWidgets
import typing
from QT4FormWidgets.WidgetFactory import WidgetFactory
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

AttributeWidgetFactory: AttributeWidgetFactoryClass
KatanaWidgetFactory: KatanaWidgetFactoryClass
ParameterWidgetFactory: ParameterWidgetFactoryClass

class AttributeWidgetFactoryClass(KatanaWidgetFactoryClass):
    REMAPS: ClassVar[set] = ...
    def _getWidgetClass(self, policy, hints): ...

class KatanaWidgetFactoryClass(WidgetFactory):
    _KatanaWidgetFactoryClass__defaultWidgetTypes: ClassVar[dict] = ...
    def _getWidgetClass(self, policy: QT4FormWidgets.AbstractValuePolicy, hints: dict, widgetType: Incomplete | None = ...) -> type | None: ...
    def buildWidget(self, parent: PyQt5.QtWidgets.QWidget, policy: typing.Union[QT4FormWidgets.AbstractValuePolicy, None]) -> QT4FormWidgets.FormWidget: ...

class ParameterWidgetFactoryClass(KatanaWidgetFactoryClass):
    def _getWidgetClass(self, policy, hints): ...

def LoadAllEditors(): ...
def LookupWidgetType(name): ...
def RegisterPluginWidget(widgetType, widgetClass): ...
