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

import QT4FormWidgets.InputWidgets as InputWidgets
import KatanaResources as KatanaResources
import QT4FormWidgets.PaintingUtils as PaintingUtils
import QT4FormWidgets as QT4FormWidgets
import QT4Widgets as QT4Widgets
import PyQt5.QtCore as QtCore
import PyQt5.QtGui as QtGui
import PyQt5.QtWidgets as QtWidgets
import UI4 as UI4
import Utils as Utils
from QT4FormWidgets.FWidget import FDisclosureTriangle as FDisclosureTriangle
from QT4FormWidgets.FixableBoxLayout import FixableBoxLayout as FixableBoxLayout
from QT4FormWidgets.FormWidget import FormWidget
from QT4Widgets.MenuButton import MenuButton as MenuButton
from UI4.Widgets.IconLabelFrame import IconLabelFrame as IconLabelFrame
from UI4.Widgets.PanelWidget import PanelWidget as PanelWidget
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

class ParameterExpressionPanel(SortablePanelBase):
    def __init__(self, parent, value: Incomplete | None = ...) -> None: ...
    def _ParameterExpressionPanel__triangleClicked(self, item, state): ...
    def getValue(self): ...
    def setResult(self, result, error: bool = ...): ...
    def setValue(self, value, final: bool = ...): ...
    def updateResultPalette(self, policy): ...

class ParameterSortablePanel(SortablePanelBase):
    def __init__(self, parent, name, policy, factory, panelArgs: Incomplete | None = ...) -> None: ...
    def getWidget(self): ...

class ParameterSortablePanelFormWidget(SortablePanelFormWidget):
    def __init__(self, parent, policy, factory) -> None: ...
    def _getPanelForPolicy(self, policy): ...
    def clearParameterChildren(self): ...
    def panelDeleted(self, index): ...
    def panelReordered(self, oldPos, newPos): ...
    def showPopdown(self, value): ...
    def updatePanels(self): ...

class SortablePanelBase(PanelWidget): ...

class SortablePanelFormWidget(FormWidget):
    _SortablePanelFormWidget__inhibitUpdatePanels: ClassVar[int] = ...
    _SortablePanelFormWidget__needUpdatePanels: ClassVar[bool] = ...
    def __init__(self, parent, policy, factory, showPopdown: bool = ...) -> None: ...
    def _SortablePanelFormWidget__addButtonDragEnterEvent(self, event): ...
    def _SortablePanelFormWidget__addButtonDropEvent(self, event): ...
    def _SortablePanelFormWidget__addMenuCallback(self): ...
    def _SortablePanelFormWidget__dragBoxContextMenuCallback(self, index): ...
    def _SortablePanelFormWidget__dragBoxContextMenuItemCallback(self, index): ...
    def _SortablePanelFormWidget__panelDragInProgress(self, index): ...
    def _SortablePanelFormWidget__panelValueChangedCallback(self, index): ...
    def _SortablePanelFormWidget__renumberPanels(self): ...
    def _allowUpdatePanels(self, allow): ...
    def _buildControlWidget(self, hbox): ...
    def _buildLabel(self, labelText, pos: int = ...): ...
    def _isUpdatePanelsAllowed(self): ...
    def _participatesInLabelAlignment(self): ...
    def _popdownCreated(self, popdown): ...
    def _stealPanel(self, w): ...
    def _thaw(self): ...
    def _updatePanelsLater(self): ...
    def addButtonCheckDragEvent(self, event): ...
    def addButtonDropEvent(self, event): ...
    def addPanel(self, w): ...
    def buildAddMenu(self, menu): ...
    def checkMimeData(self, mimeData): ...
    def deletePanel(self, index, notify: bool = ...): ...
    def destroyPanels(self): ...
    def dragEnterEvent(self, ev, resultList: Incomplete | None = ...): ...
    def dragLeaveEvent(self, ev): ...
    def dragMoveEvent(self, ev, resultList: Incomplete | None = ...): ...
    def dropEvent(self, ev, resultList: Incomplete | None = ...): ...
    def ensurePanelVisible(self, index): ...
    def forceDragFinish(self): ...
    def getAddButton(self): ...
    def getNumPanels(self): ...
    def getPanelFooterLayout(self): ...
    def getPanelHeaderLayout(self): ...
    def getPanelLayout(self): ...
    def getPanels(self): ...
    def getRawDragIndex(self, pos): ...
    def getToolBarCenter(self): ...
    def getToolBarLayout(self): ...
    def getToolBarLeftLayout(self): ...
    def getToolBarRight(self): ...
    def insertPanel(self, w, index): ...
    def movePanel(self, oldPos, newPos): ...
    def panelDeleted(self, index): ...
    def panelReordered(self, oldPos, newPos): ...
    def panelValueChanged(self, index): ...
    def setAddPanelButtonName(self, name): ...
    def setDragIndex(self, index): ...
    def setDragMinIndex(self, minIndex): ...
    def setLocked(self, state, checkLockOps: bool = ...): ...
    def showPopdown(self, value): ...
    def updatePanels(self): ...
    def valueChangedEvent(self, event): ...
