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

import PyQt5.QtWidgets
import QT4FormWidgets as QT4FormWidgets
import QT4FormWidgets.ValuePolicy
import QT4Widgets as QT4Widgets
import RenderingAPI as RenderingAPI
import UI4 as UI4
import Utils as Utils
from QT4FormWidgets.BaseValueFormWidget import BaseValueFormWidget
from QT4FormWidgets.FilterablePopupFormWidget import FilterablePopupFormWidget
from QT4FormWidgets.FilterablePopupFormWidget.FilterablePopupFormWidget import PopupButton
from QT4FormWidgets.FormWidget import FormWidget
from QT4FormWidgets.WidgetFactory import WidgetFactory
from _typeshed import Incomplete
from typing import Set, Tuple

class ShaderPopupFormWidget(BaseValueFormWidget):
    def __init__(self, parent: PyQt5.QtWidgets.QWidget, policy: QT4FormWidgets.ValuePolicy.AbstractValuePolicy, factory: WidgetFactory) -> None: ...
    def _ShaderPopupFormWidget__browseCallback(self): ...
    def _ShaderPopupFormWidget__on_shaderComboBox_itemChosen(self, text: str, meta: str): ...
    def _buildControlWidget(self, layout): ...
    def _buildLabel(self, labelText, pos: int = ...): ...
    def _lockChanged(self, state): ...
    def _updateControlWidget(self): ...

class ShaderTypeMenuWidget(FormWidget):
    def __init__(self, parent, valuePolicy, widgetFactory) -> None: ...
    def _ShaderTypeMenuWidget__addMenuItem(self, item, renderer: Incomplete | None = ...): ...
    def _ShaderTypeMenuWidget__getRenderInfoPlugin(self, rendererName): ...
    def _ShaderTypeMenuWidget__selectShaderType(self, materialType, rendererName): ...
    def _lockChanged(self, state): ...
    def _thaw(self): ...
    def refresh(self): ...

class ShaderTypePopupFormWidget(FilterablePopupFormWidget):
    class ShaderTypePopupButton(PopupButton):
        def _buildPopupWindow(self): ...
    def __init__(self, parent, policy, factory) -> None: ...
    def _ShaderTypePopupFormWidget__itemChosen(self): ...
    def _buildPopupButton(self): ...

class SimpleMenuWidget(FormWidget):
    def __init__(self, parent, valuePolicy, widgetFactory) -> None: ...
    def _SimpleMenuWidget__addMenuItem(self, item): ...
    def _SimpleMenuWidget__selectType(self, item): ...
    def refresh(self): ...
