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

import KatanaResources as KatanaResources
import NodegraphAPI as NodegraphAPI
import UI4.KatanaPrefs.PrefNames as PrefNames
import PyQt5.QtCore
import PyQt5.QtCore as QtCore
import PyQt5.QtGui as QtGui
import PyQt5.QtWidgets as QtWidgets
import Utils as Utils
import typing
from PyUtilModule.VirtualKatana import Widgets as Widgets
from QT4Widgets.FilterablePopupButton import FilterablePopupButton
from UI4.KatanaPrefs.KatanaPrefsObject import KatanaPrefs as KatanaPrefs
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

_DisallowedNodeTypes: list
_DisallowedParentTypes: list

class NodeFindPopupButton(FilterablePopupButton):
    _NodeFindPopupButton__normalPixmap: ClassVar[None] = ...
    _NodeFindPopupButton__rolloverPixmap: ClassVar[None] = ...
    def __init__(self, goToNodeCallback: typing.Optional[typing.Callable] = ..., parent: Incomplete | None = ...) -> None: ...
    def _NodeFindPopupButton__findFilterTypeCallback(self, name, meta, matchstring): ...
    def _NodeFindPopupButton__loadPixmaps(self): ...
    def _NodeFindPopupButton__on_itemChosen(self, nodeName, meta: Incomplete | None = ...): ...
    def _NodeFindPopupButton__on_nodegraphChanged(self, args): ...
    def _NodeFindPopupButton__on_popupAboutToShow(self): ...
    def _NodeFindPopupButton__on_preferenceChanged(self, eventType, eventID, prefKey, prefValue): ...
    def _NodeFindPopupButton__on_selectAllMatchingButtonClicked(self): ...
    def _NodeFindPopupButton__on_showOnlyNodesInThisGroupChanged(self, value, name, meta): ...
    def enterEvent(self, event: PyQt5.QtCore.QEvent): ...
    def leaveEvent(self, event: PyQt5.QtCore.QEvent): ...
    def setCurrentNodeView(self, node: NodegraphAPI.Node): ...
    def showPopup(self): ...
