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

import PyQt5.QtCore
import PyQt5.QtWidgets
import QT4FormWidgets as QT4FormWidgets
import QT4Widgets as QT4Widgets
import PyQt5.QtCore as QtCore
import PyQt5.QtGui as QtGui
import PyQt5.QtWidgets as QtWidgets
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

class TreeEditor(PyQt5.QtWidgets.QLineEdit):
    edited: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    def __init__(self, parent, item, column, rect, value) -> None: ...
    def _TreeEditor__finished(self, accepted): ...
    def focusOutEvent(self, event): ...
    def keyPressEvent(self, event): ...

class TreeItem:
    def __init__(self, parent, name: str = ..., index: int = ...) -> None: ...
    def _TreeItem__setParent(self, parent, index): ...
    def _TreeItem__unselectChildren(self): ...
    def _TreeItem__updateDescendentInfo(self): ...
    def _setTreeWidget(self, treeWidget): ...
    def addChild(self, child, index: int = ...): ...
    def childAtY(self, y): ...
    def childByIndex(self, index): ...
    def childByName(self, name): ...
    def childCount(self): ...
    def childY(self, item): ...
    def children(self): ...
    def depth(self): ...
    def desiredColumnWidth(self, column): ...
    def expandable(self): ...
    def expanded(self): ...
    def getSortIndex(self): ...
    def hasChildren(self): ...
    def height(self): ...
    def index(self): ...
    def itemCollapsed(self): ...
    def itemDoubleClicked(self, column): ...
    def itemExpanded(self): ...
    def itemUpdated(self, updateBelow: bool = ..., emitSignals: bool = ...): ...
    def iterChildren(self): ...
    def name(self): ...
    def paint(self, painter, rect, palette, isCurrent, columnWidths): ...
    def paintCell(self, painter, rect, palette, column): ...
    def parent(self): ...
    def pixmap(self, column): ...
    def selected(self): ...
    def setExpandable(self, flag): ...
    def setExpanded(self, flag): ...
    def setHeight(self, height): ...
    def setName(self, name): ...
    def setPixmap(self, column, pixmap): ...
    def setSelected(self, flag, emitSignals: bool = ...): ...
    def setText(self, column, text): ...
    def setTextElideMode(self, column, mode): ...
    def sortChildren(self): ...
    def takeChild(self, index): ...
    def takeChildren(self): ...
    def text(self, column): ...
    def textElideMode(self, column): ...
    def treeWidget(self): ...
    def updateVisibleDescendentHeight(self, walk: bool = ...): ...
    def visibleChildren(self): ...
    def visibleDescendentHeight(self): ...

class TreeWidget(PyQt5.QtWidgets.QAbstractScrollArea):
    itemCollapsedSignal: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    itemExpandedSignal: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    itemSelectionChanged: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    kDisclosureTriangleSize: ClassVar[int] = ...
    valid_event_keys: ClassVar[frozenset] = ...
    def __init__(self, *args) -> None: ...
    def _TreeWidget__addItemAndChildren(self, item, itemSet, checkFn): ...
    def _TreeWidget__columnResize(self, *args): ...
    def _TreeWidget__createPixmaps(self): ...
    def _TreeWidget__drawItem(self, item, rect, palette, p: Incomplete | None = ...): ...
    def _TreeWidget__drawItemChildren(self, p, rect, item, palette, x, y): ...
    def _TreeWidget__ensureVisible(self, rect): ...
    def _TreeWidget__findNextItem(self, item): ...
    def _TreeWidget__findPrevItem(self, item): ...
    def _TreeWidget__getPainter(self): ...
    def _TreeWidget__idle_callback(self, *args, **kwargs): ...
    def _TreeWidget__intersectingItems(self, rect, item, x, y, intersectList): ...
    def _TreeWidget__itemAtY(self, y): ...
    def _TreeWidget__itemRect(self, item): ...
    def _TreeWidget__positionHeader(self): ...
    def _TreeWidget__verticalActionTriggered(self, action): ...
    def _buildRootItem(self, parent, name): ...
    def clear(self): ...
    def columnAtPosition(self, x): ...
    def columnStartPosition(self, col): ...
    def columnWidths(self): ...
    def contentsPos(self): ...
    def contentsSize(self): ...
    def contentsToViewport(self, pos): ...
    def drawItems(self, p, rect): ...
    def event(self, event): ...
    def getCellRect(self, item, column): ...
    def getFullWidth(self): ...
    def getMultiSelect(self): ...
    def header(self): ...
    def indentation(self): ...
    def intersectingItems(self, rect): ...
    def itemAtPosition(self, pos): ...
    def itemCollapsed(self, item): ...
    def itemExpanded(self, item): ...
    def itemUpdated(self, item, updateBelow: bool = ..., emitSignals: bool = ...): ...
    def keyPressEvent(self, event): ...
    def keyReleaseEvent(self, event): ...
    def mouseDoubleClickEvent(self, event): ...
    def mouseMoveEvent(self, event): ...
    def mousePressEvent(self, event): ...
    def mouseReleaseEvent(self, event): ...
    def paintEvent(self, event): ...
    def popupEdited(self, item, column, value): ...
    def popupEditor(self, item, column, value: Incomplete | None = ...): ...
    def resizeEvent(self, event): ...
    def rootItem(self): ...
    def scrollContentsBy(self, dx, dy): ...
    def scrollToItem(self, item): ...
    def selectAll(self): ...
    def selection(self): ...
    def setContentsPos(self, pos): ...
    def setCurrentItem(self, item): ...
    def setHeaderLabels(self, labels): ...
    def setHeaderVisible(self, state): ...
    def setIndentation(self, indentation): ...
    def setMultiSelect(self, state): ...
    def setSelection(self, newSelection): ...
    def updateContentsSize(self, item: Incomplete | None = ...): ...
    def updateContentsSizeOnIdle(self): ...
    def updateScrollBars(self, scrollContents: bool = ...): ...
    def updateVisibleDescendentHeightOnIdle(self, item): ...
    def viewportToContents(self, pos): ...
    def wheelEvent(self, event): ...
