# The PEP 484 type hints stub file for the _gui module.
#
# Generated by SIP 6.8.6


import typing

import PyQt5.sip

from PyQt5 import QtCore
from PyQt5 import QtXml
from PyQt5 import QtNetwork
from PyQt5 import QtGui
from PyQt5 import QtWidgets
from PyQt5 import QtSql
from PyQt5 import QtPrintSupport
from PyQt5 import QtPositioning
from qgis import _core
from PyQt5 import QtMultimedia
from PyQt5 import Qsci

# Support for QDate, QDateTime and QTime.
import datetime

# Convenient type aliases.
PYQT_SIGNAL = typing.Union[QtCore.pyqtSignal, QtCore.pyqtBoundSignal]
PYQT_SLOT = typing.Union[typing.Callable[..., Any], QtCore.pyqtBoundSignal]

# Convenient aliases for complicated OpenGL types.
PYQT_OPENGL_ARRAY = typing.Union[typing.Sequence[int], typing.Sequence[float],
        PyQt5.sip.Buffer, None]
PYQT_OPENGL_BOUND_ARRAY = typing.Union[typing.Sequence[int],
        typing.Sequence[float], PyQt5.sip.Buffer, int, None]


class QgisInterface(QtCore.QObject):

    def __init__(self) -> None: ...

    layerSavedAs: typing.ClassVar[QtCore.pyqtSignal]
    newProjectCreated: typing.ClassVar[QtCore.pyqtSignal]
    projectRead: typing.ClassVar[QtCore.pyqtSignal]
    initializationCompleted: typing.ClassVar[QtCore.pyqtSignal]
    layoutDesignerClosed: typing.ClassVar[QtCore.pyqtSignal]
    layoutDesignerWillBeClosed: typing.ClassVar[QtCore.pyqtSignal]
    layoutDesignerOpened: typing.ClassVar[QtCore.pyqtSignal]
    currentThemeChanged: typing.ClassVar[QtCore.pyqtSignal]
    currentLayerChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setGpsPanelConnection(self, connection: typing.Optional[_core.QgsGpsConnection]) -> None: ...
    def browserModel(self) -> typing.Optional['QgsBrowserGuiModel']: ...
    def askForDatumTransform(self, sourceCrs: _core.QgsCoordinateReferenceSystem, destinationCrs: _core.QgsCoordinateReferenceSystem) -> bool: ...
    def invalidateLocatorResults(self) -> None: ...
    def deregisterLocatorFilter(self, filter: typing.Optional[_core.QgsLocatorFilter]) -> None: ...
    def registerLocatorFilter(self, filter: typing.Optional[_core.QgsLocatorFilter]) -> None: ...
    def locatorSearch(self, searchText: typing.Optional[str]) -> None: ...
    def preloadForm(self, uifile: typing.Optional[str]) -> None: ...
    def getFeatureForm(self, l: typing.Optional[_core.QgsVectorLayer], f: _core.QgsFeature) -> typing.Optional['QgsAttributeDialog']: ...
    def openFeatureForm(self, l: typing.Optional[_core.QgsVectorLayer], f: _core.QgsFeature, updateFeatureOnly: bool = ..., showModal: bool = ...) -> bool: ...
    def openURL(self, url: typing.Optional[str], useQgisDocDirectory: bool = ...) -> None: ...
    def unregisterCustomLayoutDropHandler(self, handler: typing.Optional['QgsLayoutCustomDropHandler']) -> None: ...
    def registerCustomLayoutDropHandler(self, handler: typing.Optional['QgsLayoutCustomDropHandler']) -> None: ...
    def unregisterCustomProjectOpenHandler(self, handler: typing.Optional['QgsCustomProjectOpenHandler']) -> None: ...
    def registerCustomProjectOpenHandler(self, handler: typing.Optional['QgsCustomProjectOpenHandler']) -> None: ...
    def unregisterCustomDropHandler(self, handler: typing.Optional['QgsCustomDropHandler']) -> None: ...
    def registerCustomDropHandler(self, handler: typing.Optional['QgsCustomDropHandler']) -> None: ...
    def unregisterMapToolHandler(self, handler: typing.Optional['QgsAbstractMapToolHandler']) -> None: ...
    def registerMapToolHandler(self, handler: typing.Optional['QgsAbstractMapToolHandler']) -> None: ...
    def unregisterApplicationExitBlocker(self, blocker: typing.Optional['QgsApplicationExitBlockerInterface']) -> None: ...
    def registerApplicationExitBlocker(self, blocker: typing.Optional['QgsApplicationExitBlockerInterface']) -> None: ...
    def unregisterDevToolWidgetFactory(self, factory: typing.Optional['QgsDevToolWidgetFactory']) -> None: ...
    def registerDevToolWidgetFactory(self, factory: typing.Optional['QgsDevToolWidgetFactory']) -> None: ...
    def unregisterProjectPropertiesWidgetFactory(self, factory: typing.Optional['QgsOptionsWidgetFactory']) -> None: ...
    def registerProjectPropertiesWidgetFactory(self, factory: typing.Optional['QgsOptionsWidgetFactory']) -> None: ...
    def unregisterOptionsWidgetFactory(self, factory: typing.Optional['QgsOptionsWidgetFactory']) -> None: ...
    def registerOptionsWidgetFactory(self, factory: typing.Optional['QgsOptionsWidgetFactory']) -> None: ...
    def unregisterMapLayerConfigWidgetFactory(self, factory: typing.Optional['QgsMapLayerConfigWidgetFactory']) -> None: ...
    def registerMapLayerConfigWidgetFactory(self, factory: typing.Optional['QgsMapLayerConfigWidgetFactory']) -> None: ...
    def unregisterMainWindowAction(self, action: typing.Optional[QtWidgets.QAction]) -> bool: ...
    def registerMainWindowAction(self, action: typing.Optional[QtWidgets.QAction], defaultShortcut: typing.Optional[str]) -> bool: ...
    def removeWindow(self, action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def addWindow(self, action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def showAttributeTable(self, l: typing.Optional[_core.QgsVectorLayer], filterExpression: typing.Optional[str] = ...) -> typing.Optional[QtWidgets.QDialog]: ...
    def showLayerProperties(self, l: typing.Optional[_core.QgsMapLayer], page: typing.Optional[str] = ...) -> None: ...
    def removeDockWidget(self, dockwidget: typing.Optional[QtWidgets.QDockWidget]) -> None: ...
    def addTabifiedDockWidget(self, area: QtCore.Qt.DockWidgetArea, dockwidget: typing.Optional[QtWidgets.QDockWidget], tabifyWith: typing.Iterable[typing.Optional[str]] = ..., raiseTab: bool = ...) -> None: ...
    def addDockWidget(self, area: QtCore.Qt.DockWidgetArea, dockwidget: typing.Optional[QtWidgets.QDockWidget]) -> None: ...
    def removePluginMeshMenu(self, name: typing.Optional[str], action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def addPluginToMeshMenu(self, name: typing.Optional[str], action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def removePluginWebMenu(self, name: typing.Optional[str], action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def addPluginToWebMenu(self, name: typing.Optional[str], action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def removePluginVectorMenu(self, name: typing.Optional[str], action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def addPluginToVectorMenu(self, name: typing.Optional[str], action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def removePluginRasterMenu(self, name: typing.Optional[str], action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def addPluginToRasterMenu(self, name: typing.Optional[str], action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def removePluginDatabaseMenu(self, name: typing.Optional[str], action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def addPluginToDatabaseMenu(self, name: typing.Optional[str], action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def removeAddLayerAction(self, action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def insertAddLayerAction(self, action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def removePluginMenu(self, name: typing.Optional[str], action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def addPluginToMenu(self, name: typing.Optional[str], action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def saveStyleSheetOptions(self, opts: typing.Dict[typing.Optional[str], typing.Any]) -> None: ...
    def buildStyleSheet(self, opts: typing.Dict[typing.Optional[str], typing.Any]) -> None: ...
    def showProjectPropertiesDialog(self, currentPage: typing.Optional[str] = ...) -> None: ...
    def showOptionsDialog(self, parent: typing.Optional[QtWidgets.QWidget] = ..., currentPage: typing.Optional[str] = ...) -> None: ...
    def openLayoutDesigner(self, layout: typing.Optional[_core.QgsMasterLayoutInterface]) -> typing.Optional['QgsLayoutDesignerInterface']: ...
    def showLayoutManager(self) -> None: ...
    def addUserInputWidget(self, widget: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def openMessageLog(self) -> None: ...
    @typing.overload
    def addToolBar(self, name: typing.Optional[str]) -> typing.Optional[QtWidgets.QToolBar]: ...
    @typing.overload
    def addToolBar(self, toolbar: typing.Optional[QtWidgets.QToolBar], area: QtCore.Qt.ToolBarArea = ...) -> None: ...
    def removeWebToolBarIcon(self, qAction: typing.Optional[QtWidgets.QAction]) -> None: ...
    def addWebToolBarWidget(self, widget: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QAction]: ...
    def addWebToolBarIcon(self, qAction: typing.Optional[QtWidgets.QAction]) -> int: ...
    def removeDatabaseToolBarIcon(self, qAction: typing.Optional[QtWidgets.QAction]) -> None: ...
    def addDatabaseToolBarWidget(self, widget: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QAction]: ...
    def addDatabaseToolBarIcon(self, qAction: typing.Optional[QtWidgets.QAction]) -> int: ...
    def removeVectorToolBarIcon(self, qAction: typing.Optional[QtWidgets.QAction]) -> None: ...
    def addVectorToolBarWidget(self, widget: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QAction]: ...
    def addVectorToolBarIcon(self, qAction: typing.Optional[QtWidgets.QAction]) -> int: ...
    def removeRasterToolBarIcon(self, qAction: typing.Optional[QtWidgets.QAction]) -> None: ...
    def addRasterToolBarIcon(self, qAction: typing.Optional[QtWidgets.QAction]) -> int: ...
    def addRasterToolBarWidget(self, widget: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QAction]: ...
    def removeToolBarIcon(self, qAction: typing.Optional[QtWidgets.QAction]) -> None: ...
    def addToolBarWidget(self, widget: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QAction]: ...
    def addToolBarIcon(self, qAction: typing.Optional[QtWidgets.QAction]) -> int: ...
    def pasteFromClipboard(self, a0: typing.Optional[_core.QgsMapLayer]) -> None: ...
    def copySelectionToClipboard(self, a0: typing.Optional[_core.QgsMapLayer]) -> None: ...
    def setActiveLayer(self, a0: typing.Optional[_core.QgsMapLayer]) -> bool: ...
    def reloadConnections(self) -> None: ...
    def newProject(self, promptToSaveFlag: bool = ...) -> bool: ...
    def addProject(self, project: typing.Optional[str]) -> bool: ...
    def addTiledSceneLayer(self, url: typing.Optional[str], baseName: typing.Optional[str], providerKey: typing.Optional[str]) -> typing.Optional[_core.QgsTiledSceneLayer]: ...
    def addPointCloudLayer(self, url: typing.Optional[str], baseName: typing.Optional[str], providerKey: typing.Optional[str]) -> typing.Optional[_core.QgsPointCloudLayer]: ...
    def addVectorTileLayer(self, url: typing.Optional[str], baseName: typing.Optional[str]) -> typing.Optional[_core.QgsVectorTileLayer]: ...
    def addMeshLayer(self, url: typing.Optional[str], baseName: typing.Optional[str], providerKey: typing.Optional[str]) -> typing.Optional[_core.QgsMeshLayer]: ...
    @typing.overload
    def addRasterLayer(self, rasterLayerPath: typing.Optional[str], baseName: typing.Optional[str] = ...) -> typing.Optional[_core.QgsRasterLayer]: ...
    @typing.overload
    def addRasterLayer(self, url: typing.Optional[str], layerName: typing.Optional[str], providerKey: typing.Optional[str]) -> typing.Optional[_core.QgsRasterLayer]: ...
    def addVectorLayer(self, vectorLayerPath: typing.Optional[str], baseName: typing.Optional[str], providerKey: typing.Optional[str]) -> typing.Optional[_core.QgsVectorLayer]: ...
    def zoomToActiveLayer(self) -> None: ...
    def zoomToNext(self) -> None: ...
    def zoomToPrevious(self) -> None: ...
    def zoomFull(self) -> None: ...
    def userProfileManager(self) -> typing.Optional[_core.QgsUserProfileManager]: ...
    def layerTreeInsertionPoint(self) -> _core.QgsLayerTreeRegistryBridge.InsertionPoint: ...
    def takeAppScreenShots(self, saveDirectory: typing.Optional[str], categories: int = ...) -> None: ...
    def statusBarIface(self) -> typing.Optional['QgsStatusBar']: ...
    def messageTimeout(self) -> int: ...
    def vectorLayerTools(self) -> typing.Optional[_core.QgsVectorLayerTools]: ...
    def actionRegularPolygonCenterCorner(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionRegularPolygonCenterPoint(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionRegularPolygon2Points(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionRectangle3PointsProjected(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionRectangle3PointsDistance(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionRectangleExtent(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionRectangleCenterPoint(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionEllipseFoci(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionEllipseExtent(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionEllipseCenterPoint(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionEllipseCenter2Points(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionCircleCenterPoint(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionCircle2TangentsPoint(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionCircle3Tangents(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionCircle3Points(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionCircle2Points(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAbout(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionCheckQgisVersion(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionQgisHomePage(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionHelpContents(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionCustomProjection(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionOptions(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionToggleFullScreen(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionShowPythonDialog(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionPluginListSeparator(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionManagePlugins(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionShowSelectedLayers(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionHideDeselectedLayers(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionToggleSelectedLayersIndependently(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionToggleSelectedLayers(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionHideSelectedLayers(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionShowAllLayers(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionHideAllLayers(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionRemoveAllFromOverview(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAddAllToOverview(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAddToOverview(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionLayerProperties(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionDuplicateLayer(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionLayerSaveAs(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionCancelAllEdits(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionCancelEdits(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionRollbackAllEdits(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionRollbackEdits(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionSaveAllEdits(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionSaveEdits(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAllEdits(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionSaveActiveLayerEdits(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionToggleEditing(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionOpenStatisticalSummary(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionOpenFieldCalculator(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionOpenTable(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionPasteLayerStyle(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionCopyLayerStyle(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAddAmsLayer(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAddAfsLayer(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAddPointCloudLayer(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAddVectorTileLayer(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAddXyzLayer(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAddWmsLayer(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAddPgLayer(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAddRasterLayer(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAddOgrLayer(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionNewVectorLayer(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionDraw(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionShowBookmarks(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionNewBookmark(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionMapTips(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionZoomActualSize(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionZoomNext(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionZoomLast(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionZoomToSelected(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionZoomToLayers(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionZoomToLayer(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionZoomFullExtent(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionMeasureArea(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionMeasure(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionFeatureAction(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionIdentify(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionSelectRadius(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionSelectFreehand(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionSelectPolygon(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionSelectRectangle(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionSelect(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionZoomOut(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionZoomIn(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionPanToSelected(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionPan(self) -> typing.Optional[QtWidgets.QAction]: ...
    def mapToolActionGroup(self) -> typing.Optional[QtWidgets.QActionGroup]: ...
    def actionVertexToolActiveLayer(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionVertexTool(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionDeletePart(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionDeleteRing(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionSimplifyFeature(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAddPart(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAddRing(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionSplitParts(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionSplitFeatures(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionMoveFeature(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionDeleteSelected(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAddFeature(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionPasteFeatures(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionCopyFeatures(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionCutFeatures(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionExit(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionShowLayoutManager(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionCreatePrintLayout(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionProjectProperties(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionSaveMapAsImage(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionSaveProjectAs(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionSaveProject(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionOpenProject(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionNewProject(self) -> typing.Optional[QtWidgets.QAction]: ...
    def webToolBar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def databaseToolBar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def vectorToolBar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def rasterToolBar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def helpToolBar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def pluginToolBar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def selectionToolBar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def attributesToolBar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def shapeDigitizeToolBar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def advancedDigitizeToolBar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def digitizeToolBar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def mapNavToolToolBar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def openDataSourceManagerPage(self, pageName: typing.Optional[str]) -> None: ...
    def dataSourceManagerToolBar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def layerToolBar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def fileToolBar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def helpMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def windowMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def firstRightStandardMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def webMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def vectorMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def databaseMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def rasterMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def pluginHelpMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def pluginMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def settingsMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def addLayerMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def newLayerMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def layerMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def viewMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def editMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def removeProjectExportAction(self, action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def addProjectExportAction(self, action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def removeProjectImportAction(self, action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def addProjectImportAction(self, action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def projectImportExportMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def projectMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def cadDockWidget(self) -> typing.Optional['QgsAdvancedDigitizingDockWidget']: ...
    def defaultStyleSheetFont(self) -> QtGui.QFont: ...
    def defaultStyleSheetOptions(self) -> typing.Dict[str, typing.Any]: ...
    def openLayoutDesigners(self) -> typing.List['QgsLayoutDesignerInterface']: ...
    def messageBar(self) -> typing.Optional['QgsMessageBar']: ...
    def mainWindow(self) -> typing.Optional[QtWidgets.QWidget]: ...
    def layerTreeCanvasBridge(self) -> typing.Optional['QgsLayerTreeMapCanvasBridge']: ...
    def activeDecorations(self) -> typing.List[_core.QgsMapDecoration]: ...
    def mapCanvas(self) -> typing.Optional['QgsMapCanvas']: ...
    def activeLayer(self) -> typing.Optional[_core.QgsMapLayer]: ...
    def editableLayers(self, modified: bool = ...) -> typing.List[_core.QgsMapLayer]: ...
    def iconSize(self, dockedToolbar: bool = ...) -> QtCore.QSize: ...
    def closeMapCanvas(self, name: typing.Optional[str]) -> None: ...
    def createNewMapCanvas(self, name: typing.Optional[str]) -> typing.Optional['QgsMapCanvas']: ...
    def mapCanvases(self) -> typing.List['QgsMapCanvas']: ...
    def removeCustomActionForLayerType(self, action: typing.Optional[QtWidgets.QAction]) -> bool: ...
    def addCustomActionForLayer(self, action: typing.Optional[QtWidgets.QAction], layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    def addCustomActionForLayerType(self, action: typing.Optional[QtWidgets.QAction], menu: typing.Optional[str], type: _core.Qgis.LayerType, allLayers: bool) -> None: ...
    def layerTreeView(self) -> typing.Optional['QgsLayerTreeView']: ...
    def pluginManagerInterface(self) -> typing.Optional['QgsPluginManagerInterface']: ...


class Qgs3DSymbolWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget]) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def symbolType(self) -> str: ...
    def symbol(self) -> typing.Optional[_core.QgsAbstract3DSymbol]: ...
    def setSymbol(self, symbol: typing.Optional[_core.QgsAbstract3DSymbol], layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...


class Qgs3DSymbolDialog(QtWidgets.QDialog):

    def __init__(self, symbol: typing.Optional[_core.QgsAbstract3DSymbol], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def buttonBox(self) -> typing.Optional[QtWidgets.QDialogButtonBox]: ...
    def symbol(self) -> typing.Optional[_core.QgsAbstract3DSymbol]: ...


class QgsAbstractDataSourceWidget(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., widgetMode: _core.QgsProviderRegistry.WidgetMode = ...) -> None: ...

    def addButton(self) -> typing.Optional[QtWidgets.QPushButton]: ...
    def setupButtons(self, buttonBox: typing.Optional[QtWidgets.QDialogButtonBox]) -> None: ...
    def browserModel(self) -> typing.Optional[_core.QgsBrowserModel]: ...
    def widgetMode(self) -> _core.QgsProviderRegistry.WidgetMode: ...
    pushMessage: typing.ClassVar[QtCore.pyqtSignal]
    enableButtons: typing.ClassVar[QtCore.pyqtSignal]
    progressMessage: typing.ClassVar[QtCore.pyqtSignal]
    progress: typing.ClassVar[QtCore.pyqtSignal]
    replaceVectorLayer: typing.ClassVar[QtCore.pyqtSignal]
    addVectorLayers: typing.ClassVar[QtCore.pyqtSignal]
    addLayer: typing.ClassVar[QtCore.pyqtSignal]
    addPointCloudLayer: typing.ClassVar[QtCore.pyqtSignal]
    addVectorTileLayer: typing.ClassVar[QtCore.pyqtSignal]
    addMeshLayer: typing.ClassVar[QtCore.pyqtSignal]
    addVectorLayer: typing.ClassVar[QtCore.pyqtSignal]
    addRasterLayers: typing.ClassVar[QtCore.pyqtSignal]
    addRasterLayer: typing.ClassVar[QtCore.pyqtSignal]
    addDatabaseLayers: typing.ClassVar[QtCore.pyqtSignal]
    connectionsChanged: typing.ClassVar[QtCore.pyqtSignal]
    def reset(self) -> None: ...
    def addButtonClicked(self) -> None: ...
    def refresh(self) -> None: ...
    def setMapCanvas(self, mapCanvas: typing.Optional['QgsMapCanvas']) -> None: ...
    def mapCanvas(self) -> typing.Optional['QgsMapCanvas']: ...
    def setBrowserModel(self, model: typing.Optional[_core.QgsBrowserModel]) -> None: ...


class QgsAbstractMapToolHandler(PyQt5.sip.wrapper):

    class Context(PyQt5.sip.wrapper):

        dummy = ... # type: bool

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsAbstractMapToolHandler.Context') -> None: ...

    @typing.overload
    def __init__(self, tool: typing.Optional['QgsMapTool'], action: typing.Optional[QtWidgets.QAction]) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsAbstractMapToolHandler') -> None: ...

    def setLayerForTool(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    def isCompatibleWithLayer(self, layer: typing.Optional[_core.QgsMapLayer], context: 'QgsAbstractMapToolHandler.Context') -> bool: ...
    def action(self) -> typing.Optional[QtWidgets.QAction]: ...
    def mapTool(self) -> typing.Optional['QgsMapTool']: ...


class QgsMapCanvasItem(QtWidgets.QGraphicsItem):

    def __init__(self, mapCanvas: typing.Optional['QgsMapCanvas']) -> None: ...

    def toCanvasCoordinates(self, point: _core.QgsPointXY) -> QtCore.QPointF: ...
    def toMapCoordinates(self, point: QtCore.QPoint) -> _core.QgsPointXY: ...
    def setRect(self, r: _core.QgsRectangle, resetRotation: bool = ...) -> None: ...
    def rect(self) -> _core.QgsRectangle: ...
    def boundingRect(self) -> QtCore.QRectF: ...
    def updatePosition(self) -> None: ...
    def setRenderContextVariables(self, p: typing.Optional[QtGui.QPainter], context: _core.QgsRenderContext) -> bool: ...
    def updateCanvas(self) -> None: ...
    @typing.overload
    def paint(self, painter: typing.Optional[QtGui.QPainter]) -> None: ...
    @typing.overload
    def paint(self, painter: typing.Optional[QtGui.QPainter], option: typing.Optional[QtWidgets.QStyleOptionGraphicsItem], widget: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsAdvancedDigitizingCanvasItem(QgsMapCanvasItem):

    def __init__(self, canvas: typing.Optional['QgsMapCanvas'], cadDockWidget: typing.Optional['QgsAdvancedDigitizingDockWidget']) -> None: ...

    def updatePosition(self) -> None: ...
    def paint(self, painter: typing.Optional[QtGui.QPainter]) -> None: ...


class QgsDockWidget(QtWidgets.QDockWidget):

    @typing.overload
    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...
    @typing.overload
    def __init__(self, title: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    openedStateChanged: typing.ClassVar[QtCore.pyqtSignal]
    opened: typing.ClassVar[QtCore.pyqtSignal]
    closedStateChanged: typing.ClassVar[QtCore.pyqtSignal]
    closed: typing.ClassVar[QtCore.pyqtSignal]
    def showEvent(self, event: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def closeEvent(self, a0: typing.Optional[QtGui.QCloseEvent]) -> None: ...
    def toggleUserVisible(self) -> None: ...
    def setUserVisible(self, visible: bool) -> None: ...
    def toggleVisibilityAction(self) -> typing.Optional[QtWidgets.QAction]: ...
    def setToggleVisibilityAction(self, action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def isUserVisible(self) -> bool: ...


class QgsAdvancedDigitizingDockWidget(QgsDockWidget):

    class WidgetSetMode(int):
        ReturnPressed = ... # type: QgsAdvancedDigitizingDockWidget.WidgetSetMode

    class CadCapacity(int):
        AbsoluteAngle = ... # type: QgsAdvancedDigitizingDockWidget.CadCapacity
        RelativeAngle = ... # type: QgsAdvancedDigitizingDockWidget.CadCapacity
        RelativeCoordinates = ... # type: QgsAdvancedDigitizingDockWidget.CadCapacity
        Distance = ... # type: QgsAdvancedDigitizingDockWidget.CadCapacity

    class CadCapacities(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsAdvancedDigitizingDockWidget.CadCapacities', 'QgsAdvancedDigitizingDockWidget.CadCapacity']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsAdvancedDigitizingDockWidget.CadCapacities', 'QgsAdvancedDigitizingDockWidget.CadCapacity']) -> 'QgsAdvancedDigitizingDockWidget.CadCapacities': ...
        def __xor__(self, f: typing.Union['QgsAdvancedDigitizingDockWidget.CadCapacities', 'QgsAdvancedDigitizingDockWidget.CadCapacity']) -> 'QgsAdvancedDigitizingDockWidget.CadCapacities': ...
        def __ior__(self, f: typing.Union['QgsAdvancedDigitizingDockWidget.CadCapacities', 'QgsAdvancedDigitizingDockWidget.CadCapacity']) -> 'QgsAdvancedDigitizingDockWidget.CadCapacities': ...
        def __or__(self, f: typing.Union['QgsAdvancedDigitizingDockWidget.CadCapacities', 'QgsAdvancedDigitizingDockWidget.CadCapacity']) -> 'QgsAdvancedDigitizingDockWidget.CadCapacities': ...
        def __iand__(self, f: typing.Union['QgsAdvancedDigitizingDockWidget.CadCapacities', 'QgsAdvancedDigitizingDockWidget.CadCapacity']) -> 'QgsAdvancedDigitizingDockWidget.CadCapacities': ...
        def __and__(self, f: typing.Union['QgsAdvancedDigitizingDockWidget.CadCapacities', 'QgsAdvancedDigitizingDockWidget.CadCapacity']) -> 'QgsAdvancedDigitizingDockWidget.CadCapacities': ...
        def __invert__(self) -> 'QgsAdvancedDigitizingDockWidget.CadCapacities': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    class CadConstraint(PyQt5.sip.wrapper):

        class LockMode(int):
            NoLock = ... # type: QgsAdvancedDigitizingDockWidget.CadConstraint.LockMode
            SoftLock = ... # type: QgsAdvancedDigitizingDockWidget.CadConstraint.LockMode
            HardLock = ... # type: QgsAdvancedDigitizingDockWidget.CadConstraint.LockMode

        @typing.overload
        def __init__(self, lineEdit: typing.Optional[QtWidgets.QLineEdit], lockerButton: typing.Optional[QtWidgets.QToolButton], relativeButton: typing.Optional[QtWidgets.QToolButton] = ..., repeatingLockButton: typing.Optional[QtWidgets.QToolButton] = ...) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsAdvancedDigitizingDockWidget.CadConstraint') -> None: ...

        @staticmethod
        def removeSuffix(text: typing.Optional[str], constraintType: _core.Qgis.CadConstraintType) -> str: ...
        def setMapCanvas(self, mapCanvas: typing.Optional['QgsMapCanvas']) -> None: ...
        def setCadConstraintType(self, constraintType: _core.Qgis.CadConstraintType) -> None: ...
        def cadConstraintType(self) -> _core.Qgis.CadConstraintType: ...
        def setPrecision(self, precision: int) -> None: ...
        def precision(self) -> int: ...
        def toggleRelative(self) -> None: ...
        def toggleLocked(self) -> None: ...
        def displayValue(self) -> str: ...
        def setValue(self, value: float, updateWidget: bool = ...) -> None: ...
        def setRelative(self, relative: bool) -> None: ...
        def setRepeatingLock(self, repeating: bool) -> None: ...
        def setLockMode(self, mode: 'QgsAdvancedDigitizingDockWidget.CadConstraint.LockMode') -> None: ...
        def lineEdit(self) -> typing.Optional[QtWidgets.QLineEdit]: ...
        def value(self) -> float: ...
        def relative(self) -> bool: ...
        def isRepeatingLock(self) -> bool: ...
        def isLocked(self) -> bool: ...
        def lockMode(self) -> 'QgsAdvancedDigitizingDockWidget.CadConstraint.LockMode': ...

    def __init__(self, canvas: typing.Optional['QgsMapCanvas'], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    valueCommonAngleSnappingChanged: typing.ClassVar[QtCore.pyqtSignal]
    focusOnDistanceRequested: typing.ClassVar[QtCore.pyqtSignal]
    focusOnAngleRequested: typing.ClassVar[QtCore.pyqtSignal]
    focusOnMRequested: typing.ClassVar[QtCore.pyqtSignal]
    focusOnZRequested: typing.ClassVar[QtCore.pyqtSignal]
    focusOnYRequested: typing.ClassVar[QtCore.pyqtSignal]
    focusOnXRequested: typing.ClassVar[QtCore.pyqtSignal]
    enabledChangedDistance: typing.ClassVar[QtCore.pyqtSignal]
    enabledChangedAngle: typing.ClassVar[QtCore.pyqtSignal]
    enabledChangedM: typing.ClassVar[QtCore.pyqtSignal]
    enabledChangedZ: typing.ClassVar[QtCore.pyqtSignal]
    enabledChangedY: typing.ClassVar[QtCore.pyqtSignal]
    enabledChangedX: typing.ClassVar[QtCore.pyqtSignal]
    softLockXyChanged: typing.ClassVar[QtCore.pyqtSignal]
    softLockLineExtensionChanged: typing.ClassVar[QtCore.pyqtSignal]
    relativeAngleChanged: typing.ClassVar[QtCore.pyqtSignal]
    relativeMChanged: typing.ClassVar[QtCore.pyqtSignal]
    relativeZChanged: typing.ClassVar[QtCore.pyqtSignal]
    relativeYChanged: typing.ClassVar[QtCore.pyqtSignal]
    relativeXChanged: typing.ClassVar[QtCore.pyqtSignal]
    lockDistanceChanged: typing.ClassVar[QtCore.pyqtSignal]
    lockAngleChanged: typing.ClassVar[QtCore.pyqtSignal]
    lockMChanged: typing.ClassVar[QtCore.pyqtSignal]
    lockZChanged: typing.ClassVar[QtCore.pyqtSignal]
    lockYChanged: typing.ClassVar[QtCore.pyqtSignal]
    lockXChanged: typing.ClassVar[QtCore.pyqtSignal]
    valueBearingChanged: typing.ClassVar[QtCore.pyqtSignal]
    valueDistanceChanged: typing.ClassVar[QtCore.pyqtSignal]
    valueAngleChanged: typing.ClassVar[QtCore.pyqtSignal]
    valueMChanged: typing.ClassVar[QtCore.pyqtSignal]
    valueZChanged: typing.ClassVar[QtCore.pyqtSignal]
    valueYChanged: typing.ClassVar[QtCore.pyqtSignal]
    valueXChanged: typing.ClassVar[QtCore.pyqtSignal]
    cadEnabledChanged: typing.ClassVar[QtCore.pyqtSignal]
    pointChanged: typing.ClassVar[QtCore.pyqtSignal]
    pointChangedV2: typing.ClassVar[QtCore.pyqtSignal]
    popWarning: typing.ClassVar[QtCore.pyqtSignal]
    pushWarning: typing.ClassVar[QtCore.pyqtSignal]
    def formatCommonAngleSnapping(self, angle: float) -> str: ...
    def capacities(self) -> 'QgsAdvancedDigitizingDockWidget.CadCapacities': ...
    def getLineM(self) -> float: ...
    def getLineZ(self) -> float: ...
    def setDistance(self, value: typing.Optional[str], mode: 'QgsAdvancedDigitizingDockWidget.WidgetSetMode') -> None: ...
    def setAngle(self, value: typing.Optional[str], mode: 'QgsAdvancedDigitizingDockWidget.WidgetSetMode') -> None: ...
    def setM(self, value: typing.Optional[str], mode: 'QgsAdvancedDigitizingDockWidget.WidgetSetMode') -> None: ...
    def setZ(self, value: typing.Optional[str], mode: 'QgsAdvancedDigitizingDockWidget.WidgetSetMode') -> None: ...
    def setY(self, value: typing.Optional[str], mode: 'QgsAdvancedDigitizingDockWidget.WidgetSetMode') -> None: ...
    def setX(self, value: typing.Optional[str], mode: 'QgsAdvancedDigitizingDockWidget.WidgetSetMode') -> None: ...
    def updateCadPaintItem(self) -> None: ...
    def disable(self) -> None: ...
    def enable(self) -> None: ...
    def enableAction(self) -> typing.Optional[QtWidgets.QAction]: ...
    def snappedSegment(self) -> typing.List[_core.QgsPointXY]: ...
    def snappedToVertex(self) -> bool: ...
    def pointsCount(self) -> int: ...
    def penultimatePoint(self) -> typing.Tuple[_core.QgsPointXY, typing.Optional[bool]]: ...
    def penultimatePointV2(self) -> typing.Tuple[_core.QgsPoint, typing.Optional[bool]]: ...
    def previousPoint(self) -> typing.Tuple[_core.QgsPointXY, typing.Optional[bool]]: ...
    def previousPointV2(self) -> typing.Tuple[_core.QgsPoint, typing.Optional[bool]]: ...
    def currentPoint(self) -> typing.Tuple[_core.QgsPointXY, typing.Optional[bool]]: ...
    def currentPointLayerCoordinates(self, layer: typing.Optional[_core.QgsMapLayer]) -> _core.QgsPoint: ...
    def currentPointV2(self) -> typing.Tuple[_core.QgsPoint, typing.Optional[bool]]: ...
    def setPoints(self, points: typing.Iterable[_core.QgsPointXY]) -> None: ...
    def updateCurrentPoint(self, point: _core.QgsPoint) -> None: ...
    def removePreviousPoint(self) -> None: ...
    def addPoint(self, point: _core.QgsPointXY) -> None: ...
    def clearPoints(self) -> None: ...
    def clearLockedSnapVertices(self, force: bool = ...) -> None: ...
    def lockedSnapVertices(self) -> typing.List[_core.QgsPointLocator.Match]: ...
    def mapPointMatch(self) -> _core.QgsPointLocator.Match: ...
    def softLockY(self) -> float: ...
    def softLockX(self) -> float: ...
    def constraintXyVertex(self) -> typing.Optional['QgsAdvancedDigitizingDockWidget.CadConstraint']: ...
    def lineExtensionSide(self) -> _core.Qgis.LineExtensionSide: ...
    def constraintLineExtension(self) -> typing.Optional['QgsAdvancedDigitizingDockWidget.CadConstraint']: ...
    def commonAngleConstraint(self) -> bool: ...
    def constraintM(self) -> typing.Optional['QgsAdvancedDigitizingDockWidget.CadConstraint']: ...
    def constraintZ(self) -> typing.Optional['QgsAdvancedDigitizingDockWidget.CadConstraint']: ...
    def constraintY(self) -> typing.Optional['QgsAdvancedDigitizingDockWidget.CadConstraint']: ...
    def constraintX(self) -> typing.Optional['QgsAdvancedDigitizingDockWidget.CadConstraint']: ...
    def constraintDistance(self) -> typing.Optional['QgsAdvancedDigitizingDockWidget.CadConstraint']: ...
    def constraintAngle(self) -> typing.Optional['QgsAdvancedDigitizingDockWidget.CadConstraint']: ...
    def betweenLineConstraint(self) -> _core.Qgis.BetweenLineConstraint: ...
    def constructionMode(self) -> bool: ...
    def setEnabledM(self, enable: bool) -> None: ...
    def setEnabledZ(self, enable: bool) -> None: ...
    def switchZM(self) -> None: ...
    def cadEnabled(self) -> bool: ...
    def keyPressEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def clear(self) -> None: ...
    def releaseLocks(self, releaseRepeatingLocks: bool = ...) -> None: ...
    def alignToSegment(self, e: typing.Optional['QgsMapMouseEvent'], lockMode: 'QgsAdvancedDigitizingDockWidget.CadConstraint.LockMode' = ...) -> bool: ...
    def applyConstraints(self, e: typing.Optional['QgsMapMouseEvent']) -> bool: ...
    def canvasKeyPressEventFilter(self, e: typing.Optional[QtGui.QKeyEvent]) -> bool: ...


class QgsAdvancedDigitizingFloater(QtWidgets.QWidget):

    class FloaterItem(int):
        XCoordinate = ... # type: QgsAdvancedDigitizingFloater.FloaterItem
        YCoordinate = ... # type: QgsAdvancedDigitizingFloater.FloaterItem
        MCoordinate = ... # type: QgsAdvancedDigitizingFloater.FloaterItem
        ZCoordinate = ... # type: QgsAdvancedDigitizingFloater.FloaterItem
        Angle = ... # type: QgsAdvancedDigitizingFloater.FloaterItem
        CommonAngleSnapping = ... # type: QgsAdvancedDigitizingFloater.FloaterItem
        Distance = ... # type: QgsAdvancedDigitizingFloater.FloaterItem
        Bearing = ... # type: QgsAdvancedDigitizingFloater.FloaterItem

    class FloaterItems(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsAdvancedDigitizingFloater.FloaterItems', 'QgsAdvancedDigitizingFloater.FloaterItem']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsAdvancedDigitizingFloater.FloaterItems', 'QgsAdvancedDigitizingFloater.FloaterItem']) -> 'QgsAdvancedDigitizingFloater.FloaterItems': ...
        def __xor__(self, f: typing.Union['QgsAdvancedDigitizingFloater.FloaterItems', 'QgsAdvancedDigitizingFloater.FloaterItem']) -> 'QgsAdvancedDigitizingFloater.FloaterItems': ...
        def __ior__(self, f: typing.Union['QgsAdvancedDigitizingFloater.FloaterItems', 'QgsAdvancedDigitizingFloater.FloaterItem']) -> 'QgsAdvancedDigitizingFloater.FloaterItems': ...
        def __or__(self, f: typing.Union['QgsAdvancedDigitizingFloater.FloaterItems', 'QgsAdvancedDigitizingFloater.FloaterItem']) -> 'QgsAdvancedDigitizingFloater.FloaterItems': ...
        def __iand__(self, f: typing.Union['QgsAdvancedDigitizingFloater.FloaterItems', 'QgsAdvancedDigitizingFloater.FloaterItem']) -> 'QgsAdvancedDigitizingFloater.FloaterItems': ...
        def __and__(self, f: typing.Union['QgsAdvancedDigitizingFloater.FloaterItems', 'QgsAdvancedDigitizingFloater.FloaterItem']) -> 'QgsAdvancedDigitizingFloater.FloaterItems': ...
        def __invert__(self) -> 'QgsAdvancedDigitizingFloater.FloaterItems': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, canvas: typing.Optional['QgsMapCanvas'], cadDockWidget: typing.Optional[QgsAdvancedDigitizingDockWidget]) -> None: ...

    def setItemVisibility(self, item: 'QgsAdvancedDigitizingFloater.FloaterItem', visible: bool) -> None: ...
    def setActive(self, active: bool) -> None: ...
    def itemVisibility(self, item: 'QgsAdvancedDigitizingFloater.FloaterItem') -> bool: ...
    def active(self) -> bool: ...


class QgsAggregateToolButton(QtWidgets.QToolButton):

    def __init__(self) -> None: ...

    activeChanged: typing.ClassVar[QtCore.pyqtSignal]
    aggregateChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setAggregate(self, aggregate: typing.Optional[str]) -> None: ...
    def aggregate(self) -> str: ...
    def active(self) -> bool: ...
    def setActive(self, active: bool) -> None: ...
    def type(self) -> QtCore.QVariant.Type: ...
    def setType(self, type: QtCore.QVariant.Type) -> None: ...


class QgsAlignmentComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def customizeAlignmentDisplay(self, alignment: typing.Union[QtCore.Qt.Alignment, QtCore.Qt.AlignmentFlag], text: typing.Optional[str] = ..., icon: QtGui.QIcon = ...) -> None: ...
    def setCurrentAlignment(self, alignment: typing.Union[QtCore.Qt.Alignment, QtCore.Qt.AlignmentFlag]) -> None: ...
    def currentAlignment(self) -> QtCore.Qt.Alignment: ...
    def setAvailableAlignments(self, alignments: typing.Union[QtCore.Qt.Alignment, QtCore.Qt.AlignmentFlag]) -> None: ...


class QgsApplicationExitBlockerInterface(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsApplicationExitBlockerInterface') -> None: ...

    def allowExit(self) -> bool: ...


class QgsMapLayerActionContextGenerator(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsMapLayerActionContextGenerator') -> None: ...

    def createActionContext(self) -> 'QgsMapLayerActionContext': ...


class QgsAttributeDialog(QtWidgets.QDialog, QgsMapLayerActionContextGenerator):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], thepFeature: typing.Optional[_core.QgsFeature], featureOwner: bool, parent: typing.Optional[QtWidgets.QWidget] = ..., showDialogButtons: bool = ..., context: 'QgsAttributeEditorContext' = ...) -> None: ...

    def show(self) -> None: ...
    def reject(self) -> None: ...
    def accept(self) -> None: ...
    def createActionContext(self) -> 'QgsMapLayerActionContext': ...
    def setExtraContextScope(self, extraScope: typing.Optional[_core.QgsExpressionContextScope]) -> None: ...
    def showEvent(self, event: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def event(self, e: typing.Optional[QtCore.QEvent]) -> bool: ...
    def setEditCommandMessage(self, message: typing.Optional[str]) -> None: ...
    def setMode(self, mode: 'QgsAttributeEditorContext.Mode') -> None: ...
    def editable(self) -> bool: ...
    def feature(self) -> typing.Optional[_core.QgsFeature]: ...
    def attributeForm(self) -> typing.Optional['QgsAttributeForm']: ...
    def setHighlight(self, h: typing.Optional['QgsHighlight']) -> None: ...


class QgsAttributeEditorContext(PyQt5.sip.wrapper):

    class FormMode(int):
        Embed = ... # type: QgsAttributeEditorContext.FormMode
        StandaloneDialog = ... # type: QgsAttributeEditorContext.FormMode
        Popup = ... # type: QgsAttributeEditorContext.FormMode

    class RelationMode(int):
        Undefined = ... # type: QgsAttributeEditorContext.RelationMode
        Multiple = ... # type: QgsAttributeEditorContext.RelationMode
        Single = ... # type: QgsAttributeEditorContext.RelationMode

    class Mode(int):
        SingleEditMode = ... # type: QgsAttributeEditorContext.Mode
        AddFeatureMode = ... # type: QgsAttributeEditorContext.Mode
        FixAttributeMode = ... # type: QgsAttributeEditorContext.Mode
        MultiEditMode = ... # type: QgsAttributeEditorContext.Mode
        SearchMode = ... # type: QgsAttributeEditorContext.Mode
        AggregateSearchMode = ... # type: QgsAttributeEditorContext.Mode
        IdentifyMode = ... # type: QgsAttributeEditorContext.Mode

    staticMetaObject = ... # type: QtCore.QMetaObject

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, parentContext: 'QgsAttributeEditorContext', formMode: 'QgsAttributeEditorContext.FormMode') -> None: ...
    @typing.overload
    def __init__(self, parentContext: 'QgsAttributeEditorContext', relation: _core.QgsRelation, relationMode: 'QgsAttributeEditorContext.RelationMode', widgetMode: 'QgsAttributeEditorContext.FormMode') -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsAttributeEditorContext') -> None: ...

    def mainMessageBar(self) -> typing.Optional['QgsMessageBar']: ...
    def setMainMessageBar(self, messageBar: typing.Optional['QgsMessageBar']) -> None: ...
    def attributeFormModeString(self) -> str: ...
    def setAttributeFormMode(self, attributeFormMode: 'QgsAttributeEditorContext.Mode') -> None: ...
    def attributeFormMode(self) -> 'QgsAttributeEditorContext.Mode': ...
    def setParentFormFeature(self, feature: _core.QgsFeature) -> None: ...
    def parentFormFeature(self) -> _core.QgsFeature: ...
    def setFormFeature(self, feature: _core.QgsFeature) -> None: ...
    def formFeature(self) -> _core.QgsFeature: ...
    def parentContext(self) -> typing.Optional['QgsAttributeEditorContext']: ...
    def setAllowCustomUi(self, allow: bool) -> None: ...
    def allowCustomUi(self) -> bool: ...
    def setFormMode(self, mode: 'QgsAttributeEditorContext.FormMode') -> None: ...
    def formMode(self) -> 'QgsAttributeEditorContext.FormMode': ...
    def relationMode(self) -> 'QgsAttributeEditorContext.RelationMode': ...
    def relation(self) -> _core.QgsRelation: ...
    def setRelation(self, relation: _core.QgsRelation, mode: 'QgsAttributeEditorContext.RelationMode') -> None: ...
    def vectorLayerTools(self) -> typing.Optional[_core.QgsVectorLayerTools]: ...
    def setVectorLayerTools(self, vlTools: typing.Optional[_core.QgsVectorLayerTools]) -> None: ...
    def cadDockWidget(self) -> typing.Optional[QgsAdvancedDigitizingDockWidget]: ...
    def setCadDockWidget(self, cadDockWidget: typing.Optional[QgsAdvancedDigitizingDockWidget]) -> None: ...
    def mapCanvas(self) -> typing.Optional['QgsMapCanvas']: ...
    def setMapCanvas(self, mapCanvas: typing.Optional['QgsMapCanvas']) -> None: ...
    def distanceArea(self) -> _core.QgsDistanceArea: ...
    def setDistanceArea(self, distanceArea: _core.QgsDistanceArea) -> None: ...


class QgsAttributeForm(QtWidgets.QWidget):

    class FilterType(int):
        ReplaceFilter = ... # type: QgsAttributeForm.FilterType
        FilterAnd = ... # type: QgsAttributeForm.FilterType
        FilterOr = ... # type: QgsAttributeForm.FilterType

    class Mode(int):
        SingleEditMode = ... # type: QgsAttributeForm.Mode
        AddFeatureMode = ... # type: QgsAttributeForm.Mode
        MultiEditMode = ... # type: QgsAttributeForm.Mode
        SearchMode = ... # type: QgsAttributeForm.Mode
        AggregateSearchMode = ... # type: QgsAttributeForm.Mode
        IdentifyMode = ... # type: QgsAttributeForm.Mode

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], feature: _core.QgsFeature = ..., context: QgsAttributeEditorContext = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def parentFormValueChanged(self, attribute: typing.Optional[str], newValue: typing.Any) -> None: ...
    def refreshFeature(self) -> None: ...
    def resetSearch(self) -> None: ...
    def resetValues(self) -> None: ...
    def saveWithDetails(self) -> typing.Tuple[bool, typing.Optional[str]]: ...
    def save(self) -> bool: ...
    def setFeature(self, feature: _core.QgsFeature) -> None: ...
    def changeGeometry(self, geometry: _core.QgsGeometry) -> None: ...
    def changeAttribute(self, field: typing.Optional[str], value: typing.Any, hintText: typing.Optional[str] = ...) -> None: ...
    openFilteredFeaturesAttributeTable: typing.ClassVar[QtCore.pyqtSignal]
    flashFeatures: typing.ClassVar[QtCore.pyqtSignal]
    zoomToFeatures: typing.ClassVar[QtCore.pyqtSignal]
    closed: typing.ClassVar[QtCore.pyqtSignal]
    modeChanged: typing.ClassVar[QtCore.pyqtSignal]
    filterExpressionSet: typing.ClassVar[QtCore.pyqtSignal]
    featureSaved: typing.ClassVar[QtCore.pyqtSignal]
    widgetValueChanged: typing.ClassVar[QtCore.pyqtSignal]
    attributeChanged: typing.ClassVar[QtCore.pyqtSignal]
    def needsGeometry(self) -> bool: ...
    def setExtraContextScope(self, extraScope: typing.Optional[_core.QgsExpressionContextScope]) -> None: ...
    def aggregateFilter(self) -> str: ...
    def setMessageBar(self, messageBar: typing.Optional['QgsMessageBar']) -> None: ...
    def setMultiEditFeatureIds(self, fids: typing.Any) -> None: ...
    def eventFilter(self, object: typing.Optional[QtCore.QObject], event: typing.Optional[QtCore.QEvent]) -> bool: ...
    def setEditCommandMessage(self, message: typing.Optional[str]) -> None: ...
    def setMode(self, mode: QgsAttributeEditorContext.Mode) -> None: ...
    def mode(self) -> QgsAttributeEditorContext.Mode: ...
    def editable(self) -> bool: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def addInterface(self, iface: typing.Optional['QgsAttributeFormInterface']) -> None: ...
    def disconnectButtonBox(self) -> None: ...
    def showButtonBox(self) -> None: ...
    def hideButtonBox(self) -> None: ...
    def displayWarning(self, message: typing.Optional[str]) -> None: ...
    def currentFormFeature(self) -> _core.QgsFeature: ...
    def feature(self) -> _core.QgsFeature: ...


class QgsAttributeFormWidget(QtWidgets.QWidget):

    class Mode(int):
        DefaultMode = ... # type: QgsAttributeFormWidget.Mode
        MultiEditMode = ... # type: QgsAttributeFormWidget.Mode
        SearchMode = ... # type: QgsAttributeFormWidget.Mode
        AggregateSearchMode = ... # type: QgsAttributeFormWidget.Mode

    def __init__(self, widget: typing.Optional['QgsWidgetWrapper'], form: typing.Optional[QgsAttributeForm]) -> None: ...

    def setVisiblePageForMode(self, mode: 'QgsAttributeFormWidget.Mode') -> None: ...
    def setSearchWidgetToolButtonVisible(self, searchWidgetToolButtonVisible: bool) -> None: ...
    def searchWidgetToolButtonVisible(self) -> bool: ...
    def resetSearch(self) -> None: ...
    def searchWidgetWrappers(self) -> typing.List['QgsSearchWidgetWrapper']: ...
    def addAdditionalSearchWidgetWrapper(self, wrapper: typing.Optional['QgsSearchWidgetWrapper']) -> None: ...
    def setSearchWidgetWrapper(self, wrapper: typing.Optional['QgsSearchWidgetWrapper']) -> None: ...
    def form(self) -> typing.Optional[QgsAttributeForm]: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def mode(self) -> 'QgsAttributeFormWidget.Mode': ...
    def setMode(self, mode: 'QgsAttributeFormWidget.Mode') -> None: ...
    def currentFilterExpression(self) -> str: ...
    def createSearchWidgetWrappers(self) -> None: ...


class QgsAttributeFormEditorWidget(QgsAttributeFormWidget):

    def __init__(self, editorWidget: typing.Optional['QgsEditorWidgetWrapper'], widgetType: typing.Optional[str], form: typing.Optional[QgsAttributeForm]) -> None: ...

    valuesChanged: typing.ClassVar[QtCore.pyqtSignal]
    valueChanged: typing.ClassVar[QtCore.pyqtSignal]
    def changesCommitted(self) -> None: ...
    def setIsMixed(self, mixed: bool) -> None: ...
    def editorWidget(self) -> typing.Optional['QgsEditorWidgetWrapper']: ...
    def setConstraintResultVisible(self, editable: bool) -> None: ...
    def setConstraintStatus(self, constraint: typing.Optional[str], description: typing.Optional[str], err: typing.Optional[str], result: 'QgsEditorWidgetWrapper.ConstraintResult') -> None: ...
    def currentValue(self) -> typing.Any: ...
    def hasChanged(self) -> bool: ...
    def initialize(self, initialValue: typing.Any, mixedValues: bool = ..., additionalFieldValues: typing.Iterable[typing.Any] = ...) -> None: ...
    def createSearchWidgetWrappers(self, context: QgsAttributeEditorContext = ...) -> None: ...


class QgsAttributeFormInterface(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self, form: typing.Optional[QgsAttributeForm]) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsAttributeFormInterface') -> None: ...

    def feature(self) -> _core.QgsFeature: ...
    def form(self) -> typing.Optional[QgsAttributeForm]: ...
    def featureChanged(self) -> None: ...
    def initForm(self) -> None: ...
    def acceptChanges(self, feature: _core.QgsFeature) -> bool: ...


class QgsAttributeFormRelationEditorWidget(QgsAttributeFormWidget):

    def __init__(self, wrapper: typing.Optional['QgsRelationWidgetWrapper'], form: typing.Optional[QgsAttributeForm]) -> None: ...

    def setMultiEditFeatureIds(self, fids: typing.Any) -> None: ...
    def currentFilterExpression(self) -> str: ...
    def createSearchWidgetWrappers(self, context: QgsAttributeEditorContext = ...) -> None: ...


class QgsAttributeTypeLoadDialog(QtWidgets.QDialog):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer]) -> None: ...

    def insertNull(self) -> bool: ...
    def valueMap(self) -> typing.Dict[str, typing.Any]: ...
    def setVectorLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def accept(self) -> None: ...


class QgsBlendModeComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def updateModes(self) -> None: ...
    def showClippingModes(self) -> bool: ...
    def setShowClippingModes(self, show: bool) -> None: ...
    def setBlendMode(self, blendMode: QtGui.QPainter.CompositionMode) -> None: ...
    def blendMode(self) -> QtGui.QPainter.CompositionMode: ...


class QgsBrowserDockWidget(QgsDockWidget):

    def __init__(self, name: typing.Optional[str], browserModel: typing.Optional['QgsBrowserGuiModel'], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    connectionsChanged: typing.ClassVar[QtCore.pyqtSignal]
    handleDropUriList: typing.ClassVar[QtCore.pyqtSignal]
    openFile: typing.ClassVar[QtCore.pyqtSignal]
    def splitterMoved(self) -> None: ...
    def selectionChanged(self, selected: QtCore.QItemSelection, deselected: QtCore.QItemSelection) -> None: ...
    def toggleFastScan(self) -> None: ...
    def hideItem(self) -> None: ...
    def showProperties(self) -> None: ...
    def addSelectedLayers(self) -> None: ...
    def updateProjectHome(self) -> None: ...
    def setActiveIndex(self, index: QtCore.QModelIndex) -> None: ...
    def setFilter(self) -> None: ...
    def setCaseSensitive(self, caseSensitive: bool) -> None: ...
    def setFilterSyntax(self, a0: typing.Optional[QtWidgets.QAction]) -> None: ...
    def enablePropertiesWidget(self, enable: bool) -> None: ...
    def showFilterWidget(self, visible: bool) -> None: ...
    def refresh(self) -> None: ...
    def removeFavorite(self) -> None: ...
    def addFavorite(self) -> None: ...
    def showContextMenu(self, a0: QtCore.QPoint) -> None: ...
    def addLayerAtIndex(self, index: QtCore.QModelIndex) -> bool: ...
    def setDisabledDataItemsKeys(self, filter: typing.Iterable[typing.Optional[str]]) -> None: ...
    def messageBar(self) -> typing.Optional['QgsMessageBar']: ...
    def setMessageBar(self, bar: typing.Optional['QgsMessageBar']) -> None: ...
    @typing.overload
    def addFavoriteDirectory(self, favDir: typing.Optional[str], name: typing.Optional[str] = ...) -> None: ...
    @typing.overload
    def addFavoriteDirectory(self) -> None: ...
    def browserWidget(self) -> typing.Optional['QgsBrowserWidget']: ...


class QgsPanelWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def acceptPanel(self) -> None: ...
    def openPanel(self, panel: typing.Optional['QgsPanelWidget']) -> None: ...
    widgetChanged: typing.ClassVar[QtCore.pyqtSignal]
    showPanel: typing.ClassVar[QtCore.pyqtSignal]
    panelAccepted: typing.ClassVar[QtCore.pyqtSignal]
    def menuButtonMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def menuButtonTooltip(self) -> str: ...
    @staticmethod
    def findParentPanel(widget: typing.Optional[QtWidgets.QWidget]) -> typing.Optional['QgsPanelWidget']: ...
    def autoDelete(self) -> bool: ...
    def setAutoDelete(self, autoDelete: bool) -> None: ...
    def dockMode(self) -> bool: ...
    def applySizeConstraintsToStack(self) -> bool: ...
    def setDockMode(self, dockMode: bool) -> None: ...
    def connectChildPanel(self, panel: typing.Optional['QgsPanelWidget']) -> None: ...
    def connectChildPanels(self, panels: typing.Iterable['QgsPanelWidget']) -> None: ...
    def panelTitle(self) -> str: ...
    def setPanelTitle(self, panelTitle: typing.Optional[str]) -> None: ...


class QgsBrowserWidget(QgsPanelWidget):

    def __init__(self, browserModel: typing.Optional['QgsBrowserGuiModel'], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def showEvent(self, event: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def refresh(self) -> None: ...
    def setDisabledDataItemsKeys(self, filter: typing.Iterable[typing.Optional[str]]) -> None: ...
    def messageBar(self) -> typing.Optional['QgsMessageBar']: ...
    def setMessageBar(self, bar: typing.Optional['QgsMessageBar']) -> None: ...


class QgsBrowserGuiModel(_core.QgsBrowserModel):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def setMessageBar(self, bar: typing.Optional['QgsMessageBar']) -> None: ...
    def setData(self, index: QtCore.QModelIndex, value: typing.Any, role: int = ...) -> bool: ...
    def dropMimeData(self, data: typing.Optional[QtCore.QMimeData], action: QtCore.Qt.DropAction, row: int, column: int, parent: QtCore.QModelIndex) -> bool: ...
    def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlags: ...


class QgsBrowserTreeView(QtWidgets.QTreeView):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def rowsInserted(self, parentIndex: QtCore.QModelIndex, start: int, end: int) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def expandPath(self, path: typing.Optional[str]) -> None: ...
    def setSelectedItem(self, item: typing.Optional[_core.QgsDataItem]) -> bool: ...
    def setSettingsSection(self, section: typing.Optional[str]) -> None: ...
    def hasExpandedDescendant(self, index: QtCore.QModelIndex) -> bool: ...
    def hideEvent(self, e: typing.Optional[QtGui.QHideEvent]) -> None: ...
    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def browserModel(self) -> typing.Optional[QgsBrowserGuiModel]: ...
    def setBrowserModel(self, model: typing.Optional[QgsBrowserGuiModel]) -> None: ...
    def setModel(self, model: typing.Optional[QtCore.QAbstractItemModel]) -> None: ...


class QgsBusyIndicatorDialog(QtWidgets.QDialog):

    def __init__(self, message: typing.Optional[str] = ..., parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def setMessage(self, message: typing.Optional[str]) -> None: ...
    def message(self) -> str: ...


class QgsCharacterSelectorDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def selectCharacter(self, font: QtGui.QFont, style: typing.Optional[str], initialSelection: str = ...) -> typing.Tuple[str, typing.Optional[bool]]: ...


class QgsCheckableComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def deselectAllOptions(self) -> None: ...
    def selectAllOptions(self) -> None: ...
    def showContextMenu(self, pos: QtCore.QPoint) -> None: ...
    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def setCheckedItems(self, items: typing.Iterable[typing.Optional[str]]) -> None: ...
    checkedItemsChanged: typing.ClassVar[QtCore.pyqtSignal]
    def eventFilter(self, object: typing.Optional[QtCore.QObject], event: typing.Optional[QtCore.QEvent]) -> bool: ...
    def hidePopup(self) -> None: ...
    def toggleItemCheckState(self, index: int) -> None: ...
    def setItemCheckState(self, index: int, state: QtCore.Qt.CheckState) -> None: ...
    def itemCheckState(self, index: int) -> QtCore.Qt.CheckState: ...
    def checkedItemsData(self) -> typing.List[typing.Any]: ...
    def checkedItems(self) -> typing.List[str]: ...
    def addItemWithCheckState(self, text: typing.Optional[str], state: QtCore.Qt.CheckState, userData: typing.Any = ...) -> None: ...
    def setDefaultText(self, text: typing.Optional[str]) -> None: ...
    def defaultText(self) -> str: ...
    def setSeparator(self, separator: typing.Optional[str]) -> None: ...
    def separator(self) -> str: ...


class QgsGroupBoxCollapseButton(QtWidgets.QToolButton):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def mouseReleaseEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def setShiftDown(self, shiftdown: bool) -> None: ...
    def shiftDown(self) -> bool: ...
    def setAltDown(self, updown: bool) -> None: ...
    def altDown(self) -> bool: ...


class QgsCollapsibleGroupBoxBasic(QtWidgets.QGroupBox):

    @typing.overload
    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    @typing.overload
    def __init__(self, title: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def clearModifiers(self) -> None: ...
    def titleRect(self) -> QtCore.QRect: ...
    def updateStyle(self) -> None: ...
    def changeEvent(self, event: typing.Optional[QtCore.QEvent]) -> None: ...
    def mouseReleaseEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def showEvent(self, event: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def collapseExpandFixes(self) -> None: ...
    def init(self) -> None: ...
    def setStyleSheet(self, style: typing.Optional[str]) -> None: ...
    def toggleCollapsed(self) -> None: ...
    def checkClicked(self, ckd: bool) -> None: ...
    def checkToggled(self, ckd: bool) -> None: ...
    collapsedStateChanged: typing.ClassVar[QtCore.pyqtSignal]
    def scrollOnExpand(self) -> bool: ...
    def setScrollOnExpand(self, scroll: bool) -> None: ...
    def setSyncGroup(self, grp: typing.Optional[str]) -> None: ...
    def syncGroup(self) -> str: ...
    def setCollapsed(self, collapse: bool) -> None: ...
    def isCollapsed(self) -> bool: ...


class QgsCollapsibleGroupBox(QgsCollapsibleGroupBoxBasic):

    @typing.overload
    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., settings: typing.Optional[_core.QgsSettings] = ...) -> None: ...
    @typing.overload
    def __init__(self, title: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ..., settings: typing.Optional[_core.QgsSettings] = ...) -> None: ...

    def saveKey(self) -> str: ...
    def showEvent(self, event: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def init(self) -> None: ...
    def saveState(self) -> None: ...
    def loadState(self) -> None: ...
    def settingGroup(self) -> str: ...
    def setSettingGroup(self, group: typing.Optional[str]) -> None: ...
    def saveCheckedState(self) -> bool: ...
    def saveCollapsedState(self) -> bool: ...
    def setSaveCheckedState(self, save: bool) -> None: ...
    def setSaveCollapsedState(self, save: bool) -> None: ...
    def setSettings(self, settings: typing.Optional[_core.QgsSettings]) -> None: ...


class QgsColorBrewerColorRampWidget(QgsPanelWidget):

    def __init__(self, ramp: _core.QgsColorBrewerColorRamp, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def setRamp(self, ramp: _core.QgsColorBrewerColorRamp) -> None: ...
    def ramp(self) -> _core.QgsColorBrewerColorRamp: ...


class QgsColorBrewerColorRampDialog(QtWidgets.QDialog):

    def __init__(self, ramp: _core.QgsColorBrewerColorRamp, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def buttonBox(self) -> typing.Optional[QtWidgets.QDialogButtonBox]: ...
    def setRamp(self, ramp: _core.QgsColorBrewerColorRamp) -> None: ...
    def ramp(self) -> _core.QgsColorBrewerColorRamp: ...


class QgsColorButton(QtWidgets.QToolButton):

    class Behavior(int):
        ShowDialog = ... # type: QgsColorButton.Behavior
        SignalOnly = ... # type: QgsColorButton.Behavior

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., cdt: typing.Optional[str] = ..., registry: typing.Optional[_core.QgsColorSchemeRegistry] = ...) -> None: ...

    def wheelEvent(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def dropEvent(self, e: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def dragLeaveEvent(self, e: typing.Optional[QtGui.QDragLeaveEvent]) -> None: ...
    def dragEnterEvent(self, e: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    def keyPressEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def mouseReleaseEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    @staticmethod
    def transparentBackground() -> QtGui.QPixmap: ...
    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def changeEvent(self, e: typing.Optional[QtCore.QEvent]) -> None: ...
    def event(self, e: typing.Optional[QtCore.QEvent]) -> bool: ...
    unlinked: typing.ClassVar[QtCore.pyqtSignal]
    cleared: typing.ClassVar[QtCore.pyqtSignal]
    colorClicked: typing.ClassVar[QtCore.pyqtSignal]
    colorChanged: typing.ClassVar[QtCore.pyqtSignal]
    def unlink(self) -> None: ...
    def setToNull(self) -> None: ...
    def setToDefaultColor(self) -> None: ...
    def setToNoColor(self) -> None: ...
    def activatePicker(self) -> None: ...
    def pasteColor(self) -> None: ...
    def copyColor(self) -> None: ...
    def setButtonBackground(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor] = ...) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    @staticmethod
    def createMenuIcon(color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], showChecks: bool = ...) -> QtGui.QPixmap: ...
    def linkedProjectColorName(self) -> str: ...
    def linkToProjectColor(self, name: typing.Optional[str]) -> None: ...
    def colorSchemeRegistry(self) -> typing.Optional[_core.QgsColorSchemeRegistry]: ...
    def setColorSchemeRegistry(self, registry: typing.Optional[_core.QgsColorSchemeRegistry]) -> None: ...
    def context(self) -> str: ...
    def setContext(self, context: typing.Optional[str]) -> None: ...
    def noColorString(self) -> str: ...
    def isNull(self) -> bool: ...
    def showNull(self) -> bool: ...
    def setShowNull(self, showNull: bool, nullString: typing.Optional[str] = ...) -> None: ...
    def setNoColorString(self, noColorString: typing.Optional[str]) -> None: ...
    def showNoColor(self) -> bool: ...
    def setShowNoColor(self, showNoColorOption: bool) -> None: ...
    def defaultColor(self) -> QtGui.QColor: ...
    def setDefaultColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def behavior(self) -> 'QgsColorButton.Behavior': ...
    def setBehavior(self, behavior: 'QgsColorButton.Behavior') -> None: ...
    def showMenu(self) -> bool: ...
    def setShowMenu(self, showMenu: bool) -> None: ...
    def colorDialogTitle(self) -> str: ...
    def setColorDialogTitle(self, title: typing.Optional[str]) -> None: ...
    def allowOpacity(self) -> bool: ...
    def setAllowOpacity(self, allowOpacity: bool) -> None: ...
    def color(self) -> QtGui.QColor: ...
    def sizeHint(self) -> QtCore.QSize: ...
    def minimumSizeHint(self) -> QtCore.QSize: ...


class QgsColorDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor] = ...) -> None: ...

    def closeEvent(self, e: typing.Optional[QtGui.QCloseEvent]) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    currentColorChanged: typing.ClassVar[QtCore.pyqtSignal]
    @staticmethod
    def getColor(initialColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], parent: typing.Optional[QtWidgets.QWidget], title: typing.Optional[str] = ..., allowOpacity: bool = ...) -> QtGui.QColor: ...
    def setAllowOpacity(self, allowOpacity: bool) -> None: ...
    def setTitle(self, title: typing.Optional[str]) -> None: ...
    def color(self) -> QtGui.QColor: ...


class QgsColorRampButton(QtWidgets.QToolButton):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., dialogTitle: typing.Optional[str] = ...) -> None: ...

    def mousePressEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def changeEvent(self, e: typing.Optional[QtCore.QEvent]) -> None: ...
    def event(self, e: typing.Optional[QtCore.QEvent]) -> bool: ...
    colorRampChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setToNull(self) -> None: ...
    def setToDefaultColorRamp(self) -> None: ...
    def setButtonBackground(self, colorramp: typing.Optional[_core.QgsColorRamp] = ...) -> None: ...
    def setColorRampFromName(self, name: typing.Optional[str] = ...) -> None: ...
    def setRandomColorRamp(self) -> None: ...
    def setColorRamp(self, colorramp: typing.Optional[_core.QgsColorRamp]) -> None: ...
    def colorRampName(self) -> str: ...
    def setColorRampName(self, name: typing.Optional[str]) -> None: ...
    def showGradientOnly(self) -> bool: ...
    def setShowGradientOnly(self, gradientonly: bool) -> None: ...
    def context(self) -> str: ...
    def setContext(self, context: typing.Optional[str]) -> None: ...
    def isNull(self) -> bool: ...
    def showNull(self) -> bool: ...
    def setShowNull(self, showNull: bool) -> None: ...
    def isRandomColorRamp(self) -> bool: ...
    def showRandomColorRamp(self) -> bool: ...
    def setShowRandomColorRamp(self, showRandom: bool) -> None: ...
    def defaultColorRamp(self) -> typing.Optional[_core.QgsColorRamp]: ...
    def setDefaultColorRamp(self, colorramp: typing.Optional[_core.QgsColorRamp]) -> None: ...
    def showMenu(self) -> bool: ...
    def setShowMenu(self, showMenu: bool) -> None: ...
    def setAcceptLiveUpdates(self, accept: bool) -> None: ...
    def acceptLiveUpdates(self) -> bool: ...
    def colorRampDialogTitle(self) -> str: ...
    def setColorRampDialogTitle(self, title: typing.Optional[str]) -> None: ...
    def colorRamp(self) -> typing.Optional[_core.QgsColorRamp]: ...
    def sizeHint(self) -> QtCore.QSize: ...


class QgsColorRampLegendNodeWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setUseContinuousRampCheckBoxVisibility(self, visible: bool) -> None: ...
    def setSettings(self, settings: _core.QgsColorRampLegendNodeSettings) -> None: ...
    def settings(self) -> _core.QgsColorRampLegendNodeSettings: ...


class QgsColorRampLegendNodeDialog(QtWidgets.QDialog):

    def __init__(self, settings: _core.QgsColorRampLegendNodeSettings, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setUseContinuousRampCheckBoxVisibility(self, visible: bool) -> None: ...
    def buttonBox(self) -> typing.Optional[QtWidgets.QDialogButtonBox]: ...
    def settings(self) -> _core.QgsColorRampLegendNodeSettings: ...


class QgsColorSwatchDelegate(QtWidgets.QAbstractItemDelegate):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def editorEvent(self, event: typing.Optional[QtCore.QEvent], model: typing.Optional[QtCore.QAbstractItemModel], option: QtWidgets.QStyleOptionViewItem, index: QtCore.QModelIndex) -> bool: ...
    def sizeHint(self, option: QtWidgets.QStyleOptionViewItem, index: QtCore.QModelIndex) -> QtCore.QSize: ...
    def paint(self, painter: typing.Optional[QtGui.QPainter], option: QtWidgets.QStyleOptionViewItem, index: QtCore.QModelIndex) -> None: ...


class QgsColorSchemeModel(QtCore.QAbstractItemModel):

    def __init__(self, scheme: typing.Optional[_core.QgsColorScheme], context: typing.Optional[str] = ..., baseColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor] = ..., parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def isDirty(self) -> bool: ...
    def addColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], label: typing.Optional[str] = ..., allowDuplicate: bool = ...) -> None: ...
    def baseColor(self) -> QtGui.QColor: ...
    def context(self) -> str: ...
    def setScheme(self, scheme: typing.Optional[_core.QgsColorScheme], context: typing.Optional[str] = ..., baseColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor] = ...) -> None: ...
    def colors(self) -> typing.List[typing.Tuple[QtGui.QColor, str]]: ...
    def dropMimeData(self, data: typing.Optional[QtCore.QMimeData], action: QtCore.Qt.DropAction, row: int, column: int, parent: QtCore.QModelIndex) -> bool: ...
    def mimeData(self, indexes: typing.Iterable[QtCore.QModelIndex]) -> typing.Optional[QtCore.QMimeData]: ...
    def insertRows(self, row: int, count: int, parent: QtCore.QModelIndex = ...) -> bool: ...
    def removeRows(self, row: int, count: int, parent: QtCore.QModelIndex = ...) -> bool: ...
    def mimeTypes(self) -> typing.List[str]: ...
    def supportedDropActions(self) -> QtCore.Qt.DropActions: ...
    def headerData(self, section: int, orientation: QtCore.Qt.Orientation, role: int = ...) -> typing.Any: ...
    def setData(self, index: QtCore.QModelIndex, value: typing.Any, role: int = ...) -> bool: ...
    def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlags: ...
    def data(self, index: QtCore.QModelIndex, role: int = ...) -> typing.Any: ...
    def columnCount(self, parent: QtCore.QModelIndex = ...) -> int: ...
    def rowCount(self, parent: QtCore.QModelIndex = ...) -> int: ...
    def parent(self, index: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def index(self, row: int, column: int, parent: QtCore.QModelIndex = ...) -> QtCore.QModelIndex: ...


class QgsColorSchemeList(QtWidgets.QTreeView):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., scheme: typing.Optional[_core.QgsColorScheme] = ..., context: typing.Optional[str] = ..., baseColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor] = ...) -> None: ...

    def mouseReleaseEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    colorSelected: typing.ClassVar[QtCore.pyqtSignal]
    def showExportColorsDialog(self) -> None: ...
    def showImportColorsDialog(self) -> None: ...
    def copyColors(self) -> None: ...
    def pasteColors(self) -> None: ...
    def addColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], label: typing.Optional[str] = ..., allowDuplicate: bool = ...) -> None: ...
    def removeSelection(self) -> None: ...
    def setScheme(self, scheme: typing.Optional[_core.QgsColorScheme], context: typing.Optional[str] = ..., baseColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor] = ...) -> None: ...
    def scheme(self) -> typing.Optional[_core.QgsColorScheme]: ...
    def isDirty(self) -> bool: ...
    def exportColorsToGpl(self, file: QtCore.QFile) -> bool: ...
    def importColorsFromGpl(self, file: QtCore.QFile) -> bool: ...
    def saveColorsToScheme(self) -> bool: ...


class QgsColorSwatchGrid(QtWidgets.QWidget):

    def __init__(self, scheme: typing.Optional[_core.QgsColorScheme], context: typing.Optional[str] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def focusOutEvent(self, event: typing.Optional[QtGui.QFocusEvent]) -> None: ...
    def focusInEvent(self, event: typing.Optional[QtGui.QFocusEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def mouseReleaseEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    hovered: typing.ClassVar[QtCore.pyqtSignal]
    colorChanged: typing.ClassVar[QtCore.pyqtSignal]
    def refreshColors(self) -> None: ...
    def colors(self) -> typing.Optional[typing.List[typing.Tuple[QtGui.QColor, str]]]: ...
    def setBaseColor(self, baseColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def baseColor(self) -> QtGui.QColor: ...
    def setContext(self, context: typing.Optional[str]) -> None: ...
    def context(self) -> str: ...
    def sizeHint(self) -> QtCore.QSize: ...
    def minimumSizeHint(self) -> QtCore.QSize: ...


class QgsColorSwatchGridAction(QtWidgets.QWidgetAction):

    def __init__(self, scheme: typing.Optional[_core.QgsColorScheme], menu: typing.Optional[QtWidgets.QMenu] = ..., context: typing.Optional[str] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    colorChanged: typing.ClassVar[QtCore.pyqtSignal]
    def refreshColors(self) -> None: ...
    def dismissOnColorSelection(self) -> bool: ...
    def setDismissOnColorSelection(self, dismiss: bool) -> None: ...
    def setContext(self, context: typing.Optional[str]) -> None: ...
    def context(self) -> str: ...
    def baseColor(self) -> QtGui.QColor: ...
    def setBaseColor(self, baseColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...


class QgsColorWidget(QtWidgets.QWidget):

    class ColorComponent(int):
        Multiple = ... # type: QgsColorWidget.ColorComponent
        Red = ... # type: QgsColorWidget.ColorComponent
        Green = ... # type: QgsColorWidget.ColorComponent
        Blue = ... # type: QgsColorWidget.ColorComponent
        Hue = ... # type: QgsColorWidget.ColorComponent
        Saturation = ... # type: QgsColorWidget.ColorComponent
        Value = ... # type: QgsColorWidget.ColorComponent
        Alpha = ... # type: QgsColorWidget.ColorComponent

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., component: 'QgsColorWidget.ColorComponent' = ...) -> None: ...

    def mouseReleaseEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def dropEvent(self, e: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def dragEnterEvent(self, e: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    @staticmethod
    def transparentBackground() -> QtGui.QPixmap: ...
    def alterColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], component: 'QgsColorWidget.ColorComponent', newValue: int) -> None: ...
    def hue(self) -> int: ...
    @typing.overload
    def componentRange(self) -> int: ...
    @typing.overload
    def componentRange(self, component: 'QgsColorWidget.ColorComponent') -> int: ...
    hovered: typing.ClassVar[QtCore.pyqtSignal]
    colorChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setComponentValue(self, value: int) -> None: ...
    def setComponent(self, component: 'QgsColorWidget.ColorComponent') -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], emitSignals: bool = ...) -> None: ...
    @staticmethod
    def createDragIcon(color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> QtGui.QPixmap: ...
    @typing.overload
    def componentValue(self) -> int: ...
    @typing.overload
    def componentValue(self, component: 'QgsColorWidget.ColorComponent') -> int: ...
    def component(self) -> 'QgsColorWidget.ColorComponent': ...
    def color(self) -> QtGui.QColor: ...


class QgsColorWidgetAction(QtWidgets.QWidgetAction):

    def __init__(self, colorWidget: typing.Optional[QgsColorWidget], menu: typing.Optional[QtWidgets.QMenu] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    colorChanged: typing.ClassVar[QtCore.pyqtSignal]
    def dismissOnColorSelection(self) -> bool: ...
    def setDismissOnColorSelection(self, dismiss: bool) -> None: ...
    def colorWidget(self) -> typing.Optional[QgsColorWidget]: ...


class QgsColorWheel(QgsColorWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def mouseReleaseEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], emitSignals: bool = ...) -> None: ...
    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def sizeHint(self) -> QtCore.QSize: ...


class QgsColorBox(QgsColorWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., component: QgsColorWidget.ColorComponent = ...) -> None: ...

    def mouseReleaseEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], emitSignals: bool = ...) -> None: ...
    def setComponent(self, component: QgsColorWidget.ColorComponent) -> None: ...
    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def sizeHint(self) -> QtCore.QSize: ...


class QgsColorRampWidget(QgsColorWidget):

    class Orientation(int):
        Horizontal = ... # type: QgsColorRampWidget.Orientation
        Vertical = ... # type: QgsColorRampWidget.Orientation

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., component: QgsColorWidget.ColorComponent = ..., orientation: 'QgsColorRampWidget.Orientation' = ...) -> None: ...

    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def mouseReleaseEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def wheelEvent(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def mouseMoveEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    valueChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setMarkerSize(self, markerSize: int) -> None: ...
    def showFrame(self) -> bool: ...
    def setShowFrame(self, showFrame: bool) -> None: ...
    def interiorMargin(self) -> int: ...
    def setInteriorMargin(self, margin: int) -> None: ...
    def orientation(self) -> 'QgsColorRampWidget.Orientation': ...
    def setOrientation(self, orientation: 'QgsColorRampWidget.Orientation') -> None: ...
    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def sizeHint(self) -> QtCore.QSize: ...


class QgsColorSliderWidget(QgsColorWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., component: QgsColorWidget.ColorComponent = ...) -> None: ...

    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], emitSignals: bool = ...) -> None: ...
    def setComponentValue(self, value: int) -> None: ...
    def setComponent(self, component: QgsColorWidget.ColorComponent) -> None: ...


class QgsColorTextWidget(QgsColorWidget):

    class ColorTextFormat(int):
        HexRgb = ... # type: QgsColorTextWidget.ColorTextFormat
        HexRgbA = ... # type: QgsColorTextWidget.ColorTextFormat
        Rgb = ... # type: QgsColorTextWidget.ColorTextFormat
        Rgba = ... # type: QgsColorTextWidget.ColorTextFormat

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def setAllowOpacity(self, allowOpacity: bool) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], emitSignals: bool = ...) -> None: ...


class QgsColorPreviewWidget(QgsColorWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def mouseMoveEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseReleaseEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def setColor2(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def color2(self) -> QtGui.QColor: ...
    def sizeHint(self) -> QtCore.QSize: ...
    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...


class QgsCompoundColorWidget(QgsPanelWidget):

    class Layout(int):
        LayoutDefault = ... # type: QgsCompoundColorWidget.Layout
        LayoutVertical = ... # type: QgsCompoundColorWidget.Layout

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor] = ..., layout: 'QgsCompoundColorWidget.Layout' = ...) -> None: ...

    def keyPressEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def mouseReleaseEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def hideEvent(self, e: typing.Optional[QtGui.QHideEvent]) -> None: ...
    def setPreviousColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    currentColorChanged: typing.ClassVar[QtCore.pyqtSignal]
    @staticmethod
    def removeUserPalette(scheme: typing.Optional[_core.QgsUserColorScheme], parent: typing.Optional[QtWidgets.QWidget]) -> bool: ...
    @staticmethod
    def createNewUserPalette(parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[_core.QgsUserColorScheme]: ...
    @staticmethod
    def importUserPaletteFromFile(parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[_core.QgsUserColorScheme]: ...
    def setDiscarded(self, discarded: bool) -> None: ...
    def setAllowOpacity(self, allowOpacity: bool) -> None: ...
    def color(self) -> QtGui.QColor: ...


class QgsConfigureShortcutsDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., manager: typing.Optional['QgsShortcutsManager'] = ...) -> None: ...

    def keyReleaseEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...


class QgsMapCanvas(QtWidgets.QGraphicsView, _core.QgsExpressionContextGenerator):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def updateCanvasItemPositions(self) -> None: ...
    def emitExtentsChanged(self) -> None: ...
    def showEvent(self, event: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def dropEvent(self, event: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def moveCanvasContents(self, reset: bool = ...) -> None: ...
    def viewportEvent(self, event: typing.Optional[QtCore.QEvent]) -> bool: ...
    def dragEnterEvent(self, e: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    def paintEvent(self, e: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def resizeEvent(self, e: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def wheelEvent(self, e: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def mouseReleaseEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseDoubleClickEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def keyReleaseEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def keyPressEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def event(self, e: typing.Optional[QtCore.QEvent]) -> bool: ...
    contextMenuAboutToShow: typing.ClassVar[QtCore.pyqtSignal]
    zRangeChanged: typing.ClassVar[QtCore.pyqtSignal]
    temporalRangeChanged: typing.ClassVar[QtCore.pyqtSignal]
    tapAndHoldGestureOccurred: typing.ClassVar[QtCore.pyqtSignal]
    panDistanceBearingChanged: typing.ClassVar[QtCore.pyqtSignal]
    renderErrorOccurred: typing.ClassVar[QtCore.pyqtSignal]
    messageEmitted: typing.ClassVar[QtCore.pyqtSignal]
    themeChanged: typing.ClassVar[QtCore.pyqtSignal]
    layerStyleOverridesChanged: typing.ClassVar[QtCore.pyqtSignal]
    currentLayerChanged: typing.ClassVar[QtCore.pyqtSignal]
    transformContextChanged: typing.ClassVar[QtCore.pyqtSignal]
    destinationCrsChanged: typing.ClassVar[QtCore.pyqtSignal]
    zoomNextStatusChanged: typing.ClassVar[QtCore.pyqtSignal]
    zoomLastStatusChanged: typing.ClassVar[QtCore.pyqtSignal]
    selectionChanged: typing.ClassVar[QtCore.pyqtSignal]
    mapToolSet: typing.ClassVar[QtCore.pyqtSignal]
    keyReleased: typing.ClassVar[QtCore.pyqtSignal]
    keyPressed: typing.ClassVar[QtCore.pyqtSignal]
    layersChanged: typing.ClassVar[QtCore.pyqtSignal]
    mapRefreshCanceled: typing.ClassVar[QtCore.pyqtSignal]
    renderStarting: typing.ClassVar[QtCore.pyqtSignal]
    mapCanvasRefreshed: typing.ClassVar[QtCore.pyqtSignal]
    renderComplete: typing.ClassVar[QtCore.pyqtSignal]
    canvasColorChanged: typing.ClassVar[QtCore.pyqtSignal]
    magnificationChanged: typing.ClassVar[QtCore.pyqtSignal]
    rotationChanged: typing.ClassVar[QtCore.pyqtSignal]
    extentsChanged: typing.ClassVar[QtCore.pyqtSignal]
    scaleLockChanged: typing.ClassVar[QtCore.pyqtSignal]
    scaleChanged: typing.ClassVar[QtCore.pyqtSignal]
    xyCoordinates: typing.ClassVar[QtCore.pyqtSignal]
    def setZRange(self, range: _core.QgsDoubleRange) -> None: ...
    def zRange(self) -> _core.QgsDoubleRange: ...
    def zoomResolutions(self) -> typing.List[float]: ...
    def zoomOutFactor(self) -> float: ...
    def zoomInFactor(self) -> float: ...
    def setZoomResolutions(self, resolutions: typing.Iterable[float]) -> None: ...
    @typing.overload
    def zoomToSelected(self, layer: typing.Optional[_core.QgsMapLayer] = ...) -> None: ...
    @typing.overload
    def zoomToSelected(self, layers: typing.Iterable[_core.QgsMapLayer]) -> None: ...
    def zoomOut(self) -> None: ...
    def zoomIn(self) -> None: ...
    def setScaleLocked(self, isLocked: bool) -> None: ...
    def setMagnificationFactor(self, factor: float, center: typing.Optional[_core.QgsPointXY] = ...) -> None: ...
    def writeProject(self, a0: QtXml.QDomDocument) -> None: ...
    def readProject(self, a0: QtXml.QDomDocument) -> None: ...
    def stopRendering(self) -> None: ...
    def setRenderFlag(self, flag: bool) -> None: ...
    def layerStateChange(self) -> None: ...
    def saveAsImage(self, fileName: typing.Optional[str], QPixmap: typing.Optional[QtGui.QPixmap] = ..., a2: typing.Optional[str] = ...) -> None: ...
    def selectionChangedSlot(self) -> None: ...
    def redrawAllLayers(self) -> None: ...
    def refreshAllLayers(self) -> None: ...
    def refresh(self) -> None: ...
    def setMapController(self, controller: typing.Optional['QgsAbstract2DMapController']) -> None: ...
    def allowInteraction(self, interaction: 'QgsMapCanvasInteractionBlocker.Interaction') -> bool: ...
    def removeInteractionBlocker(self, blocker: typing.Optional['QgsMapCanvasInteractionBlocker']) -> None: ...
    def installInteractionBlocker(self, blocker: typing.Optional['QgsMapCanvasInteractionBlocker']) -> None: ...
    def temporalRange(self) -> _core.QgsDateTimeRange: ...
    def setTemporalRange(self, range: _core.QgsDateTimeRange) -> None: ...
    def setPreviewJobsEnabled(self, enabled: bool) -> None: ...
    def previewJobsEnabled(self) -> bool: ...
    def labelingEngineSettings(self) -> _core.QgsLabelingEngineSettings: ...
    def setLabelingEngineSettings(self, settings: _core.QgsLabelingEngineSettings) -> None: ...
    def setAnnotationsVisible(self, visible: bool) -> None: ...
    def annotationsVisible(self) -> bool: ...
    def annotationItems(self) -> typing.List['QgsMapCanvasAnnotationItem']: ...
    def setSegmentationToleranceType(self, type: _core.QgsAbstractGeometry.SegmentationToleranceType) -> None: ...
    def setSegmentationTolerance(self, tolerance: float) -> None: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def defaultExpressionContextScope(self) -> typing.Optional[_core.QgsExpressionContextScope]: ...
    def expressionContextScope(self) -> _core.QgsExpressionContextScope: ...
    def setExpressionContextScope(self, scope: _core.QgsExpressionContextScope) -> None: ...
    def setSnappingUtils(self, utils: typing.Optional[_core.QgsSnappingUtils]) -> None: ...
    def snappingUtils(self) -> typing.Optional[_core.QgsSnappingUtils]: ...
    def previewMode(self) -> 'QgsPreviewEffect.PreviewMode': ...
    def setPreviewMode(self, mode: 'QgsPreviewEffect.PreviewMode') -> None: ...
    def previewModeEnabled(self) -> bool: ...
    def setPreviewModeEnabled(self, previewEnabled: bool) -> None: ...
    def mouseLastXY(self) -> QtCore.QPoint: ...
    def panAction(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def panActionEnd(self, releasePoint: QtCore.QPoint) -> None: ...
    def enableMapTileRendering(self, flag: bool) -> None: ...
    def antiAliasingEnabled(self) -> bool: ...
    def enableAntiAliasing(self, flag: bool) -> None: ...
    def scaleLocked(self) -> bool: ...
    def zoomToFeatureExtent(self, rect: _core.QgsRectangle) -> None: ...
    def zoomWithCenter(self, x: int, y: int, zoomIn: bool) -> None: ...
    def zoomByFactor(self, scaleFactor: float, center: typing.Optional[_core.QgsPointXY] = ..., ignoreScaleLock: bool = ...) -> None: ...
    def zoomScale(self, scale: float, ignoreScaleLock: bool = ...) -> None: ...
    def setWheelFactor(self, factor: float) -> None: ...
    def currentLayer(self) -> typing.Optional[_core.QgsMapLayer]: ...
    def isDrawing(self) -> bool: ...
    def getCoordinateTransform(self) -> typing.Optional[_core.QgsMapToPixel]: ...
    def theme(self) -> str: ...
    def setTheme(self, theme: typing.Optional[str]) -> None: ...
    def setLayerStyleOverrides(self, overrides: typing.Dict[typing.Optional[str], typing.Optional[str]]) -> None: ...
    def layerStyleOverrides(self) -> typing.Dict[str, str]: ...
    def mapUnits(self) -> _core.Qgis.DistanceUnit: ...
    def renderFlag(self) -> bool: ...
    def isFrozen(self) -> bool: ...
    def freeze(self, frozen: bool = ...) -> None: ...
    def layers(self, expandGroupLayers: bool = ...) -> typing.List[_core.QgsMapLayer]: ...
    def layerCount(self) -> int: ...
    @typing.overload
    def layer(self, index: int) -> typing.Optional[_core.QgsMapLayer]: ...
    @typing.overload
    def layer(self, id: typing.Optional[str]) -> typing.Optional[_core.QgsMapLayer]: ...
    def updateScale(self) -> None: ...
    def selectionColor(self) -> QtGui.QColor: ...
    def setSelectionColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def canvasColor(self) -> QtGui.QColor: ...
    def setCanvasColor(self, _newVal: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def project(self) -> typing.Optional[_core.QgsProject]: ...
    def setProject(self, project: typing.Optional[_core.QgsProject]) -> None: ...
    def mapTool(self) -> typing.Optional['QgsMapTool']: ...
    def unsetMapTool(self, mapTool: typing.Optional['QgsMapTool']) -> None: ...
    def setMapTool(self, mapTool: typing.Optional['QgsMapTool'], clean: bool = ...) -> None: ...
    def flashGeometries(self, geometries: typing.Iterable[_core.QgsGeometry], crs: _core.QgsCoordinateReferenceSystem = ..., startColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor] = ..., endColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor] = ..., flashes: int = ..., duration: int = ...) -> None: ...
    def flashFeatureIds(self, layer: typing.Optional[_core.QgsVectorLayer], ids: typing.Any, startColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor] = ..., endColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor] = ..., flashes: int = ..., duration: int = ...) -> None: ...
    @typing.overload
    def panToSelected(self, layer: typing.Optional[_core.QgsMapLayer] = ...) -> None: ...
    @typing.overload
    def panToSelected(self, layers: typing.Iterable[_core.QgsMapLayer]) -> None: ...
    def panToFeatureIds(self, layer: typing.Optional[_core.QgsVectorLayer], ids: typing.Any, alwaysRecenter: bool = ...) -> None: ...
    def zoomToFeatureIds(self, layer: typing.Optional[_core.QgsVectorLayer], ids: typing.Any) -> None: ...
    def clearExtentHistory(self) -> None: ...
    def zoomToNextExtent(self) -> None: ...
    def zoomToPreviousExtent(self) -> None: ...
    def zoomToProjectExtent(self) -> None: ...
    def zoomToFullExtent(self) -> None: ...
    def center(self) -> _core.QgsPointXY: ...
    def setCenter(self, center: _core.QgsPointXY) -> None: ...
    def setRotation(self, degrees: float) -> None: ...
    def rotation(self) -> float: ...
    def setReferencedExtent(self, extent: _core.QgsReferencedRectangle) -> bool: ...
    def setExtent(self, r: _core.QgsRectangle, magnified: bool = ...) -> None: ...
    def projectExtent(self) -> _core.QgsRectangle: ...
    def fullExtent(self) -> _core.QgsRectangle: ...
    def extent(self) -> _core.QgsRectangle: ...
    def mapUnitsPerPixel(self) -> float: ...
    def scale(self) -> float: ...
    def mapUpdateInterval(self) -> int: ...
    def setMapUpdateInterval(self, timeMilliseconds: int) -> None: ...
    def isParallelRenderingEnabled(self) -> bool: ...
    def setParallelRenderingEnabled(self, enabled: bool) -> None: ...
    def waitWhileRendering(self) -> None: ...
    def cache(self) -> typing.Optional[_core.QgsMapRendererCache]: ...
    def clearCache(self) -> None: ...
    def isCachingEnabled(self) -> bool: ...
    def setCachingEnabled(self, enabled: bool) -> None: ...
    def renderedItemResults(self, allowOutdatedResults: bool = ...) -> typing.Optional[_core.QgsRenderedItemResults]: ...
    def labelingResults(self, allowOutdatedResults: bool = ...) -> typing.Optional[_core.QgsLabelingResults]: ...
    def setMapSettingsFlags(self, flags: typing.Union[_core.Qgis.MapSettingsFlags, _core.Qgis.MapSettingsFlag]) -> None: ...
    def setDestinationCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def temporalController(self) -> typing.Optional[_core.QgsTemporalController]: ...
    def setTemporalController(self, controller: typing.Optional[_core.QgsTemporalController]) -> None: ...
    def mapSettings(self) -> _core.QgsMapSettings: ...
    def setCurrentLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    def setLayers(self, layers: typing.Iterable[_core.QgsMapLayer]) -> None: ...
    def magnificationFactor(self) -> float: ...


class QgsCoordinateBoundsPreviewMapWidget(QgsMapCanvas):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setPreviewRect(self, rect: _core.QgsRectangle) -> None: ...
    def canvasRect(self) -> _core.QgsRectangle: ...
    def setCanvasRect(self, rect: _core.QgsRectangle) -> None: ...


class QgsCoordinateOperationWidget(QtWidgets.QWidget):

    class OperationDetails(PyQt5.sip.wrapper):

        allowFallback = ... # type: bool
        destinationTransformId = ... # type: int
        isAvailable = ... # type: bool
        proj = ... # type: typing.Optional[str]
        sourceTransformId = ... # type: int

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsCoordinateOperationWidget.OperationDetails') -> None: ...

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    operationDoubleClicked: typing.ClassVar[QtCore.pyqtSignal]
    operationChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setShowFallbackOption(self, visible: bool) -> None: ...
    def setSelectedOperationUsingContext(self, context: _core.QgsCoordinateTransformContext) -> None: ...
    def setSelectedOperation(self, operation: 'QgsCoordinateOperationWidget.OperationDetails') -> None: ...
    def selectedOperation(self) -> 'QgsCoordinateOperationWidget.OperationDetails': ...
    def defaultOperation(self) -> 'QgsCoordinateOperationWidget.OperationDetails': ...
    def availableOperations(self) -> typing.List['QgsCoordinateOperationWidget.OperationDetails']: ...
    def hasSelection(self) -> bool: ...
    def makeDefaultSelected(self) -> bool: ...
    def setShowMakeDefault(self, show: bool) -> None: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def setDestinationCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def setSourceCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def destinationCrs(self) -> _core.QgsCoordinateReferenceSystem: ...
    def sourceCrs(self) -> _core.QgsCoordinateReferenceSystem: ...


class QgsCoordinateReferenceSystemModel(QtCore.QAbstractItemModel):

    class Roles(int):
        RoleNodeType = ... # type: QgsCoordinateReferenceSystemModel.Roles
        RoleName = ... # type: QgsCoordinateReferenceSystemModel.Roles
        RoleAuthId = ... # type: QgsCoordinateReferenceSystemModel.Roles
        RoleDeprecated = ... # type: QgsCoordinateReferenceSystemModel.Roles
        RoleType = ... # type: QgsCoordinateReferenceSystemModel.Roles
        RoleGroupId = ... # type: QgsCoordinateReferenceSystemModel.Roles
        RoleWkt = ... # type: QgsCoordinateReferenceSystemModel.Roles
        RoleProj = ... # type: QgsCoordinateReferenceSystemModel.Roles

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def authIdToIndex(self, authId: typing.Optional[str]) -> QtCore.QModelIndex: ...
    def addCustomCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> QtCore.QModelIndex: ...
    def parent(self, index: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def index(self, row: int, column: int, parent: QtCore.QModelIndex = ...) -> QtCore.QModelIndex: ...
    def columnCount(self, a0: QtCore.QModelIndex = ...) -> int: ...
    def rowCount(self, parent: QtCore.QModelIndex = ...) -> int: ...
    def headerData(self, section: int, orientation: QtCore.Qt.Orientation, role: int) -> typing.Any: ...
    def data(self, index: QtCore.QModelIndex, role: int) -> typing.Any: ...
    def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlags: ...


class QgsCoordinateReferenceSystemProxyModel(QtCore.QSortFilterProxyModel):

    class Filter(int):
        FilterHorizontal = ... # type: QgsCoordinateReferenceSystemProxyModel.Filter
        FilterVertical = ... # type: QgsCoordinateReferenceSystemProxyModel.Filter
        FilterCompound = ... # type: QgsCoordinateReferenceSystemProxyModel.Filter

    class Filters(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsCoordinateReferenceSystemProxyModel.Filters', 'QgsCoordinateReferenceSystemProxyModel.Filter']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsCoordinateReferenceSystemProxyModel.Filters', 'QgsCoordinateReferenceSystemProxyModel.Filter']) -> 'QgsCoordinateReferenceSystemProxyModel.Filters': ...
        def __xor__(self, f: typing.Union['QgsCoordinateReferenceSystemProxyModel.Filters', 'QgsCoordinateReferenceSystemProxyModel.Filter']) -> 'QgsCoordinateReferenceSystemProxyModel.Filters': ...
        def __ior__(self, f: typing.Union['QgsCoordinateReferenceSystemProxyModel.Filters', 'QgsCoordinateReferenceSystemProxyModel.Filter']) -> 'QgsCoordinateReferenceSystemProxyModel.Filters': ...
        def __or__(self, f: typing.Union['QgsCoordinateReferenceSystemProxyModel.Filters', 'QgsCoordinateReferenceSystemProxyModel.Filter']) -> 'QgsCoordinateReferenceSystemProxyModel.Filters': ...
        def __iand__(self, f: typing.Union['QgsCoordinateReferenceSystemProxyModel.Filters', 'QgsCoordinateReferenceSystemProxyModel.Filter']) -> 'QgsCoordinateReferenceSystemProxyModel.Filters': ...
        def __and__(self, f: typing.Union['QgsCoordinateReferenceSystemProxyModel.Filters', 'QgsCoordinateReferenceSystemProxyModel.Filter']) -> 'QgsCoordinateReferenceSystemProxyModel.Filters': ...
        def __invert__(self) -> 'QgsCoordinateReferenceSystemProxyModel.Filters': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def lessThan(self, left: QtCore.QModelIndex, right: QtCore.QModelIndex) -> bool: ...
    def filterAcceptsRow(self, sourceRow: int, sourceParent: QtCore.QModelIndex) -> bool: ...
    def filterDeprecated(self) -> bool: ...
    def setFilterDeprecated(self, filter: bool) -> None: ...
    def filterAuthIds(self) -> typing.Set[str]: ...
    def setFilterAuthIds(self, filter: typing.Iterable[typing.Optional[str]]) -> None: ...
    def filterString(self) -> str: ...
    def setFilterString(self, filter: typing.Optional[str]) -> None: ...
    def filters(self) -> 'QgsCoordinateReferenceSystemProxyModel.Filters': ...
    def setFilters(self, filters: typing.Union['QgsCoordinateReferenceSystemProxyModel.Filters', 'QgsCoordinateReferenceSystemProxyModel.Filter']) -> None: ...
    def coordinateReferenceSystemModel(self) -> typing.Optional[QgsCoordinateReferenceSystemModel]: ...


class QgsCredentialDialog(QtWidgets.QDialog, _core.QgsCredentials):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def requestMasterPassword(self, password: typing.Optional[str], stored: bool = ...) -> typing.Tuple[bool, str]: ...
    def request(self, realm: typing.Optional[str], username: typing.Optional[str], password: typing.Optional[str], message: typing.Optional[str] = ...) -> typing.Tuple[bool, str, str]: ...


class QgsCrsDefinitionWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    crsChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setDefinitionString(self, definition: typing.Optional[str]) -> None: ...
    def definitionString(self) -> str: ...
    def setFormat(self, format: _core.Qgis.CrsDefinitionFormat) -> None: ...
    def format(self) -> _core.Qgis.CrsDefinitionFormat: ...
    @typing.overload
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    @typing.overload
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem, nativeFormat: _core.Qgis.CrsDefinitionFormat) -> None: ...
    def crs(self) -> _core.QgsCoordinateReferenceSystem: ...


class QgsCurveEditorWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., curve: _core.QgsCurveTransform = ...) -> None: ...

    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    changed: typing.ClassVar[QtCore.pyqtSignal]
    def setMaxHistogramValueRange(self, maxValueRange: float) -> None: ...
    def setMinHistogramValueRange(self, minValueRange: float) -> None: ...
    def maxHistogramValueRange(self) -> float: ...
    def minHistogramValueRange(self) -> float: ...
    def setHistogramSource(self, layer: typing.Optional[_core.QgsVectorLayer], expression: typing.Optional[str]) -> None: ...
    def setCurve(self, curve: _core.QgsCurveTransform) -> None: ...
    def curve(self) -> _core.QgsCurveTransform: ...


class QgsCustomDropHandler(QtCore.QObject):

    def __init__(self) -> None: ...

    def handleCustomUriCanvasDrop(self, uri: _core.QgsMimeDataUtils.Uri, canvas: typing.Optional[QgsMapCanvas]) -> bool: ...
    def canHandleCustomUriCanvasDrop(self, uri: _core.QgsMimeDataUtils.Uri, canvas: typing.Optional[QgsMapCanvas]) -> bool: ...
    def handleFileDrop(self, file: typing.Optional[str]) -> bool: ...
    def handleMimeDataV2(self, data: typing.Optional[QtCore.QMimeData]) -> bool: ...
    def handleMimeData(self, data: typing.Optional[QtCore.QMimeData]) -> None: ...
    def canHandleMimeData(self, data: typing.Optional[QtCore.QMimeData]) -> bool: ...
    def handleCustomUriDrop(self, uri: _core.QgsMimeDataUtils.Uri) -> None: ...
    def customUriProviderKey(self) -> str: ...


class QgsCustomProjectOpenHandler(QtCore.QObject):

    def __init__(self) -> None: ...

    def icon(self) -> QtGui.QIcon: ...
    def createDocumentThumbnailAfterOpen(self) -> bool: ...
    def filters(self) -> typing.List[str]: ...
    def handleProjectOpen(self, file: typing.Optional[str]) -> bool: ...


class QgsDatabaseSchemaComboBox(QtWidgets.QWidget):

    @typing.overload
    def __init__(self, provider: typing.Optional[str], connection: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    @typing.overload
    def __init__(self, connection: typing.Optional[_core.QgsAbstractDatabaseProviderConnection], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    schemaChanged: typing.ClassVar[QtCore.pyqtSignal]
    def refreshSchemas(self) -> None: ...
    def setConnectionName(self, connection: typing.Optional[str], provider: typing.Optional[str] = ...) -> None: ...
    def setSchema(self, schema: typing.Optional[str]) -> None: ...
    def comboBox(self) -> typing.Optional[QtWidgets.QComboBox]: ...
    def currentSchema(self) -> str: ...
    def allowEmptySchema(self) -> bool: ...
    def setAllowEmptySchema(self, allowEmpty: bool) -> None: ...


class QgsDatabaseTableComboBox(QtWidgets.QWidget):

    @typing.overload
    def __init__(self, provider: typing.Optional[str], connection: typing.Optional[str], schema: typing.Optional[str] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    @typing.overload
    def __init__(self, connection: typing.Optional[_core.QgsAbstractDatabaseProviderConnection], schema: typing.Optional[str] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    tableChanged: typing.ClassVar[QtCore.pyqtSignal]
    def refreshTables(self) -> None: ...
    def setSchema(self, schema: typing.Optional[str]) -> None: ...
    def setConnectionName(self, connection: typing.Optional[str], provider: typing.Optional[str] = ...) -> None: ...
    def setTable(self, table: typing.Optional[str], schema: typing.Optional[str] = ...) -> None: ...
    def comboBox(self) -> typing.Optional[QtWidgets.QComboBox]: ...
    def currentSchema(self) -> str: ...
    def currentTable(self) -> str: ...
    def allowEmptyTable(self) -> bool: ...
    def setAllowEmptyTable(self, allowEmpty: bool) -> None: ...


class QgsDataItemGuiContext(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsDataItemGuiContext') -> None: ...

    def setView(self, view: typing.Optional[QgsBrowserTreeView]) -> None: ...
    def view(self) -> typing.Optional[QgsBrowserTreeView]: ...
    def setMessageBar(self, bar: typing.Optional['QgsMessageBar']) -> None: ...
    def messageBar(self) -> typing.Optional['QgsMessageBar']: ...


class QgsDataItemGuiProvider(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsDataItemGuiProvider') -> None: ...

    @staticmethod
    def notify(title: typing.Optional[str], message: typing.Optional[str], context: QgsDataItemGuiContext, level: _core.Qgis.MessageLevel = ..., duration: int = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    def createParamWidget(self, item: typing.Optional[_core.QgsDataItem], context: QgsDataItemGuiContext) -> typing.Optional[QtWidgets.QWidget]: ...
    def handleDrop(self, item: typing.Optional[_core.QgsDataItem], context: QgsDataItemGuiContext, data: typing.Optional[QtCore.QMimeData], action: QtCore.Qt.DropAction) -> bool: ...
    def acceptDrop(self, item: typing.Optional[_core.QgsDataItem], context: QgsDataItemGuiContext) -> bool: ...
    def handleDoubleClick(self, item: typing.Optional[_core.QgsDataItem], context: QgsDataItemGuiContext) -> bool: ...
    def deleteLayer(self, item: typing.Optional[_core.QgsLayerItem], context: QgsDataItemGuiContext) -> bool: ...
    def rename(self, item: typing.Optional[_core.QgsDataItem], name: typing.Optional[str], context: QgsDataItemGuiContext) -> bool: ...
    def precedenceWhenPopulatingMenus(self) -> int: ...
    def populateContextMenu(self, item: typing.Optional[_core.QgsDataItem], menu: typing.Optional[QtWidgets.QMenu], selectedItems: typing.Iterable[_core.QgsDataItem], context: QgsDataItemGuiContext) -> None: ...
    def name(self) -> str: ...


class QgsDataItemGuiProviderRegistry(PyQt5.sip.wrapper):

    def __init__(self) -> None: ...

    def initializeFromProviderGuiRegistry(self, providerGuiRegistry: typing.Optional['QgsProviderGuiRegistry']) -> None: ...
    def removeProvider(self, provider: typing.Optional[QgsDataItemGuiProvider]) -> None: ...
    def addProvider(self, provider: typing.Optional[QgsDataItemGuiProvider]) -> None: ...
    def providers(self) -> typing.List[QgsDataItemGuiProvider]: ...


class QgsDataSourceSelectWidget(QgsPanelWidget):

    def __init__(self, browserModel: typing.Optional[QgsBrowserGuiModel] = ..., setFilterByLayerType: bool = ..., layerType: _core.Qgis.LayerType = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    itemTriggered: typing.ClassVar[QtCore.pyqtSignal]
    selectionChanged: typing.ClassVar[QtCore.pyqtSignal]
    validationChanged: typing.ClassVar[QtCore.pyqtSignal]
    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def setFilter(self) -> None: ...
    def setCaseSensitive(self, caseSensitive: bool) -> None: ...
    def setFilterSyntax(self, a0: typing.Optional[QtWidgets.QAction]) -> None: ...
    def showFilterWidget(self, visible: bool) -> None: ...
    def uri(self) -> _core.QgsMimeDataUtils.Uri: ...
    def expandPath(self, path: typing.Optional[str]) -> None: ...
    def setDescription(self, description: typing.Optional[str]) -> None: ...
    def setLayerTypeFilter(self, layerType: _core.Qgis.LayerType) -> None: ...


class QgsDataSourceSelectDialog(QtWidgets.QDialog):

    def __init__(self, browserModel: typing.Optional[QgsBrowserGuiModel] = ..., setFilterByLayerType: bool = ..., layerType: _core.Qgis.LayerType = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setFilter(self) -> None: ...
    def setCaseSensitive(self, caseSensitive: bool) -> None: ...
    def setFilterSyntax(self, a0: typing.Optional[QtWidgets.QAction]) -> None: ...
    def showFilterWidget(self, visible: bool) -> None: ...
    def uri(self) -> _core.QgsMimeDataUtils.Uri: ...
    def expandPath(self, path: typing.Optional[str]) -> None: ...
    def setDescription(self, description: typing.Optional[str]) -> None: ...
    def setLayerTypeFilter(self, layerType: _core.Qgis.LayerType) -> None: ...


class QgsDbRelationWidget(QtWidgets.QWidget):

    def __init__(self, connection: typing.Optional[_core.QgsAbstractDatabaseProviderConnection], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    validityChanged: typing.ClassVar[QtCore.pyqtSignal]
    def isValid(self) -> bool: ...
    def relationship(self) -> _core.QgsWeakRelation: ...
    def setRelationship(self, relationship: _core.QgsWeakRelation) -> None: ...


class QgsDbRelationDialog(QtWidgets.QDialog):

    def __init__(self, connection: typing.Optional[_core.QgsAbstractDatabaseProviderConnection], parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def accept(self) -> None: ...
    def relationship(self) -> _core.QgsWeakRelation: ...
    def setRelationship(self, relationship: _core.QgsWeakRelation) -> None: ...


class QgsNewDatabaseTableNameWidget(QgsPanelWidget):

    def __init__(self, browserModel: typing.Optional[QgsBrowserGuiModel] = ..., providersFilter: typing.Iterable[typing.Optional[str]] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    accepted: typing.ClassVar[QtCore.pyqtSignal]
    uriChanged: typing.ClassVar[QtCore.pyqtSignal]
    providerKeyChanged: typing.ClassVar[QtCore.pyqtSignal]
    tableNameChanged: typing.ClassVar[QtCore.pyqtSignal]
    schemaNameChanged: typing.ClassVar[QtCore.pyqtSignal]
    validationChanged: typing.ClassVar[QtCore.pyqtSignal]
    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def validationError(self) -> str: ...
    def isValid(self) -> bool: ...
    def dataProviderKey(self) -> str: ...
    def table(self) -> str: ...
    def uri(self) -> str: ...
    def schema(self) -> str: ...
    def setAcceptButtonVisible(self, visible: bool) -> None: ...


class QgsNewDatabaseTableNameDialog(QtWidgets.QDialog):

    def __init__(self, browserModel: typing.Optional[QgsBrowserGuiModel] = ..., providersFilter: typing.Iterable[typing.Optional[str]] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def validationError(self) -> str: ...
    def isValid(self) -> bool: ...
    def dataProviderKey(self) -> str: ...
    def table(self) -> str: ...
    def uri(self) -> str: ...
    def schema(self) -> str: ...


class QgsDetailedItemData(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsDetailedItemData') -> None: ...

    def isRenderedAsWidget(self) -> bool: ...
    def isEnabled(self) -> bool: ...
    def isChecked(self) -> bool: ...
    def isCheckable(self) -> bool: ...
    def icon(self) -> QtGui.QPixmap: ...
    def category(self) -> str: ...
    def detail(self) -> str: ...
    def title(self) -> str: ...
    def setRenderAsWidget(self, flag: bool) -> None: ...
    def setEnabled(self, flag: bool) -> None: ...
    def setChecked(self, flag: bool) -> None: ...
    def setCheckable(self, flag: bool) -> None: ...
    def setIcon(self, icon: QtGui.QPixmap) -> None: ...
    def setCategory(self, category: typing.Optional[str]) -> None: ...
    def setDetail(self, detail: typing.Optional[str]) -> None: ...
    def setTitle(self, title: typing.Optional[str]) -> None: ...


class QgsDetailedItemDelegate(QtWidgets.QAbstractItemDelegate):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def horizontalSpacing(self) -> int: ...
    def setHorizontalSpacing(self, value: int) -> None: ...
    def verticalSpacing(self) -> int: ...
    def setVerticalSpacing(self, value: int) -> None: ...
    def sizeHint(self, option: QtWidgets.QStyleOptionViewItem, index: QtCore.QModelIndex) -> QtCore.QSize: ...
    def paint(self, painter: typing.Optional[QtGui.QPainter], option: QtWidgets.QStyleOptionViewItem, index: QtCore.QModelIndex) -> None: ...


class QgsDetailedItemWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setChecked(self, flag: bool) -> None: ...
    def setData(self, data: QgsDetailedItemData) -> None: ...


class QgsDial(QtWidgets.QDial):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    valueChanged: typing.ClassVar[QtCore.pyqtSignal]
    def variantValue(self) -> typing.Any: ...
    def setValue(self, value: typing.Any) -> None: ...
    def setSingleStep(self, step: typing.Any) -> None: ...
    def setMaximum(self, max: typing.Any) -> None: ...
    def setMinimum(self, min: typing.Any) -> None: ...


class QgsDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., buttons: typing.Union[QtWidgets.QDialogButtonBox.StandardButtons, QtWidgets.QDialogButtonBox.StandardButton] = ..., orientation: QtCore.Qt.Orientation = ...) -> None: ...

    def buttonBox(self) -> typing.Optional[QtWidgets.QDialogButtonBox]: ...
    def layout(self) -> typing.Optional[QtWidgets.QVBoxLayout]: ...


class QgsDirectionalLightWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    directionChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setEnableAzimuth(self, enable: bool) -> None: ...
    def altitude(self) -> float: ...
    def setAltitude(self, altitude: float) -> None: ...
    def azimuth(self) -> float: ...
    def setAzimuth(self, azimuth: float) -> None: ...


class QgsDoubleValidator(QtGui.QRegularExpressionValidator):

    @typing.overload
    def __init__(self, parent: typing.Optional[QtCore.QObject]) -> None: ...
    @typing.overload
    def __init__(self, expression: QtCore.QRegularExpression, bottom: float, top: float, parent: typing.Optional[QtCore.QObject]) -> None: ...
    @typing.overload
    def __init__(self, bottom: float, top: float, parent: typing.Optional[QtCore.QObject]) -> None: ...
    @typing.overload
    def __init__(self, bottom: float, top: float, decimal: int, parent: typing.Optional[QtCore.QObject]) -> None: ...
    @typing.overload
    def __init__(self, decimal: int, parent: typing.Optional[QtCore.QObject]) -> None: ...

    def top(self) -> float: ...
    def bottom(self) -> float: ...
    def setRange(self, bottom: float, top: float) -> None: ...
    def setTop(self, top: float) -> None: ...
    def setBottom(self, bottom: float) -> None: ...
    @staticmethod
    def toDouble(input: typing.Optional[str]) -> float: ...
    def validate(self, input: typing.Optional[str]) -> QtGui.QValidator.State: ...
    def setMaxDecimals(self, maxDecimals: int) -> None: ...


class QgsEncodingFileDialog(QtWidgets.QFileDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., caption: typing.Optional[str] = ..., directory: typing.Optional[str] = ..., filter: typing.Optional[str] = ..., encoding: typing.Optional[str] = ...) -> None: ...

    def pbnCancelAll_clicked(self) -> None: ...
    def saveUsedEncoding(self) -> None: ...
    def cancelAll(self) -> bool: ...
    def addCancelAll(self) -> None: ...
    def encoding(self) -> str: ...


class QgsEncodingSelectionDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., caption: typing.Optional[str] = ..., encoding: typing.Optional[str] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def setEncoding(self, encoding: typing.Optional[str]) -> None: ...
    def encoding(self) -> str: ...


class QgsErrorDialog(QtWidgets.QDialog):

    def __init__(self, error: _core.QgsError, title: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    @staticmethod
    def show(error: _core.QgsError, title: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...


class QgsExpressionBuilderDialog(QtWidgets.QDialog):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], startText: typing.Optional[str] = ..., parent: typing.Optional[QtWidgets.QWidget] = ..., key: typing.Optional[str] = ..., context: _core.QgsExpressionContext = ...) -> None: ...

    def reject(self) -> None: ...
    def accept(self) -> None: ...
    def done(self, r: int) -> None: ...
    allowEvalErrorsChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setAllowEvalErrors(self, allowEvalErrors: bool) -> None: ...
    def allowEvalErrors(self) -> bool: ...
    def setGeomCalculator(self, da: _core.QgsDistanceArea) -> None: ...
    def setExpressionContext(self, context: _core.QgsExpressionContext) -> None: ...
    def expressionContext(self) -> _core.QgsExpressionContext: ...
    def setExpectedOutputFormat(self, expected: typing.Optional[str]) -> None: ...
    def expectedOutputFormat(self) -> str: ...
    def expressionText(self) -> str: ...
    def setExpressionText(self, text: typing.Optional[str]) -> None: ...
    def expressionBuilder(self) -> typing.Optional['QgsExpressionBuilderWidget']: ...


class QgsExpressionStoreDialog(QtWidgets.QDialog):

    def __init__(self, label: typing.Optional[str], expression: typing.Optional[str], helpText: typing.Optional[str], existingLabels: typing.Iterable[typing.Optional[str]] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def helpText(self) -> str: ...
    def label(self) -> str: ...
    def expression(self) -> str: ...


class QgsExpressionBuilderWidget(QtWidgets.QWidget):

    class Flag(int):
        LoadNothing = ... # type: QgsExpressionBuilderWidget.Flag
        LoadRecent = ... # type: QgsExpressionBuilderWidget.Flag
        LoadUserExpressions = ... # type: QgsExpressionBuilderWidget.Flag
        LoadAll = ... # type: QgsExpressionBuilderWidget.Flag

    class Flags(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsExpressionBuilderWidget.Flags', 'QgsExpressionBuilderWidget.Flag']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsExpressionBuilderWidget.Flags', 'QgsExpressionBuilderWidget.Flag']) -> 'QgsExpressionBuilderWidget.Flags': ...
        def __xor__(self, f: typing.Union['QgsExpressionBuilderWidget.Flags', 'QgsExpressionBuilderWidget.Flag']) -> 'QgsExpressionBuilderWidget.Flags': ...
        def __ior__(self, f: typing.Union['QgsExpressionBuilderWidget.Flags', 'QgsExpressionBuilderWidget.Flag']) -> 'QgsExpressionBuilderWidget.Flags': ...
        def __or__(self, f: typing.Union['QgsExpressionBuilderWidget.Flags', 'QgsExpressionBuilderWidget.Flag']) -> 'QgsExpressionBuilderWidget.Flags': ...
        def __iand__(self, f: typing.Union['QgsExpressionBuilderWidget.Flags', 'QgsExpressionBuilderWidget.Flag']) -> 'QgsExpressionBuilderWidget.Flags': ...
        def __and__(self, f: typing.Union['QgsExpressionBuilderWidget.Flags', 'QgsExpressionBuilderWidget.Flag']) -> 'QgsExpressionBuilderWidget.Flags': ...
        def __invert__(self) -> 'QgsExpressionBuilderWidget.Flags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...
    parserErrorChanged: typing.ClassVar[QtCore.pyqtSignal]
    evalErrorChanged: typing.ClassVar[QtCore.pyqtSignal]
    expressionParsed: typing.ClassVar[QtCore.pyqtSignal]
    def findExpressions(self, label: typing.Optional[str]) -> typing.List['QgsExpressionItem']: ...
    def editSelectedUserExpression(self) -> None: ...
    def removeSelectedUserExpression(self) -> None: ...
    def storeCurrentUserExpression(self) -> None: ...
    def setAutoSave(self, enabled: bool) -> None: ...
    def autosave(self) -> None: ...
    def loadAllUsedValues(self) -> None: ...
    def loadSampleUsedValues(self) -> None: ...
    def loadAllValues(self) -> None: ...
    def loadSampleValues(self) -> None: ...
    def setExpressionPreviewVisible(self, isVisible: bool) -> None: ...
    def parserError(self) -> bool: ...
    def evalError(self) -> bool: ...
    def setProject(self, project: typing.Optional[_core.QgsProject]) -> None: ...
    def project(self) -> typing.Optional[_core.QgsProject]: ...
    def model(self) -> typing.Optional[QtGui.QStandardItemModel]: ...
    def updateFunctionFileList(self, path: typing.Optional[str]) -> None: ...
    def loadFunctionCode(self, code: typing.Optional[str]) -> None: ...
    def loadCodeFromFile(self, path: typing.Optional[str]) -> None: ...
    def saveFunctionFile(self, fileName: typing.Optional[str]) -> None: ...
    def newFunctionFile(self, fileName: typing.Optional[str] = ...) -> None: ...
    def removeFromUserExpressions(self, label: typing.Optional[str]) -> None: ...
    def saveToUserExpressions(self, label: typing.Optional[str], expression: typing.Optional[str], helpText: typing.Optional[str]) -> None: ...
    def loadUserExpressions(self) -> None: ...
    def expressionTree(self) -> typing.Optional['QgsExpressionTreeView']: ...
    def loadRecent(self, collection: typing.Optional[str] = ...) -> None: ...
    def saveToRecent(self, collection: typing.Optional[str] = ...) -> None: ...
    def isExpressionValid(self) -> bool: ...
    def setExpressionContext(self, context: _core.QgsExpressionContext) -> None: ...
    def expressionContext(self) -> _core.QgsExpressionContext: ...
    def setExpectedOutputFormat(self, expected: typing.Optional[str]) -> None: ...
    def expectedOutputFormat(self) -> str: ...
    def setExpressionText(self, expression: typing.Optional[str]) -> None: ...
    def expressionText(self) -> str: ...
    def setGeomCalculator(self, da: _core.QgsDistanceArea) -> None: ...
    def loadFieldsAndValues(self, fieldValues: typing.Dict[typing.Optional[str], typing.Iterable[typing.Optional[str]]]) -> None: ...
    @typing.overload
    def loadFieldNames(self) -> None: ...
    @typing.overload
    def loadFieldNames(self, fields: _core.QgsFields) -> None: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def setLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def initWithFields(self, fields: _core.QgsFields, context: _core.QgsExpressionContext = ..., recentCollection: typing.Optional[str] = ..., flags: typing.Union['QgsExpressionBuilderWidget.Flags', 'QgsExpressionBuilderWidget.Flag'] = ...) -> None: ...
    def initWithLayer(self, layer: typing.Optional[_core.QgsVectorLayer], context: _core.QgsExpressionContext = ..., recentCollection: typing.Optional[str] = ..., flags: typing.Union['QgsExpressionBuilderWidget.Flags', 'QgsExpressionBuilderWidget.Flag'] = ...) -> None: ...
    def init(self, context: _core.QgsExpressionContext = ..., recentCollection: typing.Optional[str] = ..., flags: typing.Union['QgsExpressionBuilderWidget.Flags', 'QgsExpressionBuilderWidget.Flag'] = ...) -> None: ...


class QgsExpressionHighlighter(QtGui.QSyntaxHighlighter):

    def __init__(self, parent: typing.Optional[QtGui.QTextDocument] = ...) -> None: ...

    def highlightBlock(self, text: typing.Optional[str]) -> None: ...
    def addFields(self, fieldList: typing.Iterable[typing.Optional[str]]) -> None: ...


class QgsExpressionLineEdit(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def changeEvent(self, event: typing.Optional[QtCore.QEvent]) -> None: ...
    def setExpression(self, expression: typing.Optional[str]) -> None: ...
    expressionChanged: typing.ClassVar[QtCore.pyqtSignal]
    def registerExpressionContextGenerator(self, generator: typing.Optional[_core.QgsExpressionContextGenerator]) -> None: ...
    def isValidExpression(self) -> typing.Tuple[bool, typing.Optional[str]]: ...
    def expression(self) -> str: ...
    def setLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def setGeomCalculator(self, distanceArea: _core.QgsDistanceArea) -> None: ...
    def setExpectedOutputFormat(self, expected: typing.Optional[str]) -> None: ...
    def expectedOutputFormat(self) -> str: ...
    def setMultiLine(self, multiLine: bool) -> None: ...
    def expressionDialogTitle(self) -> str: ...
    def setExpressionDialogTitle(self, title: typing.Optional[str]) -> None: ...


class QgsExpressionPreviewWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setCurrentFeature(self, feature: _core.QgsFeature) -> None: ...
    toolTipChanged: typing.ClassVar[QtCore.pyqtSignal]
    parserErrorChanged: typing.ClassVar[QtCore.pyqtSignal]
    evalErrorChanged: typing.ClassVar[QtCore.pyqtSignal]
    expressionParsed: typing.ClassVar[QtCore.pyqtSignal]
    def parserErrors(self) -> typing.List[_core.QgsExpression.ParserError]: ...
    def rootNode(self) -> typing.Optional[_core.QgsExpressionNode]: ...
    def parserError(self) -> bool: ...
    def evalError(self) -> bool: ...
    def setGeomCalculator(self, da: _core.QgsDistanceArea) -> None: ...
    def setExpressionContext(self, context: _core.QgsExpressionContext) -> None: ...
    def expressionContext(self) -> _core.QgsExpressionContext: ...
    def setExpressionText(self, expression: typing.Optional[str]) -> None: ...
    def setLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...


class QgsExpressionSelectionDialog(QtWidgets.QDialog):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], startText: typing.Optional[str] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def done(self, r: int) -> None: ...
    def closeEvent(self, closeEvent: typing.Optional[QtGui.QCloseEvent]) -> None: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def setMessageBar(self, messageBar: typing.Optional['QgsMessageBar']) -> None: ...
    def setGeomCalculator(self, da: _core.QgsDistanceArea) -> None: ...
    def expressionText(self) -> str: ...
    def setExpressionText(self, text: typing.Optional[str]) -> None: ...
    def expressionBuilder(self) -> typing.Optional[QgsExpressionBuilderWidget]: ...


class QgsExpressionItem(QtGui.QStandardItem):

    class ItemType(int):
        Header = ... # type: QgsExpressionItem.ItemType
        Field = ... # type: QgsExpressionItem.ItemType
        ExpressionNode = ... # type: QgsExpressionItem.ItemType

    CUSTOM_SORT_ROLE = ... # type: int
    ITEM_NAME_ROLE = ... # type: int
    ITEM_TYPE_ROLE = ... # type: int
    LAYER_ID_ROLE = ... # type: int
    SEARCH_TAGS_ROLE = ... # type: int

    @typing.overload
    def __init__(self, label: typing.Optional[str], expressionText: typing.Optional[str], helpText: typing.Optional[str], itemType: 'QgsExpressionItem.ItemType' = ...) -> None: ...
    @typing.overload
    def __init__(self, label: typing.Optional[str], expressionText: typing.Optional[str], itemType: 'QgsExpressionItem.ItemType' = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsExpressionItem') -> None: ...

    def getItemType(self) -> 'QgsExpressionItem.ItemType': ...
    def setHelpText(self, helpText: typing.Optional[str]) -> None: ...
    def getHelpText(self) -> str: ...
    def getExpressionText(self) -> str: ...


class QgsExpressionItemSearchProxy(QtCore.QSortFilterProxyModel):

    def __init__(self) -> None: ...

    def lessThan(self, left: QtCore.QModelIndex, right: QtCore.QModelIndex) -> bool: ...
    def setFilterString(self, string: typing.Optional[str]) -> None: ...
    def filterAcceptsRow(self, source_row: int, source_parent: QtCore.QModelIndex) -> bool: ...


class QgsExpressionTreeView(QtWidgets.QTreeView):

    class MenuProvider(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsExpressionTreeView.MenuProvider') -> None: ...

        def createContextMenu(self, item: typing.Optional[QgsExpressionItem]) -> typing.Optional[QtWidgets.QMenu]: ...

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setSearchText(self, text: typing.Optional[str]) -> None: ...
    currentExpressionItemChanged: typing.ClassVar[QtCore.pyqtSignal]
    expressionItemDoubleClicked: typing.ClassVar[QtCore.pyqtSignal]
    def loadExpressionsFromJson(self, expressionsDocument: QtCore.QJsonDocument) -> None: ...
    def exportUserExpressions(self) -> QtCore.QJsonDocument: ...
    def findExpressions(self, label: typing.Optional[str]) -> typing.List[QgsExpressionItem]: ...
    def loadUserExpressions(self) -> None: ...
    def removeFromUserExpressions(self, label: typing.Optional[str]) -> None: ...
    def saveToUserExpressions(self, label: typing.Optional[str], expression: typing.Optional[str], helpText: typing.Optional[str]) -> None: ...
    def saveToRecent(self, expressionText: typing.Optional[str], collection: typing.Optional[str] = ...) -> None: ...
    def loadRecent(self, collection: typing.Optional[str] = ...) -> None: ...
    def currentItem(self) -> typing.Optional[QgsExpressionItem]: ...
    def refresh(self) -> None: ...
    def setMenuProvider(self, provider: typing.Optional['QgsExpressionTreeView.MenuProvider']) -> None: ...
    def setProject(self, project: typing.Optional[_core.QgsProject]) -> None: ...
    def project(self) -> typing.Optional[_core.QgsProject]: ...
    def expressionContext(self) -> _core.QgsExpressionContext: ...
    def setExpressionContext(self, context: _core.QgsExpressionContext) -> None: ...
    def loadFieldNames(self, fields: _core.QgsFields) -> None: ...
    def setLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...


class QgsExtentGroupBox(QgsCollapsibleGroupBox):

    class ExtentState(int):
        OriginalExtent = ... # type: QgsExtentGroupBox.ExtentState
        CurrentExtent = ... # type: QgsExtentGroupBox.ExtentState
        UserExtent = ... # type: QgsExtentGroupBox.ExtentState
        ProjectLayerExtent = ... # type: QgsExtentGroupBox.ExtentState
        DrawOnCanvas = ... # type: QgsExtentGroupBox.ExtentState

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    extentChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setRatio(self, ratio: QtCore.QSize) -> None: ...
    def setOutputExtentFromDrawOnCanvas(self) -> None: ...
    def setOutputExtentFromLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    def setOutputExtentFromUser(self, extent: _core.QgsRectangle, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def setOutputExtentFromCurrent(self) -> None: ...
    def setOutputExtentFromOriginal(self) -> None: ...
    def ratio(self) -> QtCore.QSize: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas], drawOnCanvasOption: bool = ...) -> None: ...
    def titleBase(self) -> str: ...
    def setTitleBase(self, title: typing.Optional[str]) -> None: ...
    def extentState(self) -> 'QgsExtentGroupBox.ExtentState': ...
    def outputCrs(self) -> _core.QgsCoordinateReferenceSystem: ...
    def outputExtent(self) -> _core.QgsRectangle: ...
    def setOutputCrs(self, outputCrs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def currentCrs(self) -> _core.QgsCoordinateReferenceSystem: ...
    def currentExtent(self) -> _core.QgsRectangle: ...
    def setCurrentExtent(self, currentExtent: _core.QgsRectangle, currentCrs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def originalCrs(self) -> _core.QgsCoordinateReferenceSystem: ...
    def originalExtent(self) -> _core.QgsRectangle: ...
    def setOriginalExtent(self, originalExtent: _core.QgsRectangle, originalCrs: _core.QgsCoordinateReferenceSystem) -> None: ...


class QgsExtentWidget(QtWidgets.QWidget):

    class WidgetStyle(int):
        CondensedStyle = ... # type: QgsExtentWidget.WidgetStyle
        ExpandedStyle = ... # type: QgsExtentWidget.WidgetStyle

    class ExtentState(int):
        OriginalExtent = ... # type: QgsExtentWidget.ExtentState
        CurrentExtent = ... # type: QgsExtentWidget.ExtentState
        UserExtent = ... # type: QgsExtentWidget.ExtentState
        ProjectLayerExtent = ... # type: QgsExtentWidget.ExtentState
        DrawOnCanvas = ... # type: QgsExtentWidget.ExtentState

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., style: 'QgsExtentWidget.WidgetStyle' = ...) -> None: ...

    def dropEvent(self, event: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def dragLeaveEvent(self, event: typing.Optional[QtGui.QDragLeaveEvent]) -> None: ...
    def dragEnterEvent(self, event: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    toggleDialogVisibility: typing.ClassVar[QtCore.pyqtSignal]
    validationChanged: typing.ClassVar[QtCore.pyqtSignal]
    extentChanged: typing.ClassVar[QtCore.pyqtSignal]
    def clear(self) -> None: ...
    def setRatio(self, ratio: QtCore.QSize) -> None: ...
    def setOutputExtentFromDrawOnCanvas(self) -> None: ...
    def setOutputExtentFromLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    def setOutputExtentFromUser(self, extent: _core.QgsRectangle, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def setOutputExtentFromCurrent(self) -> None: ...
    def setOutputExtentFromOriginal(self) -> None: ...
    def setNullValueAllowed(self, allowed: bool, notSetText: typing.Optional[str] = ...) -> None: ...
    def isValid(self) -> bool: ...
    def extentLayerName(self) -> str: ...
    def ratio(self) -> QtCore.QSize: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas], drawOnCanvasOption: bool = ...) -> None: ...
    def extentState(self) -> 'QgsExtentWidget.ExtentState': ...
    def outputCrs(self) -> _core.QgsCoordinateReferenceSystem: ...
    def outputExtent(self) -> _core.QgsRectangle: ...
    def setOutputCrs(self, outputCrs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def currentCrs(self) -> _core.QgsCoordinateReferenceSystem: ...
    def currentExtent(self) -> _core.QgsRectangle: ...
    def setCurrentExtent(self, currentExtent: _core.QgsRectangle, currentCrs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def originalCrs(self) -> _core.QgsCoordinateReferenceSystem: ...
    def originalExtent(self) -> _core.QgsRectangle: ...
    def setOriginalExtent(self, originalExtent: _core.QgsRectangle, originalCrs: _core.QgsCoordinateReferenceSystem) -> None: ...


class QgsExternalResourceWidget(QtWidgets.QWidget):

    class DocumentViewerContent(int):
        NoContent = ... # type: QgsExternalResourceWidget.DocumentViewerContent
        Image = ... # type: QgsExternalResourceWidget.DocumentViewerContent
        Web = ... # type: QgsExternalResourceWidget.DocumentViewerContent
        Audio = ... # type: QgsExternalResourceWidget.DocumentViewerContent
        Video = ... # type: QgsExternalResourceWidget.DocumentViewerContent

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    valueChanged: typing.ClassVar[QtCore.pyqtSignal]
    def messageBar(self) -> typing.Optional['QgsMessageBar']: ...
    def setMessageBar(self, messageBar: typing.Optional['QgsMessageBar']) -> None: ...
    def storageAuthConfigId(self) -> str: ...
    def setStorageAuthConfigId(self, authCfg: typing.Optional[str]) -> None: ...
    def storageType(self) -> str: ...
    def setStorageType(self, storageType: typing.Optional[str]) -> None: ...
    def setDefaultRoot(self, defaultRoot: typing.Optional[str]) -> None: ...
    def defaultRoot(self) -> str: ...
    def setRelativeStorage(self, relativeStorage: 'QgsFileWidget.RelativeStorage') -> None: ...
    def relativeStorage(self) -> 'QgsFileWidget.RelativeStorage': ...
    def setReadOnly(self, readOnly: bool) -> None: ...
    def setDocumentViewerWidth(self, width: int) -> None: ...
    def documentViewerWidth(self) -> int: ...
    def setDocumentViewerHeight(self, height: int) -> None: ...
    def documentViewerHeight(self) -> int: ...
    def setDocumentViewerContent(self, content: 'QgsExternalResourceWidget.DocumentViewerContent') -> None: ...
    def documentViewerContent(self) -> 'QgsExternalResourceWidget.DocumentViewerContent': ...
    def setFileWidgetVisible(self, visible: bool) -> None: ...
    def fileWidgetVisible(self) -> bool: ...
    def fileWidget(self) -> typing.Optional['QgsExternalStorageFileWidget']: ...
    def setDocumentPath(self, documentPath: typing.Any) -> None: ...
    def documentPath(self, type: QtCore.QVariant.Type = ...) -> typing.Any: ...


class QgsFeaturePickerWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    showBrowserButtonsChanged: typing.ClassVar[QtCore.pyqtSignal]
    fetchLimitChanged: typing.ClassVar[QtCore.pyqtSignal]
    fetchGeometryChanged: typing.ClassVar[QtCore.pyqtSignal]
    allowNullChanged: typing.ClassVar[QtCore.pyqtSignal]
    featureChanged: typing.ClassVar[QtCore.pyqtSignal]
    filterExpressionChanged: typing.ClassVar[QtCore.pyqtSignal]
    displayExpressionChanged: typing.ClassVar[QtCore.pyqtSignal]
    layerChanged: typing.ClassVar[QtCore.pyqtSignal]
    modelUpdated: typing.ClassVar[QtCore.pyqtSignal]
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def focusOutEvent(self, event: typing.Optional[QtGui.QFocusEvent]) -> None: ...
    def currentModelIndex(self) -> QtCore.QModelIndex: ...
    def setShowBrowserButtons(self, showBrowserButtons: bool) -> None: ...
    def showBrowserButtons(self) -> bool: ...
    def setFetchLimit(self, fetchLimit: int) -> None: ...
    def fetchLimit(self) -> int: ...
    def setFetchGeometry(self, fetchGeometry: bool) -> None: ...
    def fetchGeometry(self) -> bool: ...
    def setAllowNull(self, allowNull: bool) -> None: ...
    def allowNull(self) -> bool: ...
    def setFilterExpression(self, filterExpression: typing.Optional[str]) -> None: ...
    def nullIndex(self) -> int: ...
    def filterExpression(self) -> str: ...
    def setDisplayExpression(self, displayExpression: typing.Optional[str]) -> None: ...
    def displayExpression(self) -> str: ...
    def feature(self) -> _core.QgsFeature: ...
    def setFeature(self, featureId: int) -> None: ...
    def setLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...


class QgsFeatureListComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    currentFeatureChanged: typing.ClassVar[QtCore.pyqtSignal]
    allowNullChanged: typing.ClassVar[QtCore.pyqtSignal]
    identifierFieldChanged: typing.ClassVar[QtCore.pyqtSignal]
    identifierValueChanged: typing.ClassVar[QtCore.pyqtSignal]
    filterExpressionChanged: typing.ClassVar[QtCore.pyqtSignal]
    displayExpressionChanged: typing.ClassVar[QtCore.pyqtSignal]
    sourceLayerChanged: typing.ClassVar[QtCore.pyqtSignal]
    modelUpdated: typing.ClassVar[QtCore.pyqtSignal]
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def focusOutEvent(self, event: typing.Optional[QtGui.QFocusEvent]) -> None: ...
    def currentModelIndex(self) -> QtCore.QModelIndex: ...
    def setIdentifierFields(self, identifierFields: typing.Iterable[typing.Optional[str]]) -> None: ...
    def setIdentifierField(self, identifierField: typing.Optional[str]) -> None: ...
    def identifierFields(self) -> typing.List[str]: ...
    def identifierField(self) -> str: ...
    def setFetchLimit(self, fetchLimit: int) -> None: ...
    def fetchLimit(self) -> int: ...
    def setAllowNull(self, allowNull: bool) -> None: ...
    def allowNull(self) -> bool: ...
    def currentFeatureRequest(self) -> _core.QgsFeatureRequest: ...
    def setIdentifierValuesToNull(self) -> None: ...
    def setIdentifierValues(self, identifierValues: typing.Iterable[typing.Any]) -> None: ...
    def setIdentifierValue(self, identifierValue: typing.Any) -> None: ...
    def identifierValues(self) -> typing.List[typing.Any]: ...
    def identifierValue(self) -> typing.Any: ...
    def setFilterExpression(self, filterExpression: typing.Optional[str]) -> None: ...
    def nullIndex(self) -> int: ...
    def filterExpression(self) -> str: ...
    def setDisplayExpression(self, displayExpression: typing.Optional[str]) -> None: ...
    def displayExpression(self) -> str: ...
    def setCurrentFeature(self, feature: _core.QgsFeature) -> None: ...
    def setSourceLayer(self, sourceLayer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def sourceLayer(self) -> typing.Optional[_core.QgsVectorLayer]: ...


class QgsFeatureSelectionDlg(QtWidgets.QDialog):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], context: QgsAttributeEditorContext, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def showEvent(self, event: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def keyPressEvent(self, evt: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def setSelectedFeatures(self, ids: typing.Any) -> None: ...
    def selectedFeatures(self) -> typing.Any: ...


class QgsFieldComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def indexChanged(self, i: int) -> None: ...
    def setField(self, fieldName: typing.Optional[str]) -> None: ...
    def setLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    fieldChanged: typing.ClassVar[QtCore.pyqtSignal]
    def fields(self) -> _core.QgsFields: ...
    def setFields(self, fields: _core.QgsFields) -> None: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def currentField(self) -> str: ...
    def allowEmptyFieldName(self) -> bool: ...
    def setAllowEmptyFieldName(self, allowEmpty: bool) -> None: ...
    def filters(self) -> _core.QgsFieldProxyModel.Filters: ...
    def setFilters(self, filters: typing.Union[_core.QgsFieldProxyModel.Filters, _core.QgsFieldProxyModel.Filter]) -> None: ...


class QgsFieldDomainWidget(QtWidgets.QWidget):

    def __init__(self, type: _core.Qgis.FieldDomainType, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    validityChanged: typing.ClassVar[QtCore.pyqtSignal]
    def isValid(self) -> bool: ...
    def createFieldDomain(self) -> typing.Optional[_core.QgsFieldDomain]: ...
    def setFieldDomain(self, domain: typing.Optional[_core.QgsFieldDomain]) -> None: ...


class QgsFieldDomainDialog(QtWidgets.QDialog):

    def __init__(self, type: _core.Qgis.FieldDomainType, parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def accept(self) -> None: ...
    def createFieldDomain(self) -> typing.Optional[_core.QgsFieldDomain]: ...
    def setFieldDomain(self, domain: typing.Optional[_core.QgsFieldDomain]) -> None: ...


class QgsFieldExpressionWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def eventFilter(self, watched: typing.Optional[QtCore.QObject], event: typing.Optional[QtCore.QEvent]) -> bool: ...
    def changeEvent(self, event: typing.Optional[QtCore.QEvent]) -> None: ...
    def isExpressionValid(self, expressionStr: typing.Optional[str]) -> bool: ...
    def updateLineEditStyle(self, expression: typing.Optional[str] = ...) -> None: ...
    def currentFieldChanged(self) -> None: ...
    def expressionEditingFinished(self) -> None: ...
    def expressionEdited(self, expression: typing.Optional[str]) -> None: ...
    def editExpression(self) -> None: ...
    def setExpression(self, expression: typing.Optional[str]) -> None: ...
    def setFields(self, fields: _core.QgsFields) -> None: ...
    def setField(self, fieldName: typing.Optional[str]) -> None: ...
    def setRow(self, row: int) -> None: ...
    def setLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    allowEvalErrorsChanged: typing.ClassVar[QtCore.pyqtSignal]
    fieldChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setAllowEvalErrors(self, allowEvalErrors: bool) -> None: ...
    def allowEvalErrors(self) -> bool: ...
    def registerExpressionContextGenerator(self, generator: typing.Optional[_core.QgsExpressionContextGenerator]) -> None: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def expression(self) -> str: ...
    def asExpression(self) -> str: ...
    def currentText(self) -> str: ...
    def isExpression(self) -> bool: ...
    def isValidExpression(self, expressionError: typing.Optional[typing.Optional[str]] = ...) -> bool: ...
    def currentField(self) -> typing.Tuple[str, typing.Optional[bool], typing.Optional[bool]]: ...
    def setGeomCalculator(self, da: _core.QgsDistanceArea) -> None: ...
    def filters(self) -> _core.QgsFieldProxyModel.Filters: ...
    def setLeftHandButtonStyle(self, isLeft: bool) -> None: ...
    def allowEmptyFieldName(self) -> bool: ...
    def setAllowEmptyFieldName(self, allowEmpty: bool) -> None: ...
    def setFilters(self, filters: typing.Union[_core.QgsFieldProxyModel.Filters, _core.QgsFieldProxyModel.Filter]) -> None: ...
    def expressionDialogTitle(self) -> str: ...
    def appendScope(self, scope: typing.Optional[_core.QgsExpressionContextScope]) -> None: ...
    def setExpressionDialogTitle(self, title: typing.Optional[str]) -> None: ...


class QgsFieldMappingWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., sourceFields: _core.QgsFields = ..., destinationFields: _core.QgsFields = ..., expressions: typing.Dict[typing.Optional[str], typing.Optional[str]] = ...) -> None: ...

    def invertSelection(self) -> None: ...
    def moveSelectedFieldsDown(self) -> bool: ...
    def moveSelectedFieldsUp(self) -> bool: ...
    def removeSelectedFields(self) -> bool: ...
    def appendField(self, field: _core.QgsField, expression: typing.Optional[str] = ...) -> None: ...
    changed: typing.ClassVar[QtCore.pyqtSignal]
    def registerExpressionContextGenerator(self, generator: typing.Optional[_core.QgsExpressionContextGenerator]) -> None: ...
    def scrollTo(self, index: QtCore.QModelIndex) -> None: ...
    def setDestinationFields(self, destinationFields: _core.QgsFields, expressions: typing.Dict[typing.Optional[str], typing.Optional[str]] = ...) -> None: ...
    def sourceLayer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def setSourceLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def setSourceFields(self, sourceFields: _core.QgsFields) -> None: ...
    def selectionModel(self) -> typing.Optional[QtCore.QItemSelectionModel]: ...
    def setFieldPropertyMap(self, map: typing.Dict[typing.Optional[str], _core.QgsProperty]) -> None: ...
    def fieldPropertyMap(self) -> typing.Dict[str, _core.QgsProperty]: ...
    def mapping(self) -> typing.List['QgsFieldMappingModel.Field']: ...
    def model(self) -> typing.Optional['QgsFieldMappingModel']: ...
    def destinationEditable(self) -> bool: ...
    def setDestinationEditable(self, editable: bool) -> None: ...


class QgsFieldMappingModel(QtCore.QAbstractTableModel):

    class ColumnDataIndex(int):
        SourceExpression = ... # type: QgsFieldMappingModel.ColumnDataIndex
        DestinationName = ... # type: QgsFieldMappingModel.ColumnDataIndex
        DestinationType = ... # type: QgsFieldMappingModel.ColumnDataIndex
        DestinationLength = ... # type: QgsFieldMappingModel.ColumnDataIndex
        DestinationPrecision = ... # type: QgsFieldMappingModel.ColumnDataIndex
        DestinationConstraints = ... # type: QgsFieldMappingModel.ColumnDataIndex
        DestinationAlias = ... # type: QgsFieldMappingModel.ColumnDataIndex
        DestinationComment = ... # type: QgsFieldMappingModel.ColumnDataIndex

    class Field(PyQt5.sip.wrapper):

        expression = ... # type: typing.Optional[str]
        field = ... # type: _core.QgsField
        originalName = ... # type: typing.Optional[str]

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsFieldMappingModel.Field') -> None: ...

    def __init__(self, sourceFields: _core.QgsFields = ..., destinationFields: _core.QgsFields = ..., expressions: typing.Dict[typing.Optional[str], typing.Optional[str]] = ..., parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def setData(self, index: QtCore.QModelIndex, value: typing.Any, role: int) -> bool: ...
    def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlags: ...
    def headerData(self, section: int, orientation: QtCore.Qt.Orientation, role: int) -> typing.Any: ...
    def data(self, index: QtCore.QModelIndex, role: int) -> typing.Any: ...
    def columnCount(self, parent: QtCore.QModelIndex = ...) -> int: ...
    def rowCount(self, parent: QtCore.QModelIndex = ...) -> int: ...
    def setDestinationFields(self, destinationFields: _core.QgsFields, expressions: typing.Dict[typing.Optional[str], typing.Optional[str]] = ...) -> None: ...
    def setBaseExpressionContextGenerator(self, generator: typing.Optional[_core.QgsExpressionContextGenerator]) -> None: ...
    def contextGenerator(self) -> typing.Optional[_core.QgsExpressionContextGenerator]: ...
    def setSourceFields(self, sourceFields: _core.QgsFields) -> None: ...
    def moveDown(self, index: QtCore.QModelIndex) -> bool: ...
    def moveUp(self, index: QtCore.QModelIndex) -> bool: ...
    def removeField(self, index: QtCore.QModelIndex) -> bool: ...
    def appendField(self, field: _core.QgsField, expression: typing.Optional[str] = ...) -> None: ...
    def setFieldPropertyMap(self, map: typing.Dict[typing.Optional[str], _core.QgsProperty]) -> None: ...
    def fieldPropertyMap(self) -> typing.Dict[str, _core.QgsProperty]: ...
    def mapping(self) -> typing.List['QgsFieldMappingModel.Field']: ...
    def sourceFields(self) -> _core.QgsFields: ...
    @staticmethod
    def supportedDataTypes() -> typing.List[_core.QgsVectorDataProvider.NativeType]: ...
    @staticmethod
    def dataTypes() -> typing.Dict[QtCore.QVariant.Type, str]: ...
    def setDestinationEditable(self, editable: bool) -> None: ...
    def destinationEditable(self) -> bool: ...


class QgsFieldValidator(QtGui.QValidator):

    def __init__(self, parent: typing.Optional[QtCore.QObject], field: _core.QgsField, defaultValue: typing.Optional[str], dateFormat: typing.Optional[str] = ...) -> None: ...

    def dateFormat(self) -> str: ...
    def fixup(self, s: typing.Optional[typing.Any]) -> None: ...
    def validate(self, s: typing.Optional[typing.Any], i: int) -> typing.Tuple[QtGui.QValidator.State, str, int]: ...


class QgsFilterLineEdit(QtWidgets.QLineEdit):

    class ClearMode(int):
        ClearToNull = ... # type: QgsFilterLineEdit.ClearMode
        ClearToDefault = ... # type: QgsFilterLineEdit.ClearMode

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., nullValue: typing.Optional[str] = ...) -> None: ...

    def mouseReleaseEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def focusInEvent(self, e: typing.Optional[QtGui.QFocusEvent]) -> None: ...
    selectOnFocusChanged: typing.ClassVar[QtCore.pyqtSignal]
    showSpinnerChanged: typing.ClassVar[QtCore.pyqtSignal]
    valueChanged: typing.ClassVar[QtCore.pyqtSignal]
    cleared: typing.ClassVar[QtCore.pyqtSignal]
    def restoreState(self) -> None: ...
    def storeState(self) -> None: ...
    def clearValue(self) -> None: ...
    def hasStateStored(self) -> bool: ...
    def event(self, event: typing.Optional[QtCore.QEvent]) -> bool: ...
    def setSelectOnFocus(self, selectOnFocus: bool) -> None: ...
    def selectOnFocus(self) -> bool: ...
    def setShowSpinner(self, showSpinner: bool) -> None: ...
    def showSpinner(self) -> bool: ...
    def isNull(self) -> bool: ...
    def value(self) -> str: ...
    def setValue(self, value: typing.Optional[str]) -> None: ...
    def defaultValue(self) -> str: ...
    def setDefaultValue(self, defaultValue: typing.Optional[str]) -> None: ...
    def showSearchIcon(self) -> bool: ...
    def setShowSearchIcon(self, visible: bool) -> None: ...
    def nullValue(self) -> str: ...
    def setNullValue(self, nullValue: typing.Optional[str]) -> None: ...
    def setClearMode(self, mode: 'QgsFilterLineEdit.ClearMode') -> None: ...
    def clearMode(self) -> 'QgsFilterLineEdit.ClearMode': ...
    def setShowClearButton(self, visible: bool) -> None: ...
    def showClearButton(self) -> bool: ...


class QgsFieldValuesLineEdit(QgsFilterLineEdit):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    attributeIndexChanged: typing.ClassVar[QtCore.pyqtSignal]
    layerChanged: typing.ClassVar[QtCore.pyqtSignal]
    def attributeIndex(self) -> int: ...
    def setAttributeIndex(self, index: int) -> None: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def setLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...


class QgsAbstractFileContentSourceLineEdit(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    sourceChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setSource(self, source: typing.Optional[str]) -> None: ...
    def setPropertyOverrideToolButtonVisible(self, visible: bool) -> None: ...
    def propertyOverrideToolButton(self) -> typing.Optional['QgsPropertyOverrideButton']: ...
    def setLastPathSettingsKey(self, key: typing.Optional[str]) -> None: ...
    def source(self) -> str: ...
    def messageBar(self) -> typing.Optional['QgsMessageBar']: ...
    def setMessageBar(self, bar: typing.Optional['QgsMessageBar']) -> None: ...


class QgsPictureSourceLineEditBase(QgsAbstractFileContentSourceLineEdit):

    class Format(int):
        Svg = ... # type: QgsPictureSourceLineEditBase.Format
        Image = ... # type: QgsPictureSourceLineEditBase.Format
        AnimatedImage = ... # type: QgsPictureSourceLineEditBase.Format

    @typing.overload
    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    @typing.overload
    def __init__(self, format: 'QgsPictureSourceLineEditBase.Format', parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setMode(self, format: 'QgsPictureSourceLineEditBase.Format') -> None: ...


class QgsSvgSourceLineEdit(QgsPictureSourceLineEditBase):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsImageSourceLineEdit(QgsPictureSourceLineEditBase):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsAnimatedImageSourceLineEdit(QgsPictureSourceLineEditBase):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsFileDownloaderDialog(QtWidgets.QProgressDialog):

    def __init__(self, url: QtCore.QUrl, outputFileName: typing.Optional[str], authcfg: typing.Optional[str] = ...) -> None: ...

    downloadProgress: typing.ClassVar[QtCore.pyqtSignal]
    downloadError: typing.ClassVar[QtCore.pyqtSignal]
    downloadCanceled: typing.ClassVar[QtCore.pyqtSignal]
    downloadExited: typing.ClassVar[QtCore.pyqtSignal]
    downloadCompleted: typing.ClassVar[QtCore.pyqtSignal]


class QgsFileWidget(QtWidgets.QWidget):

    class RelativeStorage(int):
        Absolute = ... # type: QgsFileWidget.RelativeStorage
        RelativeProject = ... # type: QgsFileWidget.RelativeStorage
        RelativeDefaultPath = ... # type: QgsFileWidget.RelativeStorage

    class StorageMode(int):
        GetFile = ... # type: QgsFileWidget.StorageMode
        GetDirectory = ... # type: QgsFileWidget.StorageMode
        GetMultipleFiles = ... # type: QgsFileWidget.StorageMode
        SaveFile = ... # type: QgsFileWidget.StorageMode

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def minimumSizeHint(self) -> QtCore.QSize: ...
    def relativePath(self, filePath: typing.Optional[str], removeRelative: bool) -> str: ...
    def toUrl(self, path: typing.Optional[str]) -> str: ...
    def setFilePaths(self, filePaths: typing.Iterable[typing.Optional[str]]) -> None: ...
    @staticmethod
    def isMultiFiles(path: typing.Optional[str]) -> bool: ...
    def setSelectedFileNames(self, fileNames: typing.Iterable[typing.Optional[str]]) -> None: ...
    def updateLayout(self) -> None: ...
    fileChanged: typing.ClassVar[QtCore.pyqtSignal]
    def lineEdit(self) -> typing.Optional[QgsFilterLineEdit]: ...
    def setRelativeStorage(self, relativeStorage: 'QgsFileWidget.RelativeStorage') -> None: ...
    def relativeStorage(self) -> 'QgsFileWidget.RelativeStorage': ...
    def setStorageMode(self, storageMode: 'QgsFileWidget.StorageMode') -> None: ...
    def storageMode(self) -> 'QgsFileWidget.StorageMode': ...
    def setDefaultRoot(self, defaultRoot: typing.Optional[str]) -> None: ...
    def defaultRoot(self) -> str: ...
    def setFullUrl(self, fullUrl: bool) -> None: ...
    def fullUrl(self) -> bool: ...
    def setUseLink(self, useLink: bool) -> None: ...
    def useLink(self) -> bool: ...
    def setFileWidgetButtonVisible(self, visible: bool) -> None: ...
    def fileWidgetButtonVisible(self) -> bool: ...
    def confirmOverwrite(self) -> bool: ...
    def setConfirmOverwrite(self, confirmOverwrite: bool) -> None: ...
    def selectedFilter(self) -> str: ...
    def setSelectedFilter(self, selectedFilter: typing.Optional[str]) -> None: ...
    def setOptions(self, options: typing.Union[QtWidgets.QFileDialog.Options, QtWidgets.QFileDialog.Option]) -> None: ...
    def options(self) -> QtWidgets.QFileDialog.Options: ...
    def setFilter(self, filter: typing.Optional[str]) -> None: ...
    def filter(self) -> str: ...
    def setDialogTitle(self, title: typing.Optional[str]) -> None: ...
    def dialogTitle(self) -> str: ...
    def setReadOnly(self, readOnly: bool) -> None: ...
    def setFilePath(self, path: typing.Optional[str]) -> None: ...
    @staticmethod
    def splitFilePaths(path: typing.Optional[str]) -> typing.List[str]: ...
    def filePath(self) -> str: ...


class QgsExternalStorageFileWidget(QgsFileWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def dropEvent(self, event: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def dragEnterEvent(self, event: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    def addFileWidgetScope(self) -> None: ...
    def setSelectedFileNames(self, fileNames: typing.Iterable[typing.Optional[str]]) -> None: ...
    def updateLayout(self) -> None: ...
    def setReadOnly(self, readOnly: bool) -> None: ...
    @staticmethod
    def createFileWidgetScope() -> typing.Optional[_core.QgsExpressionContextScope]: ...
    def messageBar(self) -> typing.Optional['QgsMessageBar']: ...
    def setMessageBar(self, messageBar: typing.Optional['QgsMessageBar']) -> None: ...
    def expressionContext(self) -> _core.QgsExpressionContext: ...
    def setExpressionContext(self, context: _core.QgsExpressionContext) -> None: ...
    def storageUrlExpression(self) -> typing.Optional[_core.QgsExpression]: ...
    def storageUrlExpressionString(self) -> str: ...
    def setStorageUrlExpression(self, urlExpression: typing.Optional[str]) -> None: ...
    def storageAuthConfigId(self) -> str: ...
    def setStorageAuthConfigId(self, authCfg: typing.Optional[str]) -> None: ...
    def externalStorage(self) -> typing.Optional[_core.QgsExternalStorage]: ...
    def storageType(self) -> str: ...
    def setStorageType(self, storageType: typing.Optional[str]) -> None: ...


class QgsFindFilesByPatternWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    findComplete: typing.ClassVar[QtCore.pyqtSignal]
    def files(self) -> typing.List[str]: ...


class QgsFindFilesByPatternDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def files(self) -> typing.List[str]: ...


class QgsFloatingWidget(QtWidgets.QWidget):

    class AnchorPoint(int):
        TopLeft = ... # type: QgsFloatingWidget.AnchorPoint
        TopMiddle = ... # type: QgsFloatingWidget.AnchorPoint
        TopRight = ... # type: QgsFloatingWidget.AnchorPoint
        MiddleLeft = ... # type: QgsFloatingWidget.AnchorPoint
        Middle = ... # type: QgsFloatingWidget.AnchorPoint
        MiddleRight = ... # type: QgsFloatingWidget.AnchorPoint
        BottomLeft = ... # type: QgsFloatingWidget.AnchorPoint
        BottomMiddle = ... # type: QgsFloatingWidget.AnchorPoint
        BottomRight = ... # type: QgsFloatingWidget.AnchorPoint

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def resizeEvent(self, e: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def paintEvent(self, e: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...
    anchorWidgetPointChanged: typing.ClassVar[QtCore.pyqtSignal]
    anchorPointChanged: typing.ClassVar[QtCore.pyqtSignal]
    anchorWidgetChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setAnchorWidgetPoint(self, point: 'QgsFloatingWidget.AnchorPoint') -> None: ...
    def anchorWidgetPoint(self) -> 'QgsFloatingWidget.AnchorPoint': ...
    def setAnchorPoint(self, point: 'QgsFloatingWidget.AnchorPoint') -> None: ...
    def anchorPoint(self) -> 'QgsFloatingWidget.AnchorPoint': ...
    def anchorWidget(self) -> typing.Optional[QtWidgets.QWidget]: ...
    def setAnchorWidget(self, widget: typing.Optional[QtWidgets.QWidget]) -> None: ...


class QgsFocusWatcher(QtCore.QObject):

    def __init__(self, parent: typing.Optional[QtCore.QObject]) -> None: ...

    focusOut: typing.ClassVar[QtCore.pyqtSignal]
    focusIn: typing.ClassVar[QtCore.pyqtSignal]
    focusChanged: typing.ClassVar[QtCore.pyqtSignal]
    def eventFilter(self, obj: typing.Optional[QtCore.QObject], event: typing.Optional[QtCore.QEvent]) -> bool: ...


class QgsFontButton(QtWidgets.QToolButton):

    class Mode(int):
        ModeTextRenderer = ... # type: QgsFontButton.Mode
        ModeQFont = ... # type: QgsFontButton.Mode

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., dialogTitle: typing.Optional[str] = ...) -> None: ...

    def wheelEvent(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def dropEvent(self, e: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def dragLeaveEvent(self, e: typing.Optional[QtGui.QDragLeaveEvent]) -> None: ...
    def dragEnterEvent(self, e: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    def mouseMoveEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def changeEvent(self, e: typing.Optional[QtCore.QEvent]) -> None: ...
    def event(self, e: typing.Optional[QtCore.QEvent]) -> bool: ...
    changed: typing.ClassVar[QtCore.pyqtSignal]
    def pasteColor(self) -> None: ...
    def copyColor(self) -> None: ...
    def pasteFormat(self) -> None: ...
    def copyFormat(self) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setCurrentFont(self, font: QtGui.QFont) -> None: ...
    def setToNullFormat(self) -> None: ...
    def setTextFormat(self, format: _core.QgsTextFormat) -> None: ...
    def showNullFormat(self) -> bool: ...
    def setNoFormatString(self, string: typing.Optional[str]) -> None: ...
    def setShowNullFormat(self, show: bool) -> None: ...
    def registerExpressionContextGenerator(self, generator: typing.Optional[_core.QgsExpressionContextGenerator]) -> None: ...
    def setLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def currentFont(self) -> QtGui.QFont: ...
    def textFormat(self) -> _core.QgsTextFormat: ...
    def messageBar(self) -> typing.Optional['QgsMessageBar']: ...
    def setMessageBar(self, bar: typing.Optional['QgsMessageBar']) -> None: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def mapCanvas(self) -> typing.Optional[QgsMapCanvas]: ...
    def dialogTitle(self) -> str: ...
    def setDialogTitle(self, title: typing.Optional[str]) -> None: ...
    def setMode(self, mode: 'QgsFontButton.Mode') -> None: ...
    def mode(self) -> 'QgsFontButton.Mode': ...
    def sizeHint(self) -> QtCore.QSize: ...
    def minimumSizeHint(self) -> QtCore.QSize: ...


class QgsFormAnnotation(_core.QgsAnnotation):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def renderAnnotation(self, context: _core.QgsRenderContext, size: QtCore.QSizeF) -> None: ...
    @staticmethod
    def create() -> typing.Optional['QgsFormAnnotation']: ...
    def setAssociatedFeature(self, feature: _core.QgsFeature) -> None: ...
    def readXml(self, itemElem: QtXml.QDomElement, context: _core.QgsReadWriteContext) -> None: ...
    def writeXml(self, elem: QtXml.QDomElement, doc: QtXml.QDomDocument, context: _core.QgsReadWriteContext) -> None: ...
    def designerForm(self) -> str: ...
    def setDesignerForm(self, uiFile: typing.Optional[str]) -> None: ...
    def preferredFrameSize(self) -> QtCore.QSizeF: ...
    def minimumFrameSize(self) -> QtCore.QSizeF: ...
    def clone(self) -> typing.Optional['QgsFormAnnotation']: ...


class QgsGeocoderLocatorFilter(_core.QgsAbstractGeocoderLocatorFilter):

    def __init__(self, name: typing.Optional[str], displayName: typing.Optional[str], prefix: typing.Optional[str], geocoder: typing.Optional[_core.QgsGeocoderInterface], canvas: typing.Optional[QgsMapCanvas], boundingBox: _core.QgsRectangle = ...) -> None: ...

    def clone(self) -> typing.Optional[_core.QgsLocatorFilter]: ...


class QgsGeometryRubberBand(QgsMapCanvasItem):

    class IconType(int):
        ICON_NONE = ... # type: QgsGeometryRubberBand.IconType
        ICON_CROSS = ... # type: QgsGeometryRubberBand.IconType
        ICON_X = ... # type: QgsGeometryRubberBand.IconType
        ICON_BOX = ... # type: QgsGeometryRubberBand.IconType
        ICON_CIRCLE = ... # type: QgsGeometryRubberBand.IconType
        ICON_FULL_BOX = ... # type: QgsGeometryRubberBand.IconType

    def __init__(self, mapCanvas: typing.Optional[QgsMapCanvas], geomType: _core.Qgis.GeometryType = ...) -> None: ...

    def setGeometryType(self, geometryType: _core.Qgis.GeometryType) -> None: ...
    def geometryType(self) -> _core.Qgis.GeometryType: ...
    def paint(self, painter: typing.Optional[QtGui.QPainter]) -> None: ...
    def updatePosition(self) -> None: ...
    def setVertexDrawingEnabled(self, isVerticesDrawn: bool) -> None: ...
    def setIconType(self, iconType: 'QgsGeometryRubberBand.IconType') -> None: ...
    def setBrushStyle(self, brushStyle: QtCore.Qt.BrushStyle) -> None: ...
    def setLineStyle(self, penStyle: QtCore.Qt.PenStyle) -> None: ...
    def setStrokeWidth(self, width: int) -> None: ...
    def setStrokeColor(self, c: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setFillColor(self, c: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def moveVertex(self, id: _core.QgsVertexId, newPos: _core.QgsPoint) -> None: ...
    def geometry(self) -> typing.Optional[_core.QgsAbstractGeometry]: ...
    def setGeometry(self, geom: typing.Optional[_core.QgsAbstractGeometry]) -> None: ...


class QgsGeometryWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    geometryValueChanged: typing.ClassVar[QtCore.pyqtSignal]
    def copyAsGeoJson(self) -> None: ...
    def copyAsWkt(self) -> None: ...
    def clearGeometry(self) -> None: ...
    def setReadOnly(self, readOnly: bool) -> None: ...
    def isReadOnly(self) -> bool: ...
    def acceptedWkbTypes(self) -> typing.List[_core.Qgis.WkbType]: ...
    def setAcceptedWkbTypes(self, types: typing.Iterable[_core.Qgis.WkbType]) -> None: ...
    def geometryValue(self) -> _core.QgsReferencedGeometry: ...
    def setGeometryValue(self, geometry: _core.QgsReferencedGeometry) -> None: ...


class QgsGradientColorRampDialog(QtWidgets.QDialog):

    def __init__(self, ramp: _core.QgsGradientColorRamp, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setColor2(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setColor1(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    changed: typing.ClassVar[QtCore.pyqtSignal]
    def buttonBox(self) -> typing.Optional[QtWidgets.QDialogButtonBox]: ...
    def setRamp(self, ramp: _core.QgsGradientColorRamp) -> None: ...
    def ramp(self) -> _core.QgsGradientColorRamp: ...


class QgsGradientStopEditor(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., ramp: typing.Optional[_core.QgsGradientColorRamp] = ...) -> None: ...

    def dropEvent(self, e: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def dragEnterEvent(self, e: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def mouseDoubleClickEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    selectedStopChanged: typing.ClassVar[QtCore.pyqtSignal]
    changed: typing.ClassVar[QtCore.pyqtSignal]
    def setColor2(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setColor1(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def deleteSelectedStop(self) -> None: ...
    def setSelectedStopDetails(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], offset: float) -> None: ...
    def setSelectedStopDirection(self, direction: _core.Qgis.AngularDirection) -> None: ...
    def setSelectedStopColorSpec(self, spec: QtGui.QColor.Spec) -> None: ...
    def setSelectedStopOffset(self, offset: float) -> None: ...
    def setSelectedStopColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def sizeHint(self) -> QtCore.QSize: ...
    def selectedStop(self) -> _core.QgsGradientStop: ...
    def selectStop(self, index: int) -> None: ...
    def gradientRamp(self) -> _core.QgsGradientColorRamp: ...
    def setGradientRamp(self, ramp: _core.QgsGradientColorRamp) -> None: ...


class QgsGroupWmsDataDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def setGroupAbstract(self, abstract: typing.Optional[str]) -> None: ...
    def setGroupShortName(self, shortName: typing.Optional[str]) -> None: ...
    def setGroupTitle(self, title: typing.Optional[str]) -> None: ...
    def groupAbstract(self) -> str: ...
    def groupShortName(self) -> str: ...
    def groupTitle(self) -> str: ...


class QgsGui(QtCore.QObject):

    class HigFlag(int):
        HigMenuTextIsTitleCase = ... # type: QgsGui.HigFlag
        HigDialogTitleIsTitleCase = ... # type: QgsGui.HigFlag

    class ProjectCrsBehavior(int):
        UseCrsOfFirstLayerAdded = ... # type: QgsGui.ProjectCrsBehavior
        UsePresetCrs = ... # type: QgsGui.ProjectCrsBehavior

    class HigFlags(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsGui.HigFlags', 'QgsGui.HigFlag']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsGui.HigFlags', 'QgsGui.HigFlag']) -> 'QgsGui.HigFlags': ...
        def __xor__(self, f: typing.Union['QgsGui.HigFlags', 'QgsGui.HigFlag']) -> 'QgsGui.HigFlags': ...
        def __ior__(self, f: typing.Union['QgsGui.HigFlags', 'QgsGui.HigFlag']) -> 'QgsGui.HigFlags': ...
        def __or__(self, f: typing.Union['QgsGui.HigFlags', 'QgsGui.HigFlag']) -> 'QgsGui.HigFlags': ...
        def __iand__(self, f: typing.Union['QgsGui.HigFlags', 'QgsGui.HigFlag']) -> 'QgsGui.HigFlags': ...
        def __and__(self, f: typing.Union['QgsGui.HigFlags', 'QgsGui.HigFlag']) -> 'QgsGui.HigFlags': ...
        def __invert__(self) -> 'QgsGui.HigFlags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    optionsChanged: typing.ClassVar[QtCore.pyqtSignal]
    @staticmethod
    def findScreenAt(point: QtCore.QPoint) -> typing.Optional[QtGui.QScreen]: ...
    @staticmethod
    def sampleColor(point: QtCore.QPoint) -> QtGui.QColor: ...
    @staticmethod
    def higFlags() -> 'QgsGui.HigFlags': ...
    @staticmethod
    def inputControllerManager() -> typing.Optional['QgsInputControllerManager']: ...
    @staticmethod
    def setWindowManager(manager: typing.Optional['QgsWindowManagerInterface']) -> None: ...
    @staticmethod
    def windowManager() -> typing.Optional['QgsWindowManagerInterface']: ...
    @staticmethod
    def enableAutoGeometryRestore(widget: typing.Optional[QtWidgets.QWidget], key: typing.Optional[str] = ...) -> None: ...
    @staticmethod
    def settingsEditorWidgetRegistry() -> typing.Optional['QgsSettingsEditorWidgetRegistry']: ...
    @staticmethod
    def historyProviderRegistry() -> typing.Optional['QgsHistoryProviderRegistry']: ...
    @staticmethod
    def relationWidgetRegistry() -> typing.Optional['QgsRelationWidgetRegistry']: ...
    @staticmethod
    def sourceWidgetProviderRegistry() -> typing.Optional['QgsProviderSourceWidgetProviderRegistry']: ...
    @staticmethod
    def subsetStringEditorProviderRegistry() -> typing.Optional['QgsSubsetStringEditorProviderRegistry']: ...
    @staticmethod
    def sensorGuiRegistry() -> typing.Optional['QgsSensorGuiRegistry']: ...
    @staticmethod
    def providerGuiRegistry() -> typing.Optional['QgsProviderGuiRegistry']: ...
    @staticmethod
    def projectStorageGuiRegistry() -> typing.Optional['QgsProjectStorageGuiRegistry']: ...
    @staticmethod
    def dataItemGuiProviderRegistry() -> typing.Optional[QgsDataItemGuiProviderRegistry]: ...
    @staticmethod
    def processingRecentAlgorithmLog() -> typing.Optional['QgsProcessingRecentAlgorithmLog']: ...
    @staticmethod
    def codeEditorColorSchemeRegistry() -> typing.Optional['QgsCodeEditorColorSchemeRegistry']: ...
    @staticmethod
    def numericFormatGuiRegistry() -> typing.Optional['QgsNumericFormatGuiRegistry']: ...
    @staticmethod
    def processingGuiRegistry() -> typing.Optional['QgsProcessingGuiRegistry']: ...
    @staticmethod
    def annotationItemGuiRegistry() -> typing.Optional['QgsAnnotationItemGuiRegistry']: ...
    @staticmethod
    def layoutItemGuiRegistry() -> typing.Optional['QgsLayoutItemGuiRegistry']: ...
    @staticmethod
    def mapLayerActionRegistry() -> typing.Optional['QgsMapLayerActionRegistry']: ...
    @staticmethod
    def layerTreeEmbeddedWidgetRegistry() -> typing.Optional['QgsLayerTreeEmbeddedWidgetRegistry']: ...
    @staticmethod
    def shortcutsManager() -> typing.Optional['QgsShortcutsManager']: ...
    @staticmethod
    def sourceSelectProviderRegistry() -> typing.Optional['QgsSourceSelectProviderRegistry']: ...
    @staticmethod
    def editorWidgetRegistry() -> typing.Optional['QgsEditorWidgetRegistry']: ...
    @staticmethod
    def settingsRegistryGui() -> typing.Optional['QgsSettingsRegistryGui']: ...
    @staticmethod
    def instance() -> typing.Optional['QgsGui']: ...


class QgsHelp(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsHelp') -> None: ...

    @staticmethod
    def helpUrl(key: typing.Optional[str]) -> QtCore.QUrl: ...
    @staticmethod
    def openHelp(key: typing.Optional[str]) -> None: ...


class QgsHighlight(QgsMapCanvasItem):

    @typing.overload
    def __init__(self, mapCanvas: typing.Optional[QgsMapCanvas], geom: _core.QgsGeometry, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    @typing.overload
    def __init__(self, mapCanvas: typing.Optional[QgsMapCanvas], feature: _core.QgsFeature, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...

    def updateRect(self) -> None: ...
    def paint(self, p: typing.Optional[QtGui.QPainter]) -> None: ...
    def applyDefaultStyle(self) -> None: ...
    def updatePosition(self) -> None: ...
    def layer(self) -> typing.Optional[_core.QgsMapLayer]: ...
    def setMinWidth(self, width: float) -> None: ...
    def setBuffer(self, buffer: float) -> None: ...
    def buffer(self) -> float: ...
    def setWidth(self, width: int) -> None: ...
    def width(self) -> int: ...
    def setFillColor(self, fillColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def fillColor(self) -> QtGui.QColor: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def color(self) -> QtGui.QColor: ...


class QgsHighlightableLineEdit(QgsFilterLineEdit):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def paintEvent(self, e: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def setHighlighted(self, highlighted: bool) -> None: ...
    def isHighlighted(self) -> bool: ...


class QgsHistogramWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., layer: typing.Optional[_core.QgsVectorLayer] = ..., fieldOrExp: typing.Optional[str] = ...) -> None: ...

    def drawHistogram(self) -> None: ...
    def setSourceFieldExp(self, fieldOrExp: typing.Optional[str]) -> None: ...
    def setLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def refresh(self) -> None: ...
    def refreshValues(self) -> None: ...
    def setYAxisTitle(self, title: typing.Optional[str]) -> None: ...
    def yAxisTitle(self) -> str: ...
    def setXAxisTitle(self, title: typing.Optional[str]) -> None: ...
    def xAxisTitle(self) -> str: ...
    def graduatedRanges(self) -> typing.List[_core.QgsRendererRange]: ...
    def setGraduatedRanges(self, ranges: typing.Iterable[_core.QgsRendererRange]) -> None: ...
    def brush(self) -> QtGui.QBrush: ...
    def setBrush(self, brush: typing.Union[QtGui.QBrush, typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], QtGui.QGradient]) -> None: ...
    def pen(self) -> QtGui.QPen: ...
    def setPen(self, pen: typing.Union[QtGui.QPen, typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]]) -> None: ...
    def sourceFieldExp(self) -> str: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...


class QgsHttpHeaderWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def updateSettings(self, settings: _core.QgsSettings, key: typing.Optional[str]) -> None: ...
    def setFromSettings(self, settings: _core.QgsSettings, key: typing.Optional[str]) -> None: ...
    def setHeaders(self, headers: _core.QgsHttpHeaders) -> None: ...
    def httpHeaders(self) -> _core.QgsHttpHeaders: ...


class QgsIdentifyMenu(QtWidgets.QMenu):

    class MenuLevel(int):
        LayerLevel = ... # type: QgsIdentifyMenu.MenuLevel
        FeatureLevel = ... # type: QgsIdentifyMenu.MenuLevel

    class ActionData(PyQt5.sip.wrapper):

        mAllResults = ... # type: bool
        mFeatureId = ... # type: int
        mIsExternalAction = ... # type: bool
        mIsValid = ... # type: bool
        mLayer = ... # type: _core.QgsMapLayer
        mLevel = ... # type: 'QgsIdentifyMenu.MenuLevel'
        mMapLayerAction = ... # type: 'QgsMapLayerAction'

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, layer: typing.Optional[_core.QgsMapLayer], mapLayerAction: typing.Optional['QgsMapLayerAction'] = ...) -> None: ...
        @typing.overload
        def __init__(self, layer: typing.Optional[_core.QgsMapLayer], fid: int, mapLayerAction: typing.Optional['QgsMapLayerAction'] = ...) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsIdentifyMenu.ActionData') -> None: ...

    def __init__(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...

    def closeEvent(self, e: typing.Optional[QtGui.QCloseEvent]) -> None: ...
    @staticmethod
    def styleHighlight(highlight: typing.Optional[QgsHighlight]) -> None: ...
    def exec(self, idResults: typing.Iterable['QgsMapToolIdentify.IdentifyResult'], pos: QtCore.QPoint) -> typing.List['QgsMapToolIdentify.IdentifyResult']: ...
    def removeCustomActions(self) -> None: ...
    def addCustomAction(self, action: typing.Optional['QgsMapLayerAction']) -> None: ...
    def maxFeatureDisplay(self) -> int: ...
    def setMaxFeatureDisplay(self, maxFeatureDisplay: int) -> None: ...
    def maxLayerDisplay(self) -> int: ...
    def setMaxLayerDisplay(self, maxLayerDisplay: int) -> None: ...
    def resultsIfExternalAction(self) -> bool: ...
    def setResultsIfExternalAction(self, resultsIfExternalAction: bool) -> None: ...
    def showFeatureActions(self) -> bool: ...
    def setShowFeatureActions(self, showFeatureActions: bool) -> None: ...
    def expressionContextScope(self) -> _core.QgsExpressionContextScope: ...
    def setExpressionContextScope(self, scope: _core.QgsExpressionContextScope) -> None: ...
    def execWithSingleResult(self) -> bool: ...
    def setExecWithSingleResult(self, execWithSingleResult: bool) -> None: ...
    def allowMultipleReturn(self) -> bool: ...
    def setAllowMultipleReturn(self, multipleReturn: bool) -> None: ...
    @staticmethod
    def findFeaturesOnCanvas(event: typing.Optional['QgsMapMouseEvent'], canvas: typing.Optional[QgsMapCanvas], geometryTypes: typing.Iterable[_core.Qgis.GeometryType]) -> typing.List['QgsMapToolIdentify.IdentifyResult']: ...


class QgsTableWidgetBase(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget]) -> None: ...

    valueChanged: typing.ClassVar[QtCore.pyqtSignal]
    def init(self, model: typing.Optional[QtCore.QAbstractTableModel]) -> None: ...


class QgsKeyValueWidget(QgsTableWidgetBase):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def map(self) -> typing.Dict[str, typing.Any]: ...
    def setMap(self, map: typing.Dict[str, typing.Any]) -> None: ...


class QgsLayerMetadataSearchWidget(QgsAbstractDataSourceWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., widgetMode: _core.QgsProviderRegistry.WidgetMode = ...) -> None: ...

    def showEvent(self, event: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def reset(self) -> None: ...
    def addButtonClicked(self) -> None: ...
    def refresh(self) -> None: ...
    def updateExtentFilter(self, index: int) -> None: ...
    def setMapCanvas(self, mapCanvas: typing.Optional[QgsMapCanvas]) -> None: ...


class QgsLayerMetadataResultsModel(QtCore.QAbstractTableModel):

    class Sections(int):
        Identifier = ... # type: QgsLayerMetadataResultsModel.Sections
        Title = ... # type: QgsLayerMetadataResultsModel.Sections
        Abstract = ... # type: QgsLayerMetadataResultsModel.Sections
        DataProviderName = ... # type: QgsLayerMetadataResultsModel.Sections
        GeometryType = ... # type: QgsLayerMetadataResultsModel.Sections

    class Roles(int):
        Metadata = ... # type: QgsLayerMetadataResultsModel.Roles

    def __init__(self, searchContext: _core.QgsMetadataSearchContext, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    progressChanged: typing.ClassVar[QtCore.pyqtSignal]
    def cancel(self) -> None: ...
    def resultsReady(self, results: _core.QgsLayerMetadataSearchResults) -> None: ...
    def reloadAsync(self) -> None: ...
    def reload(self) -> None: ...
    def headerData(self, section: int, orientation: QtCore.Qt.Orientation, role: int) -> typing.Any: ...
    def data(self, index: QtCore.QModelIndex, role: int) -> typing.Any: ...
    def columnCount(self, parent: QtCore.QModelIndex) -> int: ...
    def rowCount(self, parent: QtCore.QModelIndex) -> int: ...


class QgsLayerMetadataResultsProxyModel(QtCore.QSortFilterProxyModel):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def filterAcceptsRow(self, sourceRow: int, sourceParent: QtCore.QModelIndex) -> bool: ...
    def setFilterMapLayerType(self, mapLayerType: _core.Qgis.LayerType) -> None: ...
    def setFilterString(self, filterString: typing.Optional[str]) -> None: ...
    def setFilterGeometryType(self, geometryType: _core.Qgis.GeometryType) -> None: ...
    def setFilterExtent(self, extent: _core.QgsRectangle) -> None: ...
    def setFilterMapLayerTypeEnabled(self, enabled: bool) -> None: ...
    def setFilterGeometryTypeEnabled(self, enabled: bool) -> None: ...
    def filterString(self) -> str: ...


class QgsOptionsDialogBase(QtWidgets.QDialog):

    def __init__(self, settingsKey: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., settings: typing.Optional[_core.QgsSettings] = ...) -> None: ...

    def registerTextSearchWidgets(self) -> None: ...
    def updateWindowTitle(self) -> None: ...
    def paintEvent(self, e: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def warnAboutMissingObjects(self) -> None: ...
    def optionsStackedWidget_WidgetRemoved(self, index: int) -> None: ...
    def optionsStackedWidget_CurrentChanged(self, index: int) -> None: ...
    def updateOptionsListVerticalTabs(self) -> None: ...
    def searchText(self, text: typing.Optional[str]) -> None: ...
    def insertPage(self, title: typing.Optional[str], tooltip: typing.Optional[str], icon: QtGui.QIcon, widget: typing.Optional[QtWidgets.QWidget], before: typing.Optional[str], path: typing.Iterable[typing.Optional[str]] = ..., key: typing.Optional[str] = ...) -> None: ...
    def addPage(self, title: typing.Optional[str], tooltip: typing.Optional[str], icon: QtGui.QIcon, widget: typing.Optional[QtWidgets.QWidget], path: typing.Iterable[typing.Optional[str]] = ..., key: typing.Optional[str] = ...) -> None: ...
    def setCurrentPage(self, page: typing.Optional[str]) -> None: ...
    def iconOnly(self) -> bool: ...
    def resizeAlltabs(self, index: int) -> None: ...
    def restoreLastPage(self) -> None: ...
    def restoreOptionsBaseUi(self, title: typing.Optional[str] = ...) -> None: ...
    def setSettings(self, settings: typing.Optional[_core.QgsSettings]) -> None: ...
    def initOptionsBase(self, restoreUi: bool = ..., title: typing.Optional[str] = ...) -> None: ...


class QgsLayerPropertiesDialog(QgsOptionsDialogBase):

    def __init__(self, layer: typing.Optional[_core.QgsMapLayer], canvas: typing.Optional[QgsMapCanvas], settingsKey: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., settings: typing.Optional[_core.QgsSettings] = ...) -> None: ...

    def openUrl(self, url: QtCore.QUrl) -> None: ...
    def optionsStackedWidget_CurrentChanged(self, index: int) -> None: ...
    def rollback(self) -> None: ...
    def storeCurrentStyleForUndo(self) -> None: ...
    def refocusDialog(self) -> None: ...
    def initialize(self) -> None: ...
    def loadDefaultStyle(self) -> None: ...
    def saveStyleAsDefault(self) -> None: ...
    def saveStyleToFile(self) -> None: ...
    def loadStyleFromFile(self) -> None: ...
    def loadDefaultMetadata(self) -> None: ...
    def saveMetadataAsDefault(self) -> None: ...
    def saveMetadataToFile(self) -> None: ...
    def loadMetadataFromFile(self) -> None: ...
    def saveStyleAs(self) -> None: ...
    def loadStyle(self) -> None: ...
    def saveDefaultStyle(self) -> None: ...
    def addPropertiesPageFactory(self, factory: typing.Optional['QgsMapLayerConfigWidgetFactory']) -> None: ...
    def setMetadataWidget(self, widget: typing.Optional['QgsMetadataWidget'], page: typing.Optional[QtWidgets.QWidget]) -> None: ...


class QgsLegendFilterButton(QtWidgets.QToolButton):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    expressionTextChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setVectorLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def vectorLayer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def registerExpressionContextGenerator(self, generator: typing.Optional[_core.QgsExpressionContextGenerator]) -> None: ...
    def setExpressionText(self, expression: typing.Optional[str]) -> None: ...
    def expressionText(self) -> str: ...


class QgsLegendPatchShapeButton(QtWidgets.QToolButton):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., dialogTitle: typing.Optional[str] = ...) -> None: ...

    def mousePressEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def changeEvent(self, e: typing.Optional[QtCore.QEvent]) -> None: ...
    changed: typing.ClassVar[QtCore.pyqtSignal]
    def setToDefault(self) -> None: ...
    def setShape(self, shape: _core.QgsLegendPatchShape) -> None: ...
    def messageBar(self) -> typing.Optional['QgsMessageBar']: ...
    def setMessageBar(self, bar: typing.Optional['QgsMessageBar']) -> None: ...
    def shape(self) -> _core.QgsLegendPatchShape: ...
    def dialogTitle(self) -> str: ...
    def setDialogTitle(self, title: typing.Optional[str]) -> None: ...
    def setPreviewSymbol(self, symbol: typing.Optional[_core.QgsSymbol]) -> None: ...
    def symbolType(self) -> _core.Qgis.SymbolType: ...
    def setSymbolType(self, type: _core.Qgis.SymbolType) -> None: ...
    def sizeHint(self) -> QtCore.QSize: ...
    def minimumSizeHint(self) -> QtCore.QSize: ...


class QgsLegendPatchShapeWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., shape: _core.QgsLegendPatchShape = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def setShape(self, shape: _core.QgsLegendPatchShape) -> None: ...
    def shape(self) -> _core.QgsLegendPatchShape: ...


class QgsLegendPatchShapeDialog(QtWidgets.QDialog):

    def __init__(self, shape: _core.QgsLegendPatchShape, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def buttonBox(self) -> typing.Optional[QtWidgets.QDialogButtonBox]: ...
    def shape(self) -> _core.QgsLegendPatchShape: ...


class QgsLimitedRandomColorRampWidget(QgsPanelWidget):

    def __init__(self, ramp: _core.QgsLimitedRandomColorRamp, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setVal2(self, val: int) -> None: ...
    def setVal1(self, val: int) -> None: ...
    def setSat2(self, val: int) -> None: ...
    def setSat1(self, val: int) -> None: ...
    def setHue2(self, val: int) -> None: ...
    def setHue1(self, val: int) -> None: ...
    def setCount(self, val: int) -> None: ...
    changed: typing.ClassVar[QtCore.pyqtSignal]
    def setRamp(self, ramp: _core.QgsLimitedRandomColorRamp) -> None: ...
    def ramp(self) -> _core.QgsLimitedRandomColorRamp: ...


class QgsLimitedRandomColorRampDialog(QtWidgets.QDialog):

    def __init__(self, ramp: _core.QgsLimitedRandomColorRamp, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def buttonBox(self) -> typing.Optional[QtWidgets.QDialogButtonBox]: ...
    def setRamp(self, ramp: _core.QgsLimitedRandomColorRamp) -> None: ...
    def ramp(self) -> _core.QgsLimitedRandomColorRamp: ...


class QgsListWidget(QgsTableWidgetBase):

    def __init__(self, subType: QtCore.QVariant.Type, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def valid(self) -> bool: ...
    def list(self) -> typing.List[typing.Any]: ...
    def setList(self, list: typing.Iterable[typing.Any]) -> None: ...


class QgsLongLongValidator(QtGui.QValidator):

    @typing.overload
    def __init__(self, parent: typing.Optional[QtCore.QObject]) -> None: ...
    @typing.overload
    def __init__(self, bottom: int, top: int, parent: typing.Optional[QtCore.QObject]) -> None: ...

    def top(self) -> int: ...
    def bottom(self) -> int: ...
    def setRange(self, bottom: int, top: int) -> None: ...
    def setTop(self, top: int) -> None: ...
    def setBottom(self, bottom: int) -> None: ...
    def validate(self, input: typing.Optional[str]) -> typing.Tuple[QtGui.QValidator.State, int]: ...


class QgsLUDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def setUpperValue(self, val: typing.Optional[str]) -> None: ...
    def upperValueDouble(self) -> float: ...
    def upperValue(self) -> str: ...
    def setLowerValue(self, val: typing.Optional[str]) -> None: ...
    def lowerValueDouble(self) -> float: ...
    def lowerValue(self) -> str: ...


class QgsManageConnectionsDialog(QtWidgets.QDialog):

    class Type(int):
        WMS = ... # type: QgsManageConnectionsDialog.Type
        PostGIS = ... # type: QgsManageConnectionsDialog.Type
        WFS = ... # type: QgsManageConnectionsDialog.Type
        MSSQL = ... # type: QgsManageConnectionsDialog.Type
        WCS = ... # type: QgsManageConnectionsDialog.Type
        Oracle = ... # type: QgsManageConnectionsDialog.Type
        HANA = ... # type: QgsManageConnectionsDialog.Type
        XyzTiles = ... # type: QgsManageConnectionsDialog.Type
        ArcgisMapServer = ... # type: QgsManageConnectionsDialog.Type
        ArcgisFeatureServer = ... # type: QgsManageConnectionsDialog.Type
        VectorTile = ... # type: QgsManageConnectionsDialog.Type
        TiledScene = ... # type: QgsManageConnectionsDialog.Type

    class Mode(int):
        Export = ... # type: QgsManageConnectionsDialog.Mode
        Import = ... # type: QgsManageConnectionsDialog.Mode

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., mode: 'QgsManageConnectionsDialog.Mode' = ..., type: 'QgsManageConnectionsDialog.Type' = ..., fileName: typing.Optional[str] = ...) -> None: ...

    def selectionChanged(self) -> None: ...
    def clearSelection(self) -> None: ...
    def selectAll(self) -> None: ...
    def doExportImport(self) -> None: ...


class QgsMapCanvasAnnotationItem(QtCore.QObject, QgsMapCanvasItem):

    class MouseMoveAction(int):
        NoAction = ... # type: QgsMapCanvasAnnotationItem.MouseMoveAction
        MoveMapPosition = ... # type: QgsMapCanvasAnnotationItem.MouseMoveAction
        MoveFramePosition = ... # type: QgsMapCanvasAnnotationItem.MouseMoveAction
        ResizeFrameUp = ... # type: QgsMapCanvasAnnotationItem.MouseMoveAction
        ResizeFrameDown = ... # type: QgsMapCanvasAnnotationItem.MouseMoveAction
        ResizeFrameLeft = ... # type: QgsMapCanvasAnnotationItem.MouseMoveAction
        ResizeFrameRight = ... # type: QgsMapCanvasAnnotationItem.MouseMoveAction
        ResizeFrameLeftUp = ... # type: QgsMapCanvasAnnotationItem.MouseMoveAction
        ResizeFrameRightUp = ... # type: QgsMapCanvasAnnotationItem.MouseMoveAction
        ResizeFrameLeftDown = ... # type: QgsMapCanvasAnnotationItem.MouseMoveAction
        ResizeFrameRightDown = ... # type: QgsMapCanvasAnnotationItem.MouseMoveAction

    def __init__(self, annotation: typing.Optional[_core.QgsAnnotation], mapCanvas: typing.Optional[QgsMapCanvas]) -> None: ...

    def cursorShapeForAction(self, moveAction: 'QgsMapCanvasAnnotationItem.MouseMoveAction') -> QtCore.Qt.CursorShape: ...
    def moveActionForPosition(self, pos: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> 'QgsMapCanvasAnnotationItem.MouseMoveAction': ...
    def paint(self, painter: typing.Optional[QtGui.QPainter]) -> None: ...
    def boundingRect(self) -> QtCore.QRectF: ...
    def updatePosition(self) -> None: ...
    def annotation(self) -> typing.Optional[_core.QgsAnnotation]: ...


class QgsMapCanvasInteractionBlocker(PyQt5.sip.wrapper):

    class Interaction(int):
        MapPanOnSingleClick = ... # type: QgsMapCanvasInteractionBlocker.Interaction

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsMapCanvasInteractionBlocker') -> None: ...

    def blockCanvasInteraction(self, interaction: 'QgsMapCanvasInteractionBlocker.Interaction') -> bool: ...


class QgsMapCanvasSnappingUtils(_core.QgsSnappingUtils):

    def __init__(self, canvas: typing.Optional[QgsMapCanvas], parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def prepareIndexProgress(self, index: int) -> None: ...
    def prepareIndexStarting(self, count: int) -> None: ...


class QgsMapCanvasTracer(_core.QgsTracer):

    def __init__(self, canvas: typing.Optional[QgsMapCanvas], messageBar: typing.Optional['QgsMessageBar'] = ...) -> None: ...

    def configure(self) -> None: ...
    def reportError(self, err: _core.QgsTracer.PathError, addingVertex: bool) -> None: ...
    @staticmethod
    def tracerForCanvas(canvas: typing.Optional[QgsMapCanvas]) -> typing.Optional['QgsMapCanvasTracer']: ...
    def setActionEnableSnapping(self, action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def actionEnableSnapping(self) -> typing.Optional[QtWidgets.QAction]: ...
    def setActionEnableTracing(self, action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def actionEnableTracing(self) -> typing.Optional[QtWidgets.QAction]: ...


class QgsMapCanvasUtils(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsMapCanvasUtils') -> None: ...

    @staticmethod
    def filterForLayer(canvas: typing.Optional[QgsMapCanvas], layer: typing.Optional[_core.QgsVectorLayer]) -> str: ...
    @staticmethod
    def flashMatchingFeatures(canvas: typing.Optional[QgsMapCanvas], layer: typing.Optional[_core.QgsVectorLayer], filter: typing.Optional[str]) -> int: ...
    @staticmethod
    def zoomToMatchingFeatures(canvas: typing.Optional[QgsMapCanvas], layer: typing.Optional[_core.QgsVectorLayer], filter: typing.Optional[str]) -> int: ...


class QgsMapLayerComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def rowsChanged(self) -> None: ...
    def indexChanged(self, i: int) -> None: ...
    def paintEvent(self, e: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def dropEvent(self, event: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def dragLeaveEvent(self, event: typing.Optional[QtGui.QDragLeaveEvent]) -> None: ...
    def dragEnterEvent(self, event: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    layerChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    def layer(self, layerIndex: int) -> typing.Optional[_core.QgsMapLayer]: ...
    def currentLayer(self) -> typing.Optional[_core.QgsMapLayer]: ...
    def additionalLayers(self) -> typing.List[_core.QgsMapLayer]: ...
    def setAdditionalLayers(self, layers: typing.Iterable[_core.QgsMapLayer]) -> None: ...
    def additionalItems(self) -> typing.List[str]: ...
    def setAdditionalItems(self, items: typing.Iterable[typing.Optional[str]]) -> None: ...
    def showCrs(self) -> bool: ...
    def setShowCrs(self, showCrs: bool) -> None: ...
    def allowEmptyLayer(self) -> bool: ...
    def setAllowEmptyLayer(self, allowEmpty: bool, text: typing.Optional[str] = ..., icon: QtGui.QIcon = ...) -> None: ...
    def setProject(self, project: typing.Optional[_core.QgsProject]) -> None: ...
    def excludedProviders(self) -> typing.List[str]: ...
    def setExcludedProviders(self, providers: typing.Iterable[typing.Optional[str]]) -> None: ...
    def exceptedLayerList(self) -> typing.List[_core.QgsMapLayer]: ...
    def setExceptedLayerList(self, layerList: typing.Iterable[_core.QgsMapLayer]) -> None: ...
    def filters(self) -> _core.Qgis.LayerFilters: ...
    @typing.overload
    def setFilters(self, filters: typing.Union[_core.Qgis.LayerFilters, _core.Qgis.LayerFilter]) -> None: ...
    @typing.overload
    def setFilters(self, filters: int) -> None: ...


class QgsMapLayerConfigWidgetContext(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsMapLayerConfigWidgetContext') -> None: ...

    def layerTreeGroup(self) -> typing.Optional[_core.QgsLayerTreeGroup]: ...
    def setLayerTreeGroup(self, group: typing.Optional[_core.QgsLayerTreeGroup]) -> None: ...
    def messageBar(self) -> typing.Optional['QgsMessageBar']: ...
    def setMessageBar(self, bar: typing.Optional['QgsMessageBar']) -> None: ...
    def mapCanvas(self) -> typing.Optional[QgsMapCanvas]: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def setAnnotationId(self, id: typing.Optional[str]) -> None: ...
    def annotationId(self) -> str: ...


class QgsMapLayerConfigWidget(QgsPanelWidget):

    def __init__(self, layer: typing.Optional[_core.QgsMapLayer], canvas: typing.Optional[QgsMapCanvas], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def focusDefaultWidget(self) -> None: ...
    def apply(self) -> None: ...
    def setMapLayerConfigWidgetContext(self, context: QgsMapLayerConfigWidgetContext) -> None: ...
    def syncToLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    def shouldTriggerLayerRepaint(self) -> bool: ...


class QgsMapLayerConfigWidgetFactory(PyQt5.sip.wrapper):

    class ParentPage(int):
        NoParent = ... # type: QgsMapLayerConfigWidgetFactory.ParentPage
        Temporal = ... # type: QgsMapLayerConfigWidgetFactory.ParentPage

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, title: typing.Optional[str], icon: QtGui.QIcon) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsMapLayerConfigWidgetFactory') -> None: ...

    def createWidget(self, layer: typing.Optional[_core.QgsMapLayer], canvas: typing.Optional[QgsMapCanvas], dockWidget: bool = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QgsMapLayerConfigWidget]: ...
    def parentPage(self) -> 'QgsMapLayerConfigWidgetFactory.ParentPage': ...
    def supportsLayerTreeGroup(self, group: typing.Optional[_core.QgsLayerTreeGroup]) -> bool: ...
    def supportsLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> bool: ...
    def setSupportLayerPropertiesDialog(self, supports: bool) -> None: ...
    def layerPropertiesPagePositionHint(self) -> str: ...
    def supportLayerPropertiesDialog(self) -> bool: ...
    def setSupportsStyleDock(self, supports: bool) -> None: ...
    def supportsStyleDock(self) -> bool: ...
    def setTitle(self, title: typing.Optional[str]) -> None: ...
    def title(self) -> str: ...
    def setIcon(self, icon: QtGui.QIcon) -> None: ...
    def icon(self) -> QtGui.QIcon: ...


class QgsMapLayerStyleManagerWidget(QgsMapLayerConfigWidget):

    def __init__(self, layer: typing.Optional[_core.QgsMapLayer], canvas: typing.Optional[QgsMapCanvas], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def apply(self) -> None: ...


class QgsMapMouseEvent(QtGui.QMouseEvent):

    @typing.overload
    def __init__(self, mapCanvas: typing.Optional[QgsMapCanvas], event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    @typing.overload
    def __init__(self, mapCanvas: typing.Optional[QgsMapCanvas], type: QtCore.QEvent.Type, pos: QtCore.QPoint, button: QtCore.Qt.MouseButton = ..., buttons: typing.Union[QtCore.Qt.MouseButtons, QtCore.Qt.MouseButton] = ..., modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier] = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsMapMouseEvent') -> None: ...

    def snapToGrid(self, precision: float, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def originalPixelPoint(self) -> QtCore.QPoint: ...
    def pixelPoint(self) -> QtCore.QPoint: ...
    def originalMapPoint(self) -> _core.QgsPointXY: ...
    def setMapPoint(self, point: _core.QgsPointXY) -> None: ...
    def mapPointMatch(self) -> _core.QgsPointLocator.Match: ...
    def mapPoint(self) -> _core.QgsPointXY: ...
    def isSnapped(self) -> bool: ...
    def snapPoint(self) -> _core.QgsPointXY: ...


class QgsMapOverviewCanvas(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., mapCanvas: typing.Optional[QgsMapCanvas] = ...) -> None: ...

    def updatePanningWidget(self, pos: QtCore.QPoint) -> None: ...
    def wheelEvent(self, e: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def mouseReleaseEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def resizeEvent(self, e: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def paintEvent(self, pe: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def transformContextChanged(self) -> None: ...
    def destinationCrsChanged(self) -> None: ...
    def drawExtentRect(self) -> None: ...
    def layerRepaintRequested(self, deferred: bool = ...) -> None: ...
    def mapRenderingFinished(self) -> None: ...
    def updateFullExtent(self) -> None: ...
    def enableAntiAliasing(self, flag: bool) -> None: ...
    def layers(self) -> typing.List[_core.QgsMapLayer]: ...
    def setLayers(self, layers: typing.Iterable[_core.QgsMapLayer]) -> None: ...
    def setBackgroundColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def refresh(self) -> None: ...


class QgsMapTip(QtWidgets.QWidget):

    def __init__(self) -> None: ...

    @staticmethod
    def rasterMapTipPreviewText(layer: typing.Optional[_core.QgsMapLayer], mapCanvas: typing.Optional[QgsMapCanvas], mapTemplate: typing.Optional[str]) -> str: ...
    @staticmethod
    def vectorMapTipPreviewText(layer: typing.Optional[_core.QgsMapLayer], mapCanvas: typing.Optional[QgsMapCanvas], mapTemplate: typing.Optional[str], displayExpression: typing.Optional[str]) -> str: ...
    def clear(self, mpMapCanvas: typing.Optional[QgsMapCanvas] = ..., msDelay: int = ...) -> None: ...
    def showMapTip(self, thepLayer: typing.Optional[_core.QgsMapLayer], mapPosition: _core.QgsPointXY, pixelPosition: QtCore.QPoint, mpMapCanvas: typing.Optional[QgsMapCanvas]) -> None: ...


class QgsMapTool(QtCore.QObject):

    class Flag(int):
        Transient = ... # type: QgsMapTool.Flag
        EditTool = ... # type: QgsMapTool.Flag
        AllowZoomRect = ... # type: QgsMapTool.Flag
        ShowContextMenu = ... # type: QgsMapTool.Flag

    class Flags(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsMapTool.Flags', 'QgsMapTool.Flag']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsMapTool.Flags', 'QgsMapTool.Flag']) -> 'QgsMapTool.Flags': ...
        def __xor__(self, f: typing.Union['QgsMapTool.Flags', 'QgsMapTool.Flag']) -> 'QgsMapTool.Flags': ...
        def __ior__(self, f: typing.Union['QgsMapTool.Flags', 'QgsMapTool.Flag']) -> 'QgsMapTool.Flags': ...
        def __or__(self, f: typing.Union['QgsMapTool.Flags', 'QgsMapTool.Flag']) -> 'QgsMapTool.Flags': ...
        def __iand__(self, f: typing.Union['QgsMapTool.Flags', 'QgsMapTool.Flag']) -> 'QgsMapTool.Flags': ...
        def __and__(self, f: typing.Union['QgsMapTool.Flags', 'QgsMapTool.Flag']) -> 'QgsMapTool.Flags': ...
        def __invert__(self) -> 'QgsMapTool.Flags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...

    def setToolName(self, name: typing.Optional[str]) -> None: ...
    def layer(self, id: typing.Optional[str]) -> typing.Optional[_core.QgsMapLayer]: ...
    def toCanvasCoordinates(self, point: _core.QgsPointXY) -> QtCore.QPoint: ...
    def toMapCoordinatesV2(self, layer: typing.Optional[_core.QgsMapLayer], point: _core.QgsPoint) -> _core.QgsPoint: ...
    @typing.overload
    def toLayerCoordinates(self, layer: typing.Optional[_core.QgsMapLayer], point: QtCore.QPoint) -> _core.QgsPointXY: ...
    @typing.overload
    def toLayerCoordinates(self, layer: typing.Optional[_core.QgsMapLayer], point: _core.QgsPointXY) -> _core.QgsPointXY: ...
    @typing.overload
    def toLayerCoordinates(self, layer: typing.Optional[_core.QgsMapLayer], rect: _core.QgsRectangle) -> _core.QgsRectangle: ...
    def toLayerCoordinatesV2(self, layer: typing.Optional[_core.QgsMapLayer], point: _core.QgsPoint) -> _core.QgsPoint: ...
    reactivated: typing.ClassVar[QtCore.pyqtSignal]
    deactivated: typing.ClassVar[QtCore.pyqtSignal]
    activated: typing.ClassVar[QtCore.pyqtSignal]
    messageDiscarded: typing.ClassVar[QtCore.pyqtSignal]
    messageEmitted: typing.ClassVar[QtCore.pyqtSignal]
    @typing.overload
    def toMapCoordinates(self, point: QtCore.QPoint) -> _core.QgsPointXY: ...
    @typing.overload
    def toMapCoordinates(self, layer: typing.Optional[_core.QgsMapLayer], point: _core.QgsPointXY) -> _core.QgsPointXY: ...
    def populateContextMenuWithEvent(self, menu: typing.Optional[QtWidgets.QMenu], event: typing.Optional[QgsMapMouseEvent]) -> bool: ...
    def populateContextMenu(self, menu: typing.Optional[QtWidgets.QMenu]) -> None: ...
    @typing.overload
    @staticmethod
    def searchRadiusMU(context: _core.QgsRenderContext) -> float: ...
    @typing.overload
    @staticmethod
    def searchRadiusMU(canvas: typing.Optional[QgsMapCanvas]) -> float: ...
    @staticmethod
    def searchRadiusMM() -> float: ...
    def toolName(self) -> str: ...
    def canvas(self) -> typing.Optional[QgsMapCanvas]: ...
    def clean(self) -> None: ...
    def reactivate(self) -> None: ...
    def deactivate(self) -> None: ...
    def activate(self) -> None: ...
    def setCursor(self, cursor: typing.Union[QtGui.QCursor, QtCore.Qt.CursorShape]) -> None: ...
    def button(self) -> typing.Optional[QtWidgets.QAbstractButton]: ...
    def setButton(self, button: typing.Optional[QtWidgets.QAbstractButton]) -> None: ...
    def isActive(self) -> bool: ...
    def action(self) -> typing.Optional[QtWidgets.QAction]: ...
    def setAction(self, action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def canvasToolTipEvent(self, e: typing.Optional[QtGui.QHelpEvent]) -> bool: ...
    def gestureEvent(self, e: typing.Optional[QtWidgets.QGestureEvent]) -> bool: ...
    def keyReleaseEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def keyPressEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def wheelEvent(self, e: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def canvasReleaseEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasPressEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasDoubleClickEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasMoveEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def flags(self) -> 'QgsMapTool.Flags': ...


class QgsMapToolEdit(QgsMapTool):

    class TopologicalResult(int):
        Success = ... # type: QgsMapToolEdit.TopologicalResult
        InvalidCanvas = ... # type: QgsMapToolEdit.TopologicalResult
        InvalidLayer = ... # type: QgsMapToolEdit.TopologicalResult

    def __init__(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...

    def notifyNotEditableLayer(self) -> None: ...
    def notifyNotVectorLayer(self) -> None: ...
    @typing.overload
    def addTopologicalPoints(self, vertices: typing.Iterable[_core.QgsPointXY]) -> 'QgsMapToolEdit.TopologicalResult': ...
    @typing.overload
    def addTopologicalPoints(self, vertices: typing.Iterable[_core.QgsPoint]) -> 'QgsMapToolEdit.TopologicalResult': ...
    def currentVectorLayer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def createRubberBand(self, geometryType: _core.Qgis.GeometryType = ..., alternativeBand: bool = ...) -> typing.Optional['QgsRubberBand']: ...
    @staticmethod
    def digitizingFillColor() -> QtGui.QColor: ...
    @staticmethod
    def digitizingStrokeWidth() -> int: ...
    @staticmethod
    def digitizingStrokeColor() -> QtGui.QColor: ...
    def createGeometryRubberBand(self, geometryType: _core.Qgis.GeometryType = ..., alternativeBand: bool = ...) -> typing.Optional[QgsGeometryRubberBand]: ...
    @staticmethod
    def defaultMValue() -> float: ...
    @staticmethod
    def defaultZValue() -> float: ...
    def flags(self) -> QgsMapTool.Flags: ...


class QgsMapToolAdvancedDigitizing(QgsMapToolEdit):

    def __init__(self, canvas: typing.Optional[QgsMapCanvas], cadDockWidget: typing.Optional[QgsAdvancedDigitizingDockWidget]) -> None: ...

    def setSnapToLayerGridEnabled(self, snapToLayerGridEnabled: bool) -> None: ...
    def snapToLayerGridEnabled(self) -> bool: ...
    def cadCanvasMoveEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def cadCanvasReleaseEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def cadCanvasPressEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def setAutoSnapEnabled(self, enabled: bool) -> None: ...
    def setAdvancedDigitizingAllowed(self, allowed: bool) -> None: ...
    def isAutoSnapEnabled(self) -> bool: ...
    def isAdvancedDigitizingAllowed(self) -> bool: ...
    def layer(self) -> typing.Optional[_core.QgsMapLayer]: ...
    def cadDockWidget(self) -> typing.Optional[QgsAdvancedDigitizingDockWidget]: ...
    def deactivate(self) -> None: ...
    def activate(self) -> None: ...
    def canvasMoveEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasReleaseEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasPressEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...


class QgsMapToolCapture(QgsMapToolAdvancedDigitizing):

    class Capability(int):
        NoCapabilities = ... # type: QgsMapToolCapture.Capability
        SupportsCurves = ... # type: QgsMapToolCapture.Capability
        ValidateGeometries = ... # type: QgsMapToolCapture.Capability

    class CaptureMode(int):
        CaptureNone = ... # type: QgsMapToolCapture.CaptureMode
        CapturePoint = ... # type: QgsMapToolCapture.CaptureMode
        CaptureLine = ... # type: QgsMapToolCapture.CaptureMode
        CapturePolygon = ... # type: QgsMapToolCapture.CaptureMode

    class Capabilities(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsMapToolCapture.Capabilities', 'QgsMapToolCapture.Capability']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsMapToolCapture.Capabilities', 'QgsMapToolCapture.Capability']) -> 'QgsMapToolCapture.Capabilities': ...
        def __xor__(self, f: typing.Union['QgsMapToolCapture.Capabilities', 'QgsMapToolCapture.Capability']) -> 'QgsMapToolCapture.Capabilities': ...
        def __ior__(self, f: typing.Union['QgsMapToolCapture.Capabilities', 'QgsMapToolCapture.Capability']) -> 'QgsMapToolCapture.Capabilities': ...
        def __or__(self, f: typing.Union['QgsMapToolCapture.Capabilities', 'QgsMapToolCapture.Capability']) -> 'QgsMapToolCapture.Capabilities': ...
        def __iand__(self, f: typing.Union['QgsMapToolCapture.Capabilities', 'QgsMapToolCapture.Capability']) -> 'QgsMapToolCapture.Capabilities': ...
        def __and__(self, f: typing.Union['QgsMapToolCapture.Capabilities', 'QgsMapToolCapture.Capability']) -> 'QgsMapToolCapture.Capabilities': ...
        def __invert__(self) -> 'QgsMapToolCapture.Capabilities': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, canvas: typing.Optional[QgsMapCanvas], cadDockWidget: typing.Optional[QgsAdvancedDigitizingDockWidget], mode: 'QgsMapToolCapture.CaptureMode') -> None: ...

    def stopCapturing(self) -> None: ...
    def closePolygon(self) -> None: ...
    @typing.overload
    def setPoints(self, pointList: typing.Iterable[_core.QgsPointXY]) -> None: ...
    @typing.overload
    def setPoints(self, pointList: typing.Iterable[_core.QgsPoint]) -> None: ...
    def pointsZM(self) -> typing.List[_core.QgsPoint]: ...
    def points(self) -> typing.List[_core.QgsPointXY]: ...
    def size(self) -> int: ...
    def isCapturing(self) -> bool: ...
    def startCapturing(self) -> None: ...
    def undo(self, isAutoRepeat: bool = ...) -> None: ...
    @typing.overload
    def addVertex(self, point: _core.QgsPointXY) -> int: ...
    @typing.overload
    def addVertex(self, mapPoint: _core.QgsPointXY, match: _core.QgsPointLocator.Match) -> int: ...
    def fetchLayerPoint(self, match: _core.QgsPointLocator.Match, layerPoint: _core.QgsPoint) -> int: ...
    @typing.overload
    def nextPoint(self, mapPoint: _core.QgsPoint, layerPoint: _core.QgsPoint) -> int: ...
    @typing.overload
    def nextPoint(self, p: QtCore.QPoint, layerPoint: _core.QgsPoint, mapPoint: _core.QgsPoint) -> int: ...
    def setStreamDigitizingEnabled(self, enable: bool) -> None: ...
    def setCircularDigitizingEnabled(self, enable: bool) -> None: ...
    @typing.overload
    def mapPoint(self, e: QgsMapMouseEvent) -> _core.QgsPoint: ...
    @typing.overload
    def mapPoint(self, point: _core.QgsPointXY) -> _core.QgsPoint: ...
    def takeRubberBand(self) -> typing.Optional['QgsRubberBand']: ...
    def clean(self) -> None: ...
    def deleteTempRubberBand(self) -> None: ...
    def keyPressEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def cadCanvasReleaseEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def cadCanvasMoveEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def snappingMatches(self) -> typing.List[_core.QgsPointLocator.Match]: ...
    def captureCurve(self) -> typing.Optional[_core.QgsCompoundCurve]: ...
    def clearCurve(self) -> None: ...
    def addCurve(self, c: typing.Optional[_core.QgsCurve]) -> int: ...
    def mode(self) -> 'QgsMapToolCapture.CaptureMode': ...
    def deactivate(self) -> None: ...
    def activate(self) -> None: ...
    def currentCaptureTechnique(self) -> _core.Qgis.CaptureTechnique: ...
    def setCurrentCaptureTechnique(self, technique: _core.Qgis.CaptureTechnique) -> None: ...
    def supportsTechnique(self, technique: _core.Qgis.CaptureTechnique) -> bool: ...
    def capabilities(self) -> 'QgsMapToolCapture.Capabilities': ...


class QgsMapToolCaptureLayerGeometry(QgsMapToolCapture):

    def __init__(self, canvas: typing.Optional[QgsMapCanvas], cadDockWidget: typing.Optional[QgsAdvancedDigitizingDockWidget], mode: QgsMapToolCapture.CaptureMode) -> None: ...



class QgsMapToolDigitizeFeature(QgsMapToolCaptureLayerGeometry):

    def __init__(self, canvas: typing.Optional[QgsMapCanvas], cadDockWidget: typing.Optional[QgsAdvancedDigitizingDockWidget], mode: QgsMapToolCapture.CaptureMode = ...) -> None: ...

    def setCheckGeometryType(self, checkGeometryType: bool) -> None: ...
    def checkGeometryType(self) -> bool: ...
    digitizingCanceled: typing.ClassVar[QtCore.pyqtSignal]
    digitizingFinished: typing.ClassVar[QtCore.pyqtSignal]
    digitizingCompleted: typing.ClassVar[QtCore.pyqtSignal]
    def keyPressEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def deactivate(self) -> None: ...
    def activate(self) -> None: ...
    def setLayer(self, vl: typing.Optional[_core.QgsMapLayer]) -> None: ...
    def cadCanvasReleaseEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def supportsTechnique(self, technique: _core.Qgis.CaptureTechnique) -> bool: ...
    def capabilities(self) -> QgsMapToolCapture.Capabilities: ...


class QgsMapToolEmitPoint(QgsMapTool):

    def __init__(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...

    canvasClicked: typing.ClassVar[QtCore.pyqtSignal]
    def canvasReleaseEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasPressEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasMoveEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def flags(self) -> QgsMapTool.Flags: ...


class QgsMapToolExtent(QgsMapTool):

    def __init__(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...

    extentChanged: typing.ClassVar[QtCore.pyqtSignal]
    def clearRubberBand(self) -> None: ...
    def extent(self) -> _core.QgsRectangle: ...
    def ratio(self) -> QtCore.QSize: ...
    def setRatio(self, ratio: QtCore.QSize) -> None: ...
    def deactivate(self) -> None: ...
    def activate(self) -> None: ...
    def canvasReleaseEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasPressEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasMoveEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def flags(self) -> QgsMapTool.Flags: ...


class QgsMapToolIdentify(QgsMapTool):

    class Type(int):
        VectorLayer = ... # type: QgsMapToolIdentify.Type
        RasterLayer = ... # type: QgsMapToolIdentify.Type
        MeshLayer = ... # type: QgsMapToolIdentify.Type
        VectorTileLayer = ... # type: QgsMapToolIdentify.Type
        PointCloudLayer = ... # type: QgsMapToolIdentify.Type
        AllLayers = ... # type: QgsMapToolIdentify.Type

    class IdentifyMode(int):
        DefaultQgsSetting = ... # type: QgsMapToolIdentify.IdentifyMode
        ActiveLayer = ... # type: QgsMapToolIdentify.IdentifyMode
        TopDownStopAtFirst = ... # type: QgsMapToolIdentify.IdentifyMode
        TopDownAll = ... # type: QgsMapToolIdentify.IdentifyMode
        LayerSelection = ... # type: QgsMapToolIdentify.IdentifyMode

    class LayerType(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsMapToolIdentify.LayerType', 'QgsMapToolIdentify.Type']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsMapToolIdentify.LayerType', 'QgsMapToolIdentify.Type']) -> 'QgsMapToolIdentify.LayerType': ...
        def __xor__(self, f: typing.Union['QgsMapToolIdentify.LayerType', 'QgsMapToolIdentify.Type']) -> 'QgsMapToolIdentify.LayerType': ...
        def __ior__(self, f: typing.Union['QgsMapToolIdentify.LayerType', 'QgsMapToolIdentify.Type']) -> 'QgsMapToolIdentify.LayerType': ...
        def __or__(self, f: typing.Union['QgsMapToolIdentify.LayerType', 'QgsMapToolIdentify.Type']) -> 'QgsMapToolIdentify.LayerType': ...
        def __iand__(self, f: typing.Union['QgsMapToolIdentify.LayerType', 'QgsMapToolIdentify.Type']) -> 'QgsMapToolIdentify.LayerType': ...
        def __and__(self, f: typing.Union['QgsMapToolIdentify.LayerType', 'QgsMapToolIdentify.Type']) -> 'QgsMapToolIdentify.LayerType': ...
        def __invert__(self) -> 'QgsMapToolIdentify.LayerType': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    class IdentifyResult(PyQt5.sip.wrapper):

        mAttributes = ... # type: typing.Dict[typing.Optional[str], typing.Optional[str]]
        mDerivedAttributes = ... # type: typing.Dict[typing.Optional[str], typing.Optional[str]]
        mFeature = ... # type: _core.QgsFeature
        mFields = ... # type: _core.QgsFields
        mLabel = ... # type: typing.Optional[str]
        mLayer = ... # type: _core.QgsMapLayer
        mParams = ... # type: typing.Dict[typing.Optional[str], typing.Any]

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, layer: typing.Optional[_core.QgsMapLayer], feature: _core.QgsFeature, derivedAttributes: typing.Dict[typing.Optional[str], typing.Optional[str]]) -> None: ...
        @typing.overload
        def __init__(self, layer: typing.Optional[_core.QgsMapLayer], label: typing.Optional[str], attributes: typing.Dict[typing.Optional[str], typing.Optional[str]], derivedAttributes: typing.Dict[typing.Optional[str], typing.Optional[str]]) -> None: ...
        @typing.overload
        def __init__(self, layer: typing.Optional[_core.QgsMapLayer], label: typing.Optional[str], fields: _core.QgsFields, feature: _core.QgsFeature, derivedAttributes: typing.Dict[typing.Optional[str], typing.Optional[str]]) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsMapToolIdentify.IdentifyResult') -> None: ...

    def __init__(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...

    def restoreCanvasPropertiesOverrides(self) -> None: ...
    def setCanvasPropertiesOverrides(self, searchRadiusMapUnits: float) -> None: ...
    def derivedAttributesForPoint(self, point: _core.QgsPoint) -> typing.Dict[str, str]: ...
    def identifyMeshLayer(self, results: typing.Optional[typing.Iterable['QgsMapToolIdentify.IdentifyResult']], layer: typing.Optional[_core.QgsMeshLayer], point: _core.QgsPointXY, identifyContext: _core.QgsIdentifyContext = ...) -> bool: ...
    def identifyVectorLayer(self, results: typing.Optional[typing.Iterable['QgsMapToolIdentify.IdentifyResult']], layer: typing.Optional[_core.QgsVectorLayer], point: _core.QgsPointXY, identifyContext: _core.QgsIdentifyContext = ...) -> bool: ...
    def identifyRasterLayer(self, results: typing.Optional[typing.Iterable['QgsMapToolIdentify.IdentifyResult']], layer: typing.Optional[_core.QgsRasterLayer], point: _core.QgsPointXY, viewExtent: _core.QgsRectangle, mapUnitsPerPixel: float, identifyContext: _core.QgsIdentifyContext = ...) -> bool: ...
    def identifyLayer(self, results: typing.Optional[typing.Iterable['QgsMapToolIdentify.IdentifyResult']], layer: typing.Optional[_core.QgsMapLayer], point: _core.QgsPointXY, viewExtent: _core.QgsRectangle, mapUnitsPerPixel: float, layerType: typing.Union['QgsMapToolIdentify.LayerType', 'QgsMapToolIdentify.Type'] = ..., identifyContext: _core.QgsIdentifyContext = ...) -> bool: ...
    changedRasterResults: typing.ClassVar[QtCore.pyqtSignal]
    identifyMessage: typing.ClassVar[QtCore.pyqtSignal]
    identifyProgress: typing.ClassVar[QtCore.pyqtSignal]
    def formatChanged(self, layer: typing.Optional[_core.QgsRasterLayer]) -> None: ...
    def identifyMenu(self) -> typing.Optional[QgsIdentifyMenu]: ...
    @typing.overload
    def identify(self, x: int, y: int, layerList: typing.Iterable[_core.QgsMapLayer] = ..., mode: 'QgsMapToolIdentify.IdentifyMode' = ..., identifyContext: _core.QgsIdentifyContext = ...) -> typing.List['QgsMapToolIdentify.IdentifyResult']: ...
    @typing.overload
    def identify(self, x: int, y: int, mode: 'QgsMapToolIdentify.IdentifyMode', layerType: typing.Union['QgsMapToolIdentify.LayerType', 'QgsMapToolIdentify.Type'] = ..., identifyContext: _core.QgsIdentifyContext = ...) -> typing.List['QgsMapToolIdentify.IdentifyResult']: ...
    @typing.overload
    def identify(self, geometry: _core.QgsGeometry, mode: 'QgsMapToolIdentify.IdentifyMode', layerType: typing.Union['QgsMapToolIdentify.LayerType', 'QgsMapToolIdentify.Type'], identifyContext: _core.QgsIdentifyContext = ...) -> typing.List['QgsMapToolIdentify.IdentifyResult']: ...
    @typing.overload
    def identify(self, geometry: _core.QgsGeometry, mode: 'QgsMapToolIdentify.IdentifyMode', layerList: typing.Iterable[_core.QgsMapLayer], layerType: typing.Union['QgsMapToolIdentify.LayerType', 'QgsMapToolIdentify.Type'], identifyContext: _core.QgsIdentifyContext = ...) -> typing.List['QgsMapToolIdentify.IdentifyResult']: ...
    @typing.overload
    def identify(self, x: int, y: int, mode: 'QgsMapToolIdentify.IdentifyMode', layerList: typing.Iterable[_core.QgsMapLayer], layerType: typing.Union['QgsMapToolIdentify.LayerType', 'QgsMapToolIdentify.Type'] = ..., identifyContext: _core.QgsIdentifyContext = ...) -> typing.List['QgsMapToolIdentify.IdentifyResult']: ...
    def deactivate(self) -> None: ...
    def activate(self) -> None: ...
    def canvasReleaseEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasPressEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasMoveEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def flags(self) -> QgsMapTool.Flags: ...


class QgsMapToolIdentifyFeature(QgsMapToolIdentify):

    def __init__(self, canvas: typing.Optional[QgsMapCanvas], vl: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...

    def keyPressEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    featureIdentified: typing.ClassVar[QtCore.pyqtSignal]
    def canvasReleaseEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def setLayer(self, vl: typing.Optional[_core.QgsVectorLayer]) -> None: ...


class QgsMapToolPan(QgsMapTool):

    def __init__(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...

    panDistanceBearingChanged: typing.ClassVar[QtCore.pyqtSignal]
    def isDragging(self) -> bool: ...
    def gestureEvent(self, e: typing.Optional[QtWidgets.QGestureEvent]) -> bool: ...
    def canvasDoubleClickEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasReleaseEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasMoveEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasPressEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def flags(self) -> QgsMapTool.Flags: ...
    def deactivate(self) -> None: ...
    def activate(self) -> None: ...


class QgsMapToolZoom(QgsMapTool):

    def __init__(self, canvas: typing.Optional[QgsMapCanvas], zoomOut: bool) -> None: ...

    def deactivate(self) -> None: ...
    def keyReleaseEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def keyPressEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def canvasReleaseEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasPressEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def canvasMoveEvent(self, e: typing.Optional[QgsMapMouseEvent]) -> None: ...
    def flags(self) -> QgsMapTool.Flags: ...


class QgsMediaWidget(QtWidgets.QWidget):

    class Mode(int):
        Audio = ... # type: QgsMediaWidget.Mode
        Video = ... # type: QgsMediaWidget.Mode

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def mediaPlayer(self) -> typing.Optional[QtMultimedia.QMediaPlayer]: ...
    def setVideoHeight(self, height: int) -> None: ...
    def videoHeight(self) -> int: ...
    def setMode(self, mode: 'QgsMediaWidget.Mode') -> None: ...
    def mode(self) -> 'QgsMediaWidget.Mode': ...
    def setMediaPath(self, path: typing.Optional[str]) -> None: ...
    def mediaPath(self) -> str: ...


class QgsMenuHeader(QtWidgets.QWidget):

    def __init__(self, text: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def sizeHint(self) -> QtCore.QSize: ...
    def minimumSizeHint(self) -> QtCore.QSize: ...


class QgsMenuHeaderWidgetAction(QtWidgets.QWidgetAction):

    def __init__(self, text: typing.Optional[str], parent: typing.Optional[QtCore.QObject] = ...) -> None: ...


class QgsMessageBar(QtWidgets.QFrame):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def mousePressEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def pushCritical(self, title: typing.Optional[str], message: typing.Optional[str]) -> None: ...
    def pushWarning(self, title: typing.Optional[str], message: typing.Optional[str]) -> None: ...
    def pushInfo(self, title: typing.Optional[str], message: typing.Optional[str]) -> None: ...
    def pushSuccess(self, title: typing.Optional[str], message: typing.Optional[str]) -> None: ...
    def clearWidgets(self) -> bool: ...
    widgetRemoved: typing.ClassVar[QtCore.pyqtSignal]
    widgetAdded: typing.ClassVar[QtCore.pyqtSignal]
    @staticmethod
    def defaultMessageTimeout(level: _core.Qgis.MessageLevel = ...) -> int: ...
    def items(self) -> typing.List['QgsMessageBarItem']: ...
    def currentItem(self) -> typing.Optional['QgsMessageBarItem']: ...
    @typing.overload
    def pushMessage(self, text: typing.Optional[str], level: _core.Qgis.MessageLevel = ..., duration: int = ...) -> None: ...
    @typing.overload
    def pushMessage(self, title: typing.Optional[str], text: typing.Optional[str], level: _core.Qgis.MessageLevel = ..., duration: int = ...) -> None: ...
    @typing.overload
    def pushMessage(self, title: typing.Optional[str], text: typing.Optional[str], showMore: typing.Optional[str], level: _core.Qgis.MessageLevel = ..., duration: int = ...) -> None: ...
    @typing.overload
    @staticmethod
    def createMessage(text: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional['QgsMessageBarItem']: ...
    @typing.overload
    @staticmethod
    def createMessage(title: typing.Optional[str], text: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional['QgsMessageBarItem']: ...
    @typing.overload
    @staticmethod
    def createMessage(widget: typing.Optional[QtWidgets.QWidget], parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional['QgsMessageBarItem']: ...
    @typing.overload
    def popWidget(self, item: typing.Optional['QgsMessageBarItem']) -> bool: ...
    @typing.overload
    def popWidget(self) -> bool: ...
    def pushWidget(self, widget: typing.Optional[QtWidgets.QWidget], level: _core.Qgis.MessageLevel = ..., duration: int = ...) -> typing.Optional['QgsMessageBarItem']: ...
    def pushItem(self, item: typing.Optional['QgsMessageBarItem']) -> None: ...


class QgsMessageBarItem(QtWidgets.QWidget):

    @typing.overload
    def __init__(self, text: typing.Optional[str], level: _core.Qgis.MessageLevel = ..., duration: int = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    @typing.overload
    def __init__(self, title: typing.Optional[str], text: typing.Optional[str], level: _core.Qgis.MessageLevel = ..., duration: int = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    @typing.overload
    def __init__(self, title: typing.Optional[str], text: typing.Optional[str], widget: typing.Optional[QtWidgets.QWidget], level: _core.Qgis.MessageLevel = ..., duration: int = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    @typing.overload
    def __init__(self, widget: typing.Optional[QtWidgets.QWidget], level: _core.Qgis.MessageLevel = ..., duration: int = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    styleChanged: typing.ClassVar[QtCore.pyqtSignal]
    def dismiss(self) -> None: ...
    def getStyleSheet(self) -> str: ...
    def duration(self) -> int: ...
    def setDuration(self, duration: int) -> typing.Optional['QgsMessageBarItem']: ...
    def icon(self) -> QtGui.QIcon: ...
    def setIcon(self, icon: QtGui.QIcon) -> typing.Optional['QgsMessageBarItem']: ...
    def widget(self) -> typing.Optional[QtWidgets.QWidget]: ...
    def setWidget(self, widget: typing.Optional[QtWidgets.QWidget]) -> typing.Optional['QgsMessageBarItem']: ...
    def level(self) -> _core.Qgis.MessageLevel: ...
    def setLevel(self, level: _core.Qgis.MessageLevel) -> typing.Optional['QgsMessageBarItem']: ...
    def title(self) -> str: ...
    def setTitle(self, title: typing.Optional[str]) -> typing.Optional['QgsMessageBarItem']: ...
    def text(self) -> str: ...
    def setText(self, text: typing.Optional[str]) -> typing.Optional['QgsMessageBarItem']: ...


class QgsMessageLogViewer(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def eventFilter(self, obj: typing.Optional[QtCore.QObject], ev: typing.Optional[QtCore.QEvent]) -> bool: ...
    def reject(self) -> None: ...
    def closeEvent(self, e: typing.Optional[QtGui.QCloseEvent]) -> None: ...
    def logMessage(self, message: typing.Optional[str], tag: typing.Optional[str], level: _core.Qgis.MessageLevel) -> None: ...


class QgsMessageViewer(QtWidgets.QDialog, _core.QgsMessageOutput):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., deleteOnClose: bool = ...) -> None: ...

    def setCheckBoxQgsSettingsLabel(self, label: typing.Optional[str]) -> None: ...
    def checkBoxState(self) -> QtCore.Qt.CheckState: ...
    def setCheckBoxState(self, state: QtCore.Qt.CheckState) -> None: ...
    def setCheckBoxVisible(self, visible: bool) -> None: ...
    def setCheckBoxText(self, text: typing.Optional[str]) -> None: ...
    def setMessageAsPlainText(self, msg: typing.Optional[str]) -> None: ...
    def setMessageAsHtml(self, msg: typing.Optional[str]) -> None: ...
    def setTitle(self, title: typing.Optional[str]) -> None: ...
    def showMessage(self, blocking: bool = ...) -> None: ...
    def appendMessage(self, message: typing.Optional[str]) -> None: ...
    def setMessage(self, message: typing.Optional[str], msgType: _core.QgsMessageOutput.MessageType) -> None: ...


class QgsMetadataWidget(QtWidgets.QWidget):

    class Mode(int):
        LayerMetadata = ... # type: QgsMetadataWidget.Mode
        ProjectMetadata = ... # type: QgsMetadataWidget.Mode

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., layer: typing.Optional[_core.QgsMapLayer] = ...) -> None: ...

    titleChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setTitle(self, title: typing.Optional[str]) -> None: ...
    def title(self) -> str: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    @staticmethod
    def parseTypes() -> typing.Dict[str, str]: ...
    @staticmethod
    def parseMimeTypes() -> typing.List[str]: ...
    @staticmethod
    def parseLinkTypes() -> typing.List[str]: ...
    @staticmethod
    def parseLicenses() -> typing.List[str]: ...
    @staticmethod
    def parseLanguages() -> typing.Dict[str, str]: ...
    def acceptMetadata(self) -> None: ...
    def crsChanged(self) -> None: ...
    def checkMetadata(self) -> bool: ...
    def saveMetadata(self, metadata: typing.Optional[_core.QgsAbstractMetadataBase]) -> None: ...
    def metadata(self) -> typing.Optional[_core.QgsAbstractMetadataBase]: ...
    def setMetadata(self, metadata: typing.Optional[_core.QgsAbstractMetadataBase]) -> None: ...
    def mode(self) -> 'QgsMetadataWidget.Mode': ...
    def setMode(self, mode: 'QgsMetadataWidget.Mode') -> None: ...


class QgsNewAuxiliaryFieldDialog(QtWidgets.QDialog):

    def __init__(self, definition: _core.QgsPropertyDefinition, layer: typing.Optional[_core.QgsVectorLayer], nameOnly: bool = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def accept(self) -> None: ...
    def propertyDefinition(self) -> _core.QgsPropertyDefinition: ...


class QgsNewAuxiliaryLayerDialog(QtWidgets.QDialog):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def accept(self) -> None: ...


class QgsNewGeoPackageLayerDialog(QtWidgets.QDialog):

    class OverwriteBehavior(int):
        Prompt = ... # type: QgsNewGeoPackageLayerDialog.OverwriteBehavior
        Overwrite = ... # type: QgsNewGeoPackageLayerDialog.OverwriteBehavior
        AddNewLayer = ... # type: QgsNewGeoPackageLayerDialog.OverwriteBehavior

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def setAddToProject(self, addToProject: bool) -> None: ...
    def setOverwriteBehavior(self, behavior: 'QgsNewGeoPackageLayerDialog.OverwriteBehavior') -> None: ...
    def lockDatabasePath(self) -> None: ...
    def setDatabasePath(self, path: typing.Optional[str]) -> None: ...
    def databasePath(self) -> str: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...


class QgsNewVectorTableDialog(QtWidgets.QDialog):

    def __init__(self, conn: typing.Optional[_core.QgsAbstractDatabaseProviderConnection], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def showEvent(self, event: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def validationErrors(self) -> typing.List[str]: ...
    def createSpatialIndex(self) -> bool: ...
    def setFields(self, fields: _core.QgsFields) -> None: ...
    def geometryType(self) -> _core.Qgis.WkbType: ...
    def fields(self) -> _core.QgsFields: ...
    def geometryColumnName(self) -> str: ...
    def schemaName(self) -> str: ...
    def tableName(self) -> str: ...
    def crs(self) -> _core.QgsCoordinateReferenceSystem: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def setGeometryType(self, type: _core.Qgis.WkbType) -> None: ...
    def setTableName(self, name: typing.Optional[str]) -> None: ...
    def setSchemaName(self, name: typing.Optional[str]) -> None: ...


class QgsNewHttpConnection(QtWidgets.QDialog):

    class WfsVersionIndex(int):
        WFS_VERSION_MAX = ... # type: QgsNewHttpConnection.WfsVersionIndex
        WFS_VERSION_1_0 = ... # type: QgsNewHttpConnection.WfsVersionIndex
        WFS_VERSION_1_1 = ... # type: QgsNewHttpConnection.WfsVersionIndex
        WFS_VERSION_2_0 = ... # type: QgsNewHttpConnection.WfsVersionIndex
        WFS_VERSION_API_FEATURES_1_0 = ... # type: QgsNewHttpConnection.WfsVersionIndex

    class Flag(int):
        FlagShowTestConnection = ... # type: QgsNewHttpConnection.Flag
        FlagHideAuthenticationGroup = ... # type: QgsNewHttpConnection.Flag
        FlagShowHttpSettings = ... # type: QgsNewHttpConnection.Flag

    class ConnectionType(int):
        ConnectionWfs = ... # type: QgsNewHttpConnection.ConnectionType
        ConnectionWms = ... # type: QgsNewHttpConnection.ConnectionType
        ConnectionWcs = ... # type: QgsNewHttpConnection.ConnectionType
        ConnectionOther = ... # type: QgsNewHttpConnection.ConnectionType

    class ConnectionTypes(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsNewHttpConnection.ConnectionTypes', 'QgsNewHttpConnection.ConnectionType']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsNewHttpConnection.ConnectionTypes', 'QgsNewHttpConnection.ConnectionType']) -> 'QgsNewHttpConnection.ConnectionTypes': ...
        def __xor__(self, f: typing.Union['QgsNewHttpConnection.ConnectionTypes', 'QgsNewHttpConnection.ConnectionType']) -> 'QgsNewHttpConnection.ConnectionTypes': ...
        def __ior__(self, f: typing.Union['QgsNewHttpConnection.ConnectionTypes', 'QgsNewHttpConnection.ConnectionType']) -> 'QgsNewHttpConnection.ConnectionTypes': ...
        def __or__(self, f: typing.Union['QgsNewHttpConnection.ConnectionTypes', 'QgsNewHttpConnection.ConnectionType']) -> 'QgsNewHttpConnection.ConnectionTypes': ...
        def __iand__(self, f: typing.Union['QgsNewHttpConnection.ConnectionTypes', 'QgsNewHttpConnection.ConnectionType']) -> 'QgsNewHttpConnection.ConnectionTypes': ...
        def __and__(self, f: typing.Union['QgsNewHttpConnection.ConnectionTypes', 'QgsNewHttpConnection.ConnectionType']) -> 'QgsNewHttpConnection.ConnectionTypes': ...
        def __invert__(self) -> 'QgsNewHttpConnection.ConnectionTypes': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    class Flags(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsNewHttpConnection.Flags', 'QgsNewHttpConnection.Flag']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsNewHttpConnection.Flags', 'QgsNewHttpConnection.Flag']) -> 'QgsNewHttpConnection.Flags': ...
        def __xor__(self, f: typing.Union['QgsNewHttpConnection.Flags', 'QgsNewHttpConnection.Flag']) -> 'QgsNewHttpConnection.Flags': ...
        def __ior__(self, f: typing.Union['QgsNewHttpConnection.Flags', 'QgsNewHttpConnection.Flag']) -> 'QgsNewHttpConnection.Flags': ...
        def __or__(self, f: typing.Union['QgsNewHttpConnection.Flags', 'QgsNewHttpConnection.Flag']) -> 'QgsNewHttpConnection.Flags': ...
        def __iand__(self, f: typing.Union['QgsNewHttpConnection.Flags', 'QgsNewHttpConnection.Flag']) -> 'QgsNewHttpConnection.Flags': ...
        def __and__(self, f: typing.Union['QgsNewHttpConnection.Flags', 'QgsNewHttpConnection.Flag']) -> 'QgsNewHttpConnection.Flags': ...
        def __invert__(self) -> 'QgsNewHttpConnection.Flags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., types: typing.Union['QgsNewHttpConnection.ConnectionTypes', 'QgsNewHttpConnection.ConnectionType'] = ..., settingsKey: typing.Optional[str] = ..., connectionName: typing.Optional[str] = ..., flags: typing.Union['QgsNewHttpConnection.Flags', 'QgsNewHttpConnection.Flag'] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def updateServiceSpecificSettings(self) -> None: ...
    def wmsSettingsKey(self, base: typing.Optional[str], connectionName: typing.Optional[str]) -> str: ...
    def wfsSettingsKey(self, base: typing.Optional[str], connectionName: typing.Optional[str]) -> str: ...
    def testConnectButton(self) -> typing.Optional[QtWidgets.QPushButton]: ...
    def validate(self) -> bool: ...
    def accept(self) -> None: ...
    def url(self) -> str: ...
    def name(self) -> str: ...


class QgsNewMemoryLayerDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def accept(self) -> None: ...
    def fields(self) -> _core.QgsFields: ...
    def layerName(self) -> str: ...
    def crs(self) -> _core.QgsCoordinateReferenceSystem: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def selectedType(self) -> _core.Qgis.WkbType: ...
    @staticmethod
    def runAndCreateLayer(parent: typing.Optional[QtWidgets.QWidget] = ..., defaultCrs: _core.QgsCoordinateReferenceSystem = ...) -> typing.Optional[_core.QgsVectorLayer]: ...


class QgsNewNameDialog(QgsDialog):

    def __init__(self, source: typing.Optional[str] = ..., initial: typing.Optional[str] = ..., extensions: typing.Iterable[typing.Optional[str]] = ..., existing: typing.Iterable[typing.Optional[str]] = ..., cs: QtCore.Qt.CaseSensitivity = ..., parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    @staticmethod
    def matching(newNames: typing.Iterable[typing.Optional[str]], existingNames: typing.Iterable[typing.Optional[str]], cs: QtCore.Qt.CaseSensitivity = ...) -> typing.List[str]: ...
    @staticmethod
    def fullNames(name: typing.Optional[str], extensions: typing.Iterable[typing.Optional[str]]) -> typing.List[str]: ...
    def highlightText(self, text: typing.Optional[str]) -> str: ...
    def nameChanged(self) -> None: ...
    newNameChanged: typing.ClassVar[QtCore.pyqtSignal]
    @staticmethod
    def exists(name: typing.Optional[str], extensions: typing.Iterable[typing.Optional[str]], existing: typing.Iterable[typing.Optional[str]], cs: QtCore.Qt.CaseSensitivity = ...) -> bool: ...
    def name(self) -> str: ...
    def setRegularExpression(self, expression: typing.Optional[str]) -> None: ...
    def conflictingNameWarning(self) -> str: ...
    def setConflictingNameWarning(self, string: typing.Optional[str]) -> None: ...
    def allowEmptyName(self) -> bool: ...
    def setAllowEmptyName(self, allowed: bool) -> None: ...
    def overwriteEnabled(self) -> bool: ...
    def setOverwriteEnabled(self, enabled: bool) -> None: ...
    def hintString(self) -> str: ...
    def setHintString(self, hintString: typing.Optional[str]) -> None: ...


class QgsNewVectorLayerDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def accept(self) -> None: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def crs(self) -> _core.QgsCoordinateReferenceSystem: ...
    def setFilename(self, filename: typing.Optional[str]) -> None: ...
    def filename(self) -> str: ...
    def selectedFileEncoding(self) -> str: ...
    def selectedFileFormat(self) -> str: ...
    def attributes(self, at: typing.Iterable[typing.Tuple[typing.Optional[str], typing.Optional[str]]]) -> None: ...
    def selectedType(self) -> _core.Qgis.WkbType: ...
    @staticmethod
    def execAndCreateLayer(parent: typing.Optional[QtWidgets.QWidget] = ..., initialPath: typing.Optional[str] = ..., crs: _core.QgsCoordinateReferenceSystem = ...) -> typing.Tuple[str, str, typing.Optional[str]]: ...
    @staticmethod
    def runAndCreateLayer(parent: typing.Optional[QtWidgets.QWidget] = ..., enc: typing.Optional[typing.Optional[str]] = ..., crs: _core.QgsCoordinateReferenceSystem = ..., initialPath: typing.Optional[str] = ...) -> str: ...


class QgsOpacityWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    opacityChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setOpacity(self, opacity: float) -> None: ...
    def opacity(self) -> float: ...


class QgsOptionsDialogHighlightWidget(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self, widget: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsOptionsDialogHighlightWidget') -> None: ...

    def reset(self) -> None: ...
    def highlightText(self, text: typing.Optional[str]) -> bool: ...
    def searchText(self, text: typing.Optional[str]) -> bool: ...
    def widget(self) -> typing.Optional[QtWidgets.QWidget]: ...
    def searchHighlight(self, text: typing.Optional[str]) -> bool: ...
    def isValid(self) -> bool: ...
    @staticmethod
    def createWidget(widget: typing.Optional[QtWidgets.QWidget]) -> typing.Optional['QgsOptionsDialogHighlightWidget']: ...


class QgsOptionsDialogHighlightLabel(QgsOptionsDialogHighlightWidget):

    @typing.overload
    def __init__(self, label: typing.Optional[QtWidgets.QLabel]) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsOptionsDialogHighlightLabel') -> None: ...

    def reset(self) -> None: ...
    def highlightText(self, text: typing.Optional[str]) -> bool: ...
    def searchText(self, text: typing.Optional[str]) -> bool: ...


class QgsOptionsDialogHighlightCheckBox(QgsOptionsDialogHighlightWidget):

    @typing.overload
    def __init__(self, checkBox: typing.Optional[QtWidgets.QCheckBox]) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsOptionsDialogHighlightCheckBox') -> None: ...

    def reset(self) -> None: ...
    def highlightText(self, text: typing.Optional[str]) -> bool: ...
    def searchText(self, text: typing.Optional[str]) -> bool: ...


class QgsOptionsDialogHighlightButton(QgsOptionsDialogHighlightWidget):

    @typing.overload
    def __init__(self, button: typing.Optional[QtWidgets.QAbstractButton]) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsOptionsDialogHighlightButton') -> None: ...

    def reset(self) -> None: ...
    def highlightText(self, text: typing.Optional[str]) -> bool: ...
    def searchText(self, text: typing.Optional[str]) -> bool: ...


class QgsOptionsDialogHighlightGroupBox(QgsOptionsDialogHighlightWidget):

    @typing.overload
    def __init__(self, groupBox: typing.Optional[QtWidgets.QGroupBox]) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsOptionsDialogHighlightGroupBox') -> None: ...

    def reset(self) -> None: ...
    def highlightText(self, text: typing.Optional[str]) -> bool: ...
    def searchText(self, text: typing.Optional[str]) -> bool: ...


class QgsOptionsDialogHighlightTree(QgsOptionsDialogHighlightWidget):

    @typing.overload
    def __init__(self, treeView: typing.Optional[QtWidgets.QTreeView]) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsOptionsDialogHighlightTree') -> None: ...

    def reset(self) -> None: ...
    def highlightText(self, text: typing.Optional[str]) -> bool: ...
    def searchText(self, text: typing.Optional[str]) -> bool: ...


class QgsOptionsDialogHighlightTable(QgsOptionsDialogHighlightWidget):

    @typing.overload
    def __init__(self, tableView: typing.Optional[QtWidgets.QTableView]) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsOptionsDialogHighlightTable') -> None: ...

    def reset(self) -> None: ...
    def highlightText(self, text: typing.Optional[str]) -> bool: ...
    def searchText(self, text: typing.Optional[str]) -> bool: ...


class QgsOptionsPageWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def registerHighlightWidget(self, highlightWidget: typing.Optional[QgsOptionsDialogHighlightWidget]) -> None: ...
    def cancel(self) -> None: ...
    def apply(self) -> None: ...
    def isValid(self) -> bool: ...
    def helpKey(self) -> str: ...


class QgsOptionsWidgetFactory(QtCore.QObject):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, title: typing.Optional[str], icon: QtGui.QIcon, key: typing.Optional[str] = ...) -> None: ...

    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QgsOptionsPageWidget]: ...
    def path(self) -> typing.List[str]: ...
    def pagePositionHint(self) -> str: ...
    def setKey(self, key: typing.Optional[str]) -> None: ...
    def key(self) -> str: ...
    def setTitle(self, title: typing.Optional[str]) -> None: ...
    def title(self) -> str: ...
    def setIcon(self, icon: QtGui.QIcon) -> None: ...
    def icon(self) -> QtGui.QIcon: ...


class QgsOrderByDialog(QtWidgets.QDialog):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def eventFilter(self, obj: typing.Optional[QtCore.QObject], e: typing.Optional[QtCore.QEvent]) -> bool: ...
    def orderBy(self) -> _core.QgsFeatureRequest.OrderBy: ...
    def setOrderBy(self, orderBy: _core.QgsFeatureRequest.OrderBy) -> None: ...


class QgsOWSSourceSelect(QgsAbstractDataSourceWidget):

    class SupportedFormat(PyQt5.sip.wrapper):

        format = ... # type: typing.Optional[str]
        label = ... # type: typing.Optional[str]

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsOWSSourceSelect.SupportedFormat') -> None: ...

    def __init__(self, service: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., widgetMode: _core.QgsProviderRegistry.WidgetMode = ...) -> None: ...

    def prepareExtent(self) -> None: ...
    def selectedCacheLoadControl(self) -> QtNetwork.QNetworkRequest.CacheLoadControl: ...
    def selectedTime(self) -> str: ...
    def selectedCrs(self) -> str: ...
    def selectedFormat(self) -> str: ...
    def enableLayersForCrs(self, item: typing.Optional[QtWidgets.QTreeWidgetItem]) -> None: ...
    def descriptionForAuthId(self, authId: typing.Optional[str]) -> str: ...
    def populateLayerList(self) -> None: ...
    def addDefaultServers(self) -> None: ...
    def setConnectionListPosition(self) -> None: ...
    def connectionInfo(self) -> str: ...
    def connName(self) -> str: ...
    def clearTimes(self) -> None: ...
    def populateTimes(self) -> None: ...
    def clearCrs(self) -> None: ...
    def populateCrs(self) -> None: ...
    def clearFormats(self) -> None: ...
    def populateFormats(self) -> None: ...
    def populateConnectionList(self) -> None: ...
    def selectedLayersTimes(self) -> typing.List[str]: ...
    def selectedLayersCrses(self) -> typing.List[str]: ...
    def selectedLayersFormats(self) -> typing.List[str]: ...
    def providerFormats(self) -> typing.List['QgsOWSSourceSelect.SupportedFormat']: ...
    def showStatusMessage(self, message: typing.Optional[str]) -> None: ...
    def showError(self, title: typing.Optional[str], format: typing.Optional[str], error: typing.Optional[str]) -> None: ...
    def setMapCanvas(self, mapCanvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def reset(self) -> None: ...
    def refresh(self) -> None: ...


class QgsPanelWidgetWrapper(QgsPanelWidget):

    def __init__(self, widget: typing.Optional[QtWidgets.QWidget], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def widget(self) -> typing.Optional[QtWidgets.QWidget]: ...


class QgsPanelWidgetStack(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def keyPressEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def mouseReleaseEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def closePanel(self, panel: typing.Optional[QgsPanelWidget]) -> None: ...
    def showPanel(self, panel: typing.Optional[QgsPanelWidget]) -> None: ...
    def acceptAllPanels(self) -> None: ...
    def acceptCurrentPanel(self) -> None: ...
    def minimumSizeHint(self) -> QtCore.QSize: ...
    def sizeHint(self) -> QtCore.QSize: ...
    def currentPanel(self) -> typing.Optional[QgsPanelWidget]: ...
    def clear(self) -> None: ...
    def takeMainPanel(self) -> typing.Optional[QgsPanelWidget]: ...
    def mainPanel(self) -> typing.Optional[QgsPanelWidget]: ...
    def setMainPanel(self, panel: typing.Optional[QgsPanelWidget]) -> None: ...


class QgsPasswordLineEdit(QtWidgets.QLineEdit):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., passwordVisible: bool = ...) -> None: ...

    def setPasswordVisibility(self, visible: bool) -> None: ...
    def showLockIcon(self) -> bool: ...
    def setShowLockIcon(self, visible: bool) -> None: ...


class QgsPixmapLabel(QtWidgets.QLabel):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def clear(self) -> None: ...
    def resizeEvent(self, a0: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def setPixmap(self, a0: QtGui.QPixmap) -> None: ...
    def sizeHint(self) -> QtCore.QSize: ...
    def heightForWidth(self, width: int) -> int: ...


class QgsPluginManagerInterface(QtCore.QObject):

    def __init__(self) -> None: ...

    def pushMessage(self, text: typing.Optional[str], level: _core.Qgis.MessageLevel = ..., duration: int = ...) -> None: ...
    def showPluginManager(self, tabIndex: int = ...) -> None: ...
    def addToRepositoryList(self, repository: typing.Dict[typing.Optional[str], typing.Optional[str]]) -> None: ...
    def clearRepositoryList(self) -> None: ...
    def pluginMetadata(self, key: typing.Optional[str]) -> typing.Optional[typing.Dict[str, str]]: ...
    def reloadModel(self) -> None: ...
    def addPluginMetadata(self, metadata: typing.Dict[typing.Optional[str], typing.Optional[str]]) -> None: ...
    def clearPythonPluginMetadata(self) -> None: ...


class QgsPointCloudAttributeComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setAttribute(self, name: typing.Optional[str]) -> None: ...
    def setLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    attributeChanged: typing.ClassVar[QtCore.pyqtSignal]
    def attributes(self) -> _core.QgsPointCloudAttributeCollection: ...
    def setAttributes(self, attributes: _core.QgsPointCloudAttributeCollection) -> None: ...
    def layer(self) -> typing.Optional[_core.QgsPointCloudLayer]: ...
    def currentAttribute(self) -> str: ...
    def allowEmptyAttributeName(self) -> bool: ...
    def setAllowEmptyAttributeName(self, allowEmpty: bool) -> None: ...
    def filters(self) -> _core.QgsPointCloudAttributeProxyModel.Filters: ...
    def setFilters(self, filters: typing.Union[_core.QgsPointCloudAttributeProxyModel.Filters, _core.QgsPointCloudAttributeProxyModel.Filter]) -> None: ...


class QgsSubsetStringEditorInterface(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def setSubsetString(self, subsetString: typing.Optional[str]) -> None: ...
    def subsetString(self) -> str: ...


class QgsPointCloudQueryBuilder(QgsSubsetStringEditorInterface):

    def __init__(self, layer: typing.Optional[_core.QgsPointCloudLayer], parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def reject(self) -> None: ...
    def accept(self) -> None: ...
    def setSubsetString(self, subsetString: typing.Optional[str]) -> None: ...
    def subsetString(self) -> str: ...
    def showEvent(self, event: typing.Optional[QtGui.QShowEvent]) -> None: ...


class QgsPresetColorRampWidget(QgsPanelWidget):

    def __init__(self, ramp: _core.QgsPresetSchemeColorRamp, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def setRamp(self, ramp: _core.QgsPresetSchemeColorRamp) -> None: ...
    def ramp(self) -> _core.QgsPresetSchemeColorRamp: ...


class QgsPresetColorRampDialog(QtWidgets.QDialog):

    def __init__(self, ramp: _core.QgsPresetSchemeColorRamp, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def buttonBox(self) -> typing.Optional[QtWidgets.QDialogButtonBox]: ...
    def setRamp(self, ramp: _core.QgsPresetSchemeColorRamp) -> None: ...
    def ramp(self) -> _core.QgsPresetSchemeColorRamp: ...


class QgsPreviewEffect(QtWidgets.QGraphicsEffect):

    class PreviewMode(int):
        PreviewGrayscale = ... # type: QgsPreviewEffect.PreviewMode
        PreviewMono = ... # type: QgsPreviewEffect.PreviewMode
        PreviewProtanope = ... # type: QgsPreviewEffect.PreviewMode
        PreviewDeuteranope = ... # type: QgsPreviewEffect.PreviewMode
        PreviewTritanope = ... # type: QgsPreviewEffect.PreviewMode

    def __init__(self, parent: typing.Optional[QtCore.QObject]) -> None: ...

    def draw(self, painter: typing.Optional[QtGui.QPainter]) -> None: ...
    def mode(self) -> 'QgsPreviewEffect.PreviewMode': ...
    def setMode(self, mode: 'QgsPreviewEffect.PreviewMode') -> None: ...


class QgsCrsSelectionWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    hasValidSelectionChanged: typing.ClassVar[QtCore.pyqtSignal]
    crsDoubleClicked: typing.ClassVar[QtCore.pyqtSignal]
    crsChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setOgcWmsCrsFilter(self, crsFilter: typing.Iterable[typing.Optional[str]]) -> None: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def hasValidSelection(self) -> bool: ...
    def setNotSetText(self, text: typing.Optional[str], description: typing.Optional[str] = ...) -> None: ...
    def showNoCrs(self) -> bool: ...
    def setShowNoCrs(self, show: bool) -> None: ...
    def setMessage(self, message: typing.Optional[str]) -> None: ...
    def crs(self) -> _core.QgsCoordinateReferenceSystem: ...


class QgsProjectionSelectionDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def setOgcWmsCrsFilter(self, crsFilter: typing.Iterable[typing.Optional[str]]) -> None: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def hasValidSelection(self) -> bool: ...
    def setRequireValidSelection(self) -> None: ...
    def setNotSetText(self, text: typing.Optional[str], description: typing.Optional[str] = ...) -> None: ...
    def showNoProjection(self) -> bool: ...
    def setShowNoProjection(self, show: bool) -> None: ...
    def showNoCrsForLayerMessage(self) -> None: ...
    def setMessage(self, message: typing.Optional[str]) -> None: ...
    def crs(self) -> _core.QgsCoordinateReferenceSystem: ...


class QgsProjectionSelectionTreeWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., filters: typing.Union[QgsCoordinateReferenceSystemProxyModel.Filters, QgsCoordinateReferenceSystemProxyModel.Filter] = ...) -> None: ...

    def eventFilter(self, obj: typing.Optional[QtCore.QObject], ev: typing.Optional[QtCore.QEvent]) -> bool: ...
    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    hasValidSelectionChanged: typing.ClassVar[QtCore.pyqtSignal]
    projectionDoubleClicked: typing.ClassVar[QtCore.pyqtSignal]
    initialized: typing.ClassVar[QtCore.pyqtSignal]
    crsSelected: typing.ClassVar[QtCore.pyqtSignal]
    def clearRecentCrs(self) -> None: ...
    def pushProjectionToFront(self) -> None: ...
    def setOgcWmsCrsFilter(self, crsFilter: typing.Iterable[typing.Optional[str]]) -> None: ...
    def setPreviewRect(self, rect: _core.QgsRectangle) -> None: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def setFilters(self, filters: typing.Union[QgsCoordinateReferenceSystemProxyModel.Filters, QgsCoordinateReferenceSystemProxyModel.Filter]) -> None: ...
    def filters(self) -> QgsCoordinateReferenceSystemProxyModel.Filters: ...
    def previewRect(self) -> _core.QgsRectangle: ...
    def hasValidSelection(self) -> bool: ...
    def showBoundsMap(self) -> bool: ...
    def setNotSetText(self, text: typing.Optional[str]) -> None: ...
    def showNoProjection(self) -> bool: ...
    def setShowBoundsMap(self, show: bool) -> None: ...
    def setShowNoProjection(self, show: bool) -> None: ...
    def crs(self) -> _core.QgsCoordinateReferenceSystem: ...


class QgsProjectionSelectionWidget(QtWidgets.QWidget):

    class CrsOption(int):
        LayerCrs = ... # type: QgsProjectionSelectionWidget.CrsOption
        ProjectCrs = ... # type: QgsProjectionSelectionWidget.CrsOption
        CurrentCrs = ... # type: QgsProjectionSelectionWidget.CrsOption
        DefaultCrs = ... # type: QgsProjectionSelectionWidget.CrsOption
        RecentCrs = ... # type: QgsProjectionSelectionWidget.CrsOption
        CrsNotSet = ... # type: QgsProjectionSelectionWidget.CrsOption

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def dropEvent(self, event: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def dragLeaveEvent(self, event: typing.Optional[QtGui.QDragLeaveEvent]) -> None: ...
    def dragEnterEvent(self, event: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    def selectCrs(self) -> None: ...
    def setLayerCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    cleared: typing.ClassVar[QtCore.pyqtSignal]
    crsChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setFilter(self, crses: typing.Iterable[_core.QgsCoordinateReferenceSystem]) -> None: ...
    def dialogTitle(self) -> str: ...
    def setDialogTitle(self, title: typing.Optional[str]) -> None: ...
    def sourceEnsemble(self) -> str: ...
    def setSourceEnsemble(self, ensemble: typing.Optional[str]) -> None: ...
    def setShowAccuracyWarnings(self, show: bool) -> None: ...
    def showAccuracyWarnings(self) -> bool: ...
    def setMessage(self, text: typing.Optional[str]) -> None: ...
    def setNotSetText(self, text: typing.Optional[str]) -> None: ...
    def optionVisible(self, option: 'QgsProjectionSelectionWidget.CrsOption') -> bool: ...
    def setOptionVisible(self, option: 'QgsProjectionSelectionWidget.CrsOption', visible: bool) -> None: ...
    def crs(self) -> _core.QgsCoordinateReferenceSystem: ...


class QgsProjectStorageGuiProvider(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsProjectStorageGuiProvider') -> None: ...

    def showSaveGui(self) -> str: ...
    def showLoadGui(self) -> str: ...
    def visibleName(self) -> str: ...
    def type(self) -> str: ...


class QgsProjectStorageGuiRegistry(PyQt5.sip.wrapper):

    def __init__(self) -> None: ...

    def initializeFromProviderGuiRegistry(self, providerGuiRegistry: typing.Optional['QgsProviderGuiRegistry']) -> None: ...
    def unregisterProjectStorage(self, storage: typing.Optional[QgsProjectStorageGuiProvider]) -> None: ...
    def registerProjectStorage(self, storage: typing.Optional[QgsProjectStorageGuiProvider]) -> None: ...
    def projectStorages(self) -> typing.List[QgsProjectStorageGuiProvider]: ...
    def projectStorageFromUri(self, uri: typing.Optional[str]) -> typing.Optional[QgsProjectStorageGuiProvider]: ...
    def projectStorageFromType(self, type: typing.Optional[str]) -> typing.Optional[QgsProjectStorageGuiProvider]: ...


class QgsPropertyAssistantWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., definition: _core.QgsPropertyDefinition = ..., initialState: _core.QgsProperty = ..., layer: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...

    def setDockMode(self, dockMode: bool) -> None: ...
    def updateProperty(self, property: _core.QgsProperty) -> None: ...
    def registerExpressionContextGenerator(self, generator: typing.Optional[_core.QgsExpressionContextGenerator]) -> None: ...


class QgsPropertyOverrideButton(QtWidgets.QToolButton):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., layer: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...

    def mouseReleaseEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    createAuxiliaryField: typing.ClassVar[QtCore.pyqtSignal]
    activated: typing.ClassVar[QtCore.pyqtSignal]
    changed: typing.ClassVar[QtCore.pyqtSignal]
    def menuActionTriggered(self, action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def aboutToShowMenu(self) -> None: ...
    def setActive(self, active: bool) -> None: ...
    def updateFieldLists(self) -> None: ...
    def registerLinkedWidget(self, widget: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def registerExpressionContextGenerator(self, generator: typing.Optional[_core.QgsExpressionContextGenerator]) -> None: ...
    def registerExpressionWidget(self, widget: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def registerVisibleWidget(self, widget: typing.Optional[QtWidgets.QWidget], natural: bool = ...) -> None: ...
    def registerEnabledWidget(self, widget: typing.Optional[QtWidgets.QWidget], natural: bool = ...) -> None: ...
    def registerCheckedWidget(self, widget: typing.Optional[QtWidgets.QWidget], natural: bool = ...) -> None: ...
    def vectorLayer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def setVectorLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def setUsageInfo(self, info: typing.Optional[str]) -> None: ...
    def usageInfo(self) -> str: ...
    def fullDescription(self) -> str: ...
    def validDataType(self) -> _core.QgsPropertyDefinition.DataType: ...
    def isActive(self) -> bool: ...
    def propertyKey(self) -> int: ...
    def setToProperty(self, property: _core.QgsProperty) -> None: ...
    def toProperty(self) -> _core.QgsProperty: ...
    @typing.overload
    def init(self, propertyKey: int, property: _core.QgsProperty, definitions: typing.Dict[int, _core.QgsPropertyDefinition], layer: typing.Optional[_core.QgsVectorLayer] = ..., auxiliaryStorageEnabled: bool = ...) -> None: ...
    @typing.overload
    def init(self, propertyKey: int, property: _core.QgsProperty, definition: _core.QgsPropertyDefinition, layer: typing.Optional[_core.QgsVectorLayer] = ..., auxiliaryStorageEnabled: bool = ...) -> None: ...
    @typing.overload
    def init(self, propertyKey: int, collection: _core.QgsAbstractPropertyCollection, definitions: typing.Dict[int, _core.QgsPropertyDefinition], layer: typing.Optional[_core.QgsVectorLayer] = ..., auxiliaryStorageEnabled: bool = ...) -> None: ...


class QgsProviderConnectionComboBox(QtWidgets.QComboBox):

    def __init__(self, provider: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    connectionChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setConnection(self, connection: typing.Optional[str]) -> None: ...
    def currentConnectionUri(self) -> str: ...
    def currentConnection(self) -> str: ...
    def allowEmptyConnection(self) -> bool: ...
    def setAllowEmptyConnection(self, allowEmpty: bool) -> None: ...
    def setProvider(self, provider: typing.Optional[str]) -> None: ...


class QgsProviderGuiMetadata(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self, key: typing.Optional[str]) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsProviderGuiMetadata') -> None: ...

    def key(self) -> str: ...
    def mapLayerConfigWidgetFactories(self) -> typing.List[QgsMapLayerConfigWidgetFactory]: ...
    def sourceWidgetProviders(self) -> typing.List['QgsProviderSourceWidgetProvider']: ...
    def subsetStringEditorProviders(self) -> typing.List['QgsSubsetStringEditorProvider']: ...
    def sourceSelectProviders(self) -> typing.List['QgsSourceSelectProvider']: ...
    def projectStorageGuiProviders(self) -> typing.List[QgsProjectStorageGuiProvider]: ...
    def dataItemGuiProviders(self) -> typing.List[QgsDataItemGuiProvider]: ...
    def registerGui(self, widget: typing.Optional[QtWidgets.QMainWindow]) -> None: ...


class QgsProviderGuiRegistry(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self, pluginPath: typing.Optional[str]) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsProviderGuiRegistry') -> None: ...

    def mapLayerConfigWidgetFactories(self, layer: typing.Optional[_core.QgsMapLayer] = ...) -> typing.List[QgsMapLayerConfigWidgetFactory]: ...
    def sourceWidgetProviders(self, providerKey: typing.Optional[str]) -> typing.List['QgsProviderSourceWidgetProvider']: ...
    def subsetStringEditorProviders(self, providerKey: typing.Optional[str]) -> typing.List['QgsSubsetStringEditorProvider']: ...
    def projectStorageGuiProviders(self, providerKey: typing.Optional[str]) -> typing.List[QgsProjectStorageGuiProvider]: ...
    def sourceSelectProviders(self, providerKey: typing.Optional[str]) -> typing.List['QgsSourceSelectProvider']: ...
    def dataItemGuiProviders(self, providerKey: typing.Optional[str]) -> typing.List[QgsDataItemGuiProvider]: ...
    def registerGuis(self, widget: typing.Optional[QtWidgets.QMainWindow]) -> None: ...
    def providerMetadata(self, providerKey: typing.Optional[str]) -> typing.Optional[QgsProviderGuiMetadata]: ...
    def providerList(self) -> typing.List[str]: ...


class QgsProviderSourceWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    validChanged: typing.ClassVar[QtCore.pyqtSignal]
    def mapCanvas(self) -> typing.Optional[QgsMapCanvas]: ...
    def setMapCanvas(self, mapCanvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def sourceUri(self) -> str: ...
    def setSourceUri(self, uri: typing.Optional[str]) -> None: ...


class QgsProviderSourceWidgetProvider(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsProviderSourceWidgetProvider') -> None: ...

    def createWidget(self, layer: typing.Optional[_core.QgsMapLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QgsProviderSourceWidget]: ...
    def canHandleLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> bool: ...
    def name(self) -> str: ...
    def providerKey(self) -> str: ...


class QgsProviderSourceWidgetProviderRegistry(PyQt5.sip.wrapper):

    def __init__(self) -> None: ...

    def createWidget(self, layer: typing.Optional[_core.QgsMapLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QgsProviderSourceWidget]: ...
    def providersByKey(self, providerKey: typing.Optional[str]) -> typing.List[QgsProviderSourceWidgetProvider]: ...
    def providerByName(self, name: typing.Optional[str]) -> typing.Optional[QgsProviderSourceWidgetProvider]: ...
    def initializeFromProviderGuiRegistry(self, providerGuiRegistry: typing.Optional[QgsProviderGuiRegistry]) -> None: ...
    def removeProvider(self, provider: typing.Optional[QgsProviderSourceWidgetProvider]) -> bool: ...
    def addProvider(self, provider: typing.Optional[QgsProviderSourceWidgetProvider]) -> None: ...
    def providers(self) -> typing.List[QgsProviderSourceWidgetProvider]: ...


class QgsProviderSublayerDialogModel(_core.QgsProviderSublayerModel):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def setGeometryTypesResolved(self, resolved: bool) -> None: ...
    def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlags: ...
    def data(self, index: QtCore.QModelIndex, role: int) -> typing.Any: ...


class QgsProviderSublayersDialog(QtWidgets.QDialog):

    def __init__(self, uri: typing.Optional[str], providerKey: typing.Optional[str], filePath: typing.Optional[str], initialDetails: typing.Iterable[_core.QgsProviderSublayerDetails] = ..., acceptableTypes: typing.Iterable[_core.Qgis.LayerType] = ..., parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    layersAdded: typing.ClassVar[QtCore.pyqtSignal]
    def setGroupName(self, groupNameIn: typing.Optional[str]) -> None: ...
    def groupName(self) -> str: ...
    def selectedNonLayerItems(self) -> typing.List[_core.QgsProviderSublayerModel.NonLayerItem]: ...
    def selectedLayers(self) -> typing.List[_core.QgsProviderSublayerDetails]: ...
    def setNonLayerItems(self, items: typing.Iterable[_core.QgsProviderSublayerModel.NonLayerItem]) -> None: ...


class QgsProxyStyle(QtWidgets.QProxyStyle):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget]) -> None: ...


class QgsQueryBuilder(QgsSubsetStringEditorInterface):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def setDatasourceDescription(self, uri: typing.Optional[str]) -> None: ...
    def loadQuery(self) -> None: ...
    def saveQuery(self) -> None: ...
    def test(self) -> None: ...
    def clear(self) -> None: ...
    def reject(self) -> None: ...
    def accept(self) -> None: ...
    @staticmethod
    def loadQueryFromFile(subset: typing.Optional[str]) -> bool: ...
    @staticmethod
    def saveQueryToFile(subset: typing.Optional[str]) -> bool: ...
    def codeEditorWidget(self) -> typing.Optional['QgsCodeEditor']: ...
    def setSubsetString(self, subsetString: typing.Optional[str]) -> None: ...
    def subsetString(self) -> str: ...
    def setSql(self, sqlStatement: typing.Optional[str]) -> None: ...
    def sql(self) -> str: ...
    def showEvent(self, event: typing.Optional[QtGui.QShowEvent]) -> None: ...


class QgsQueryResultWidget(QtWidgets.QWidget):

    class QueryWidgetMode(int):
        SqlQueryMode = ... # type: QgsQueryResultWidget.QueryWidgetMode
        QueryLayerUpdateMode = ... # type: QgsQueryResultWidget.QueryWidgetMode

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., connection: typing.Optional[_core.QgsAbstractDatabaseProviderConnection] = ...) -> None: ...

    firstResultBatchFetched: typing.ClassVar[QtCore.pyqtSignal]
    createSqlVectorLayer: typing.ClassVar[QtCore.pyqtSignal]
    @typing.overload
    def copyResults(self) -> None: ...
    @typing.overload
    def copyResults(self, fromRow: int, toRow: int, fromColumn: int, toColumn: int) -> None: ...
    def tokensReady(self, tokens: typing.Iterable[typing.Optional[str]]) -> None: ...
    def showError(self, title: typing.Optional[str], message: typing.Optional[str], isSqlError: bool = ...) -> None: ...
    def executeQuery(self) -> None: ...
    def notify(self, title: typing.Optional[str], text: typing.Optional[str], level: _core.Qgis.MessageLevel = ...) -> None: ...
    def setQuery(self, sql: typing.Optional[str]) -> None: ...
    def setConnection(self, connection: typing.Optional[_core.QgsAbstractDatabaseProviderConnection]) -> None: ...
    def setWidgetMode(self, widgetMode: 'QgsQueryResultWidget.QueryWidgetMode') -> None: ...
    def setSqlVectorLayerOptions(self, options: _core.QgsAbstractDatabaseProviderConnection.SqlVectorLayerOptions) -> None: ...


class QgsRangeSlider(QtWidgets.QWidget):

    @typing.overload
    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    @typing.overload
    def __init__(self, orientation: QtCore.Qt.Orientation, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    rangeLimitsChanged: typing.ClassVar[QtCore.pyqtSignal]
    rangeChanged: typing.ClassVar[QtCore.pyqtSignal]
    def event(self, event: typing.Optional[QtCore.QEvent]) -> bool: ...
    def setPageStep(self, step: int) -> None: ...
    def setSingleStep(self, step: int) -> None: ...
    def setRange(self, lower: int, upper: int) -> None: ...
    def setUpperValue(self, value: int) -> None: ...
    def setLowerValue(self, value: int) -> None: ...
    def setRangeLimits(self, minimum: int, maximum: int) -> None: ...
    def setMinimum(self, minimum: int) -> None: ...
    def setMaximum(self, maximum: int) -> None: ...
    def pageStep(self) -> int: ...
    def singleStep(self) -> int: ...
    def minimumSizeHint(self) -> QtCore.QSize: ...
    def sizeHint(self) -> QtCore.QSize: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def mouseReleaseEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def setFlippedDirection(self, flipped: bool) -> None: ...
    def flippedDirection(self) -> bool: ...
    def orientation(self) -> QtCore.Qt.Orientation: ...
    def setOrientation(self, orientation: QtCore.Qt.Orientation) -> None: ...
    def tickInterval(self) -> int: ...
    def setTickInterval(self, interval: int) -> None: ...
    def tickPosition(self) -> QtWidgets.QSlider.TickPosition: ...
    def setTickPosition(self, position: QtWidgets.QSlider.TickPosition) -> None: ...
    def upperValue(self) -> int: ...
    def lowerValue(self) -> int: ...
    def maximum(self) -> int: ...
    def minimum(self) -> int: ...


class QgsRasterFormatSaveOptionsWidget(QtWidgets.QWidget):

    class Type(int):
        Default = ... # type: QgsRasterFormatSaveOptionsWidget.Type
        Full = ... # type: QgsRasterFormatSaveOptionsWidget.Type
        Table = ... # type: QgsRasterFormatSaveOptionsWidget.Type
        LineEdit = ... # type: QgsRasterFormatSaveOptionsWidget.Type
        ProfileLineEdit = ... # type: QgsRasterFormatSaveOptionsWidget.Type

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., format: typing.Optional[str] = ..., type: 'QgsRasterFormatSaveOptionsWidget.Type' = ..., provider: typing.Optional[str] = ...) -> None: ...

    optionsChanged: typing.ClassVar[QtCore.pyqtSignal]
    def showEvent(self, event: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def updateProfiles(self) -> None: ...
    def validateOptions(self, gui: bool = ..., reportOk: bool = ...) -> str: ...
    def helpOptions(self) -> None: ...
    def apply(self) -> None: ...
    def setPyramidsFormat(self, format: _core.Qgis.RasterPyramidFormat) -> None: ...
    def setType(self, type: 'QgsRasterFormatSaveOptionsWidget.Type' = ...) -> None: ...
    def setOptions(self, options: typing.Optional[str]) -> None: ...
    def options(self) -> typing.List[str]: ...
    def setRasterFileName(self, file: typing.Optional[str]) -> None: ...
    def setRasterLayer(self, rasterLayer: typing.Optional[_core.QgsRasterLayer]) -> None: ...
    def setProvider(self, provider: typing.Optional[str]) -> None: ...
    def setFormat(self, format: typing.Optional[str]) -> None: ...


class QgsRasterLayerSaveAsDialog(QtWidgets.QDialog):

    class ResolutionState(int):
        OriginalResolution = ... # type: QgsRasterLayerSaveAsDialog.ResolutionState
        UserResolution = ... # type: QgsRasterLayerSaveAsDialog.ResolutionState

    class CrsState(int):
        OriginalCrs = ... # type: QgsRasterLayerSaveAsDialog.CrsState
        CurrentCrs = ... # type: QgsRasterLayerSaveAsDialog.CrsState
        UserCrs = ... # type: QgsRasterLayerSaveAsDialog.CrsState

    class Mode(int):
        RawDataMode = ... # type: QgsRasterLayerSaveAsDialog.Mode
        RenderedImageMode = ... # type: QgsRasterLayerSaveAsDialog.Mode

    def __init__(self, rasterLayer: typing.Optional[_core.QgsRasterLayer], sourceProvider: typing.Optional[_core.QgsRasterDataProvider], currentExtent: _core.QgsRectangle, layerCrs: _core.QgsCoordinateReferenceSystem, currentCrs: _core.QgsCoordinateReferenceSystem, parent: typing.Optional[QtWidgets.QWidget] = ..., f: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def accept(self) -> None: ...
    def hideOutput(self) -> None: ...
    def hideFormat(self) -> None: ...
    def pyramidsConfigOptions(self) -> typing.List[str]: ...
    def pyramidsFormat(self) -> _core.Qgis.RasterPyramidFormat: ...
    def pyramidsResamplingMethod(self) -> str: ...
    def buildPyramidsFlag(self) -> _core.Qgis.RasterBuildPyramidOption: ...
    def pyramidsList(self) -> typing.List[int]: ...
    def noData(self) -> typing.List[_core.QgsRasterRange]: ...
    def outputRectangle(self) -> _core.QgsRectangle: ...
    def createOptions(self) -> typing.List[str]: ...
    def outputCrs(self) -> _core.QgsCoordinateReferenceSystem: ...
    def outputFormat(self) -> str: ...
    def outputLayerName(self) -> str: ...
    def outputFileName(self) -> str: ...
    def setAddToCanvas(self, checked: bool) -> None: ...
    def addToCanvas(self) -> bool: ...
    def tileMode(self) -> bool: ...
    def maximumTileSizeY(self) -> int: ...
    def maximumTileSizeX(self) -> int: ...
    def yResolution(self) -> float: ...
    def xResolution(self) -> float: ...
    def nRows(self) -> int: ...
    def nColumns(self) -> int: ...
    def mode(self) -> 'QgsRasterLayerSaveAsDialog.Mode': ...


class QgsRasterPyramidsOptionsWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., provider: typing.Optional[str] = ...) -> None: ...

    someValueChanged: typing.ClassVar[QtCore.pyqtSignal]
    overviewListChanged: typing.ClassVar[QtCore.pyqtSignal]
    def checkAllLevels(self, checked: bool) -> None: ...
    def apply(self) -> None: ...
    def setRasterFileName(self, file: typing.Optional[str]) -> None: ...
    def setRasterLayer(self, rasterLayer: typing.Optional[_core.QgsRasterLayer]) -> None: ...
    def resamplingMethod(self) -> str: ...
    def pyramidsFormat(self) -> _core.Qgis.RasterPyramidFormat: ...
    def overviewList(self) -> typing.List[int]: ...
    def createOptionsWidget(self) -> typing.Optional[QgsRasterFormatSaveOptionsWidget]: ...
    def configOptions(self) -> typing.List[str]: ...


class QgsRatioLockButton(QtWidgets.QToolButton):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def changeEvent(self, e: typing.Optional[QtCore.QEvent]) -> None: ...
    lockChanged: typing.ClassVar[QtCore.pyqtSignal]
    def resetRatio(self) -> None: ...
    def setHeightSpinBox(self, widget: typing.Optional[QtWidgets.QDoubleSpinBox]) -> None: ...
    def setWidthSpinBox(self, widget: typing.Optional[QtWidgets.QDoubleSpinBox]) -> None: ...
    def locked(self) -> bool: ...
    def setLocked(self, locked: bool) -> None: ...


class QgsAbstractRelationEditorWidget(QtWidgets.QWidget):

    def __init__(self, config: typing.Dict[str, typing.Any], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def afterSetRelations(self) -> None: ...
    def beforeSetRelations(self, newRelation: _core.QgsRelation, newNmRelation: _core.QgsRelation) -> None: ...
    def afterSetRelationFeature(self) -> None: ...
    def beforeSetRelationFeature(self, newRelation: _core.QgsRelation, newFeature: _core.QgsFeature) -> None: ...
    def setTitle(self, title: typing.Optional[str]) -> None: ...
    def updateUi(self) -> None: ...
    def unlinkFeatures(self, fids: typing.Any) -> None: ...
    def deleteFeatures(self, fids: typing.Any) -> None: ...
    def updateTitle(self) -> None: ...
    def showEvent(self, a0: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def duplicateFeatures(self, fids: typing.Any) -> None: ...
    def duplicateFeature(self, fid: int) -> None: ...
    def unlinkFeature(self, fid: int = ...) -> None: ...
    def onLinkFeatureDlgAccepted(self) -> None: ...
    def linkFeature(self) -> None: ...
    def deleteFeature(self, fid: int = ...) -> None: ...
    def addFeature(self, geometry: _core.QgsGeometry = ...) -> typing.Any: ...
    def saveEdits(self) -> None: ...
    def toggleEditing(self, state: bool) -> None: ...
    def parentFormValueChanged(self, attribute: typing.Optional[str], newValue: typing.Any) -> None: ...
    relatedFeaturesChanged: typing.ClassVar[QtCore.pyqtSignal]
    def multiEditModeActive(self) -> bool: ...
    def setConfig(self, config: typing.Dict[str, typing.Any]) -> None: ...
    def config(self) -> typing.Dict[str, typing.Any]: ...
    def setForceSuppressFormPopup(self, forceSuppressFormPopup: bool) -> None: ...
    def forceSuppressFormPopup(self) -> bool: ...
    def features(self) -> typing.List[_core.QgsFeature]: ...
    def feature(self) -> _core.QgsFeature: ...
    def setLabel(self, label: typing.Optional[str] = ...) -> None: ...
    def label(self) -> str: ...
    def setNmRelationId(self, nmRelationId: typing.Any = ...) -> None: ...
    def nmRelationId(self) -> typing.Any: ...
    def setShowLabel(self, showLabel: bool) -> None: ...
    def showLabel(self) -> bool: ...
    def editorContext(self) -> QgsAttributeEditorContext: ...
    def setEditorContext(self, context: QgsAttributeEditorContext) -> None: ...
    def setMultiEditFeatureIds(self, fids: typing.Any) -> None: ...
    def setFeature(self, feature: _core.QgsFeature, update: bool = ...) -> None: ...
    def nmRelation(self) -> _core.QgsRelation: ...
    def relation(self) -> _core.QgsRelation: ...
    def setRelations(self, relation: _core.QgsRelation, nmrelation: _core.QgsRelation) -> None: ...
    def setRelationFeature(self, relation: _core.QgsRelation, feature: _core.QgsFeature) -> None: ...


class QgsRelationEditorWidget(QgsAbstractRelationEditorWidget):

    class Button(int):
        NoButton = ... # type: QgsRelationEditorWidget.Button
        Link = ... # type: QgsRelationEditorWidget.Button
        Unlink = ... # type: QgsRelationEditorWidget.Button
        SaveChildEdits = ... # type: QgsRelationEditorWidget.Button
        AddChildFeature = ... # type: QgsRelationEditorWidget.Button
        DuplicateChildFeature = ... # type: QgsRelationEditorWidget.Button
        DeleteChildFeature = ... # type: QgsRelationEditorWidget.Button
        ZoomToChildFeature = ... # type: QgsRelationEditorWidget.Button
        AllButtons = ... # type: QgsRelationEditorWidget.Button

    class Buttons(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsRelationEditorWidget.Buttons', 'QgsRelationEditorWidget.Button']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsRelationEditorWidget.Buttons', 'QgsRelationEditorWidget.Button']) -> 'QgsRelationEditorWidget.Buttons': ...
        def __xor__(self, f: typing.Union['QgsRelationEditorWidget.Buttons', 'QgsRelationEditorWidget.Button']) -> 'QgsRelationEditorWidget.Buttons': ...
        def __ior__(self, f: typing.Union['QgsRelationEditorWidget.Buttons', 'QgsRelationEditorWidget.Button']) -> 'QgsRelationEditorWidget.Buttons': ...
        def __or__(self, f: typing.Union['QgsRelationEditorWidget.Buttons', 'QgsRelationEditorWidget.Button']) -> 'QgsRelationEditorWidget.Buttons': ...
        def __iand__(self, f: typing.Union['QgsRelationEditorWidget.Buttons', 'QgsRelationEditorWidget.Button']) -> 'QgsRelationEditorWidget.Buttons': ...
        def __and__(self, f: typing.Union['QgsRelationEditorWidget.Buttons', 'QgsRelationEditorWidget.Button']) -> 'QgsRelationEditorWidget.Buttons': ...
        def __invert__(self) -> 'QgsRelationEditorWidget.Buttons': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, config: typing.Dict[str, typing.Any], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def afterSetRelations(self) -> None: ...
    def beforeSetRelations(self, newRelation: _core.QgsRelation, newNmRelation: _core.QgsRelation) -> None: ...
    def afterSetRelationFeature(self) -> None: ...
    def beforeSetRelationFeature(self, newRelation: _core.QgsRelation, newFeature: _core.QgsFeature) -> None: ...
    def updateUi(self) -> None: ...
    def parentFormValueChanged(self, attribute: typing.Optional[str], newValue: typing.Any) -> None: ...
    def setConfig(self, config: typing.Dict[str, typing.Any]) -> None: ...
    def config(self) -> typing.Dict[str, typing.Any]: ...
    def zoomToSelectedFeatures(self) -> None: ...
    def deleteSelectedFeatures(self) -> None: ...
    def unlinkSelectedFeatures(self) -> None: ...
    def duplicateSelectedFeatures(self) -> None: ...
    def duplicateFeature(self) -> None: ...
    def visibleButtons(self) -> 'QgsRelationEditorWidget.Buttons': ...
    def setVisibleButtons(self, buttons: typing.Union['QgsRelationEditorWidget.Buttons', 'QgsRelationEditorWidget.Button']) -> None: ...
    def setEditorContext(self, context: QgsAttributeEditorContext) -> None: ...
    def featureSelectionManager(self) -> typing.Optional['QgsIFeatureSelectionManager']: ...
    def viewMode(self) -> 'QgsDualView.ViewMode': ...
    def setViewMode(self, mode: 'QgsDualView.ViewMode') -> None: ...


class QgsAbstractRelationEditorConfigWidget(QtWidgets.QWidget):

    def __init__(self, relation: _core.QgsRelation, parent: typing.Optional[QtWidgets.QWidget]) -> None: ...

    def nmRelation(self) -> _core.QgsRelation: ...
    def setNmRelation(self, nmRelation: _core.QgsRelation) -> None: ...
    def relation(self) -> _core.QgsRelation: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def setConfig(self, config: typing.Dict[str, typing.Any]) -> None: ...
    def config(self) -> typing.Dict[str, typing.Any]: ...


class QgsRelationEditorConfigWidget(QgsAbstractRelationEditorConfigWidget):

    def __init__(self, relation: _core.QgsRelation, parent: typing.Optional[QtWidgets.QWidget]) -> None: ...

    def setConfig(self, config: typing.Dict[str, typing.Any]) -> None: ...
    def config(self) -> typing.Dict[str, typing.Any]: ...


class QgsAbstractRelationEditorWidgetFactory(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsAbstractRelationEditorWidgetFactory') -> None: ...

    def configWidget(self, relation: _core.QgsRelation, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QgsAbstractRelationEditorConfigWidget]: ...
    def create(self, config: typing.Dict[str, typing.Any], parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QgsAbstractRelationEditorWidget]: ...
    def name(self) -> str: ...
    def type(self) -> str: ...


class QgsRelationWidgetRegistry(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsRelationWidgetRegistry') -> None: ...

    def defaultWidgetType(self) -> str: ...
    def setDefaultWidgetType(self, widgetType: typing.Optional[str]) -> None: ...
    def createConfigWidget(self, widgetType: typing.Optional[str], relation: _core.QgsRelation, parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QgsAbstractRelationEditorConfigWidget]: ...
    def create(self, widgetType: typing.Optional[str], config: typing.Dict[str, typing.Any], parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QgsAbstractRelationEditorWidget]: ...
    def factories(self) -> typing.Any: ...
    def relationWidgetNames(self) -> typing.List[str]: ...
    def removeRelationWidget(self, widgetType: typing.Optional[str]) -> None: ...
    def addRelationWidget(self, widgetFactory: typing.Optional[QgsAbstractRelationEditorWidgetFactory]) -> None: ...


class QgsRichTextEditor(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def focusInEvent(self, event: typing.Optional[QtGui.QFocusEvent]) -> None: ...
    textChanged: typing.ClassVar[QtCore.pyqtSignal]
    def clearSource(self) -> None: ...
    def setText(self, text: typing.Optional[str]) -> None: ...
    def setTextCursor(self, cursor: QtGui.QTextCursor) -> None: ...
    def textCursor(self) -> QtGui.QTextCursor: ...
    def document(self) -> typing.Optional[QtGui.QTextDocument]: ...
    def toHtml(self) -> str: ...
    def toPlainText(self) -> str: ...


class QgsRubberBand(QgsMapCanvasItem):

    class IconType(int):
        ICON_NONE = ... # type: QgsRubberBand.IconType
        ICON_CROSS = ... # type: QgsRubberBand.IconType
        ICON_X = ... # type: QgsRubberBand.IconType
        ICON_BOX = ... # type: QgsRubberBand.IconType
        ICON_CIRCLE = ... # type: QgsRubberBand.IconType
        ICON_FULL_BOX = ... # type: QgsRubberBand.IconType
        ICON_DIAMOND = ... # type: QgsRubberBand.IconType
        ICON_FULL_DIAMOND = ... # type: QgsRubberBand.IconType
        ICON_SVG = ... # type: QgsRubberBand.IconType

    def __init__(self, mapCanvas: typing.Optional[QgsMapCanvas], geometryType: _core.Qgis.GeometryType = ...) -> None: ...

    def updateRect(self) -> None: ...
    @typing.overload
    def drawShape(self, p: typing.Optional[QtGui.QPainter], pts: typing.Iterable[typing.Union[QtCore.QPointF, QtCore.QPoint]]) -> None: ...
    @typing.overload
    def drawShape(self, p: typing.Optional[QtGui.QPainter], rings: typing.Iterable[QtGui.QPolygonF]) -> None: ...
    def paint(self, p: typing.Optional[QtGui.QPainter]) -> None: ...
    def setSymbol(self, symbol: typing.Optional[_core.QgsSymbol]) -> None: ...
    def symbol(self) -> typing.Optional[_core.QgsSymbol]: ...
    def updatePosition(self) -> None: ...
    def asGeometry(self) -> _core.QgsGeometry: ...
    def getPoint(self, i: int, j: int = ..., ringIndex: int = ...) -> typing.Optional[_core.QgsPointXY]: ...
    def numberOfVertices(self) -> int: ...
    def size(self) -> int: ...
    def setTranslationOffset(self, dx: float, dy: float) -> None: ...
    @typing.overload
    def addGeometry(self, geometry: _core.QgsGeometry, layer: typing.Optional[_core.QgsMapLayer], doUpdate: bool = ...) -> None: ...
    @typing.overload
    def addGeometry(self, geometry: _core.QgsGeometry, crs: _core.QgsCoordinateReferenceSystem = ..., doUpdate: bool = ...) -> None: ...
    def copyPointsFrom(self, other: typing.Optional['QgsRubberBand']) -> None: ...
    def setToCanvasRectangle(self, rect: QtCore.QRect) -> None: ...
    @typing.overload
    def setToGeometry(self, geom: _core.QgsGeometry, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    @typing.overload
    def setToGeometry(self, geometry: _core.QgsGeometry, crs: _core.QgsCoordinateReferenceSystem = ...) -> None: ...
    def partSize(self, geometryIndex: int) -> int: ...
    @typing.overload
    def movePoint(self, p: _core.QgsPointXY, geometryIndex: int = ..., ringIndex: int = ...) -> None: ...
    @typing.overload
    def movePoint(self, index: int, p: _core.QgsPointXY, geometryIndex: int = ..., ringIndex: int = ...) -> None: ...
    def removeLastPoint(self, geometryIndex: int = ..., doUpdate: bool = ..., ringIndex: int = ...) -> None: ...
    def removePoint(self, index: int = ..., doUpdate: bool = ..., geometryIndex: int = ..., ringIndex: int = ...) -> None: ...
    def closePoints(self, doUpdate: bool = ..., geometryIndex: int = ..., ringIndex: int = ...) -> None: ...
    def addPoint(self, p: _core.QgsPointXY, doUpdate: bool = ..., geometryIndex: int = ..., ringIndex: int = ...) -> None: ...
    def reset(self, geometryType: _core.Qgis.GeometryType = ...) -> None: ...
    def setBrushStyle(self, brushStyle: QtCore.Qt.BrushStyle) -> None: ...
    def setLineStyle(self, penStyle: QtCore.Qt.PenStyle) -> None: ...
    def iconSize(self) -> int: ...
    def setIconSize(self, iconSize: int) -> None: ...
    def icon(self) -> 'QgsRubberBand.IconType': ...
    def setSvgIcon(self, path: typing.Optional[str], drawOffset: QtCore.QPoint) -> None: ...
    def setIcon(self, icon: 'QgsRubberBand.IconType') -> None: ...
    def width(self) -> int: ...
    def setWidth(self, width: int) -> None: ...
    def secondaryStrokeColor(self) -> QtGui.QColor: ...
    def setSecondaryStrokeColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def strokeColor(self) -> QtGui.QColor: ...
    def setStrokeColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def fillColor(self) -> QtGui.QColor: ...
    def setFillColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...


class QgsScaleComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def showPopup(self) -> None: ...
    def setNull(self) -> None: ...
    def setMinScale(self, scale: float) -> None: ...
    def setScale(self, scale: float) -> None: ...
    def updateScales(self, scales: typing.Iterable[typing.Optional[str]] = ...) -> None: ...
    scaleChanged: typing.ClassVar[QtCore.pyqtSignal]
    def allowNull(self) -> bool: ...
    def setAllowNull(self, allowNull: bool) -> None: ...
    @staticmethod
    def toDouble(string: typing.Optional[str]) -> typing.Tuple[float, typing.Optional[bool]]: ...
    @staticmethod
    def toString(scale: float) -> str: ...
    def minScale(self) -> float: ...
    def isNull(self) -> bool: ...
    def scale(self) -> float: ...
    def setScaleString(self, string: typing.Optional[str]) -> bool: ...
    def scaleString(self) -> str: ...


class QgsScaleRangeWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    rangeChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setScaleRange(self, min: float, max: float) -> None: ...
    def setMaximumScale(self, scale: float) -> None: ...
    def setMinimumScale(self, scale: float) -> None: ...
    def reloadProjectScales(self) -> None: ...
    def maximumScale(self) -> float: ...
    def minimumScale(self) -> float: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...


class QgsScaleVisibilityDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., title: typing.Optional[str] = ..., mapCanvas: typing.Optional[QgsMapCanvas] = ...) -> None: ...

    def setMaximumScale(self, scale: float) -> None: ...
    def setMinimumScale(self, scale: float) -> None: ...
    def setScaleVisiblity(self, hasScaleVisibility: bool) -> None: ...
    def maximumScale(self) -> float: ...
    def minimumScale(self) -> float: ...
    def hasScaleVisibility(self) -> bool: ...


class QgsScaleWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    scaleChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setNull(self) -> None: ...
    def setMinScale(self, scale: float) -> None: ...
    def setScaleFromCanvas(self) -> None: ...
    def updateScales(self, scales: typing.Iterable[typing.Optional[str]] = ...) -> None: ...
    def setScale(self, scale: float) -> None: ...
    def allowNull(self) -> bool: ...
    def setAllowNull(self, allowNull: bool) -> None: ...
    @staticmethod
    def toDouble(scaleString: typing.Optional[str]) -> typing.Tuple[float, typing.Optional[bool]]: ...
    @staticmethod
    def toString(scale: float) -> str: ...
    def minScale(self) -> float: ...
    def isNull(self) -> bool: ...
    def scale(self) -> float: ...
    def setScaleString(self, string: typing.Optional[str]) -> bool: ...
    def scaleString(self) -> str: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def showCurrentScaleButton(self) -> bool: ...
    def setShowCurrentScaleButton(self, showCurrentScaleButton: bool) -> None: ...


class QgsScreenHelper(QtCore.QObject):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget]) -> None: ...

    def eventFilter(self, watched: typing.Optional[QtCore.QObject], event: typing.Optional[QtCore.QEvent]) -> bool: ...
    availableGeometryChanged: typing.ClassVar[QtCore.pyqtSignal]
    screenDpiChanged: typing.ClassVar[QtCore.pyqtSignal]
    def availableGeometry(self) -> QtCore.QRect: ...
    def screenDpi(self) -> float: ...
    def windowHandle(self) -> typing.Optional[QtGui.QWindow]: ...
    def screen(self) -> typing.Optional[QtGui.QScreen]: ...


class QgsScrollArea(QtWidgets.QScrollArea):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def wheelEvent(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def setVerticalOnly(self, verticalOnly: bool) -> None: ...
    def hasScrolled(self) -> bool: ...
    def scrollOccurred(self) -> None: ...


class QgsSearchQueryBuilder(QtWidgets.QDialog):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def loadQuery(self) -> None: ...
    def saveQuery(self) -> None: ...
    def setSearchString(self, searchString: typing.Optional[str]) -> None: ...
    def searchString(self) -> str: ...


class QgsSubsetStringEditorProvider(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsSubsetStringEditorProvider') -> None: ...

    def createDialog(self, layer: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> typing.Optional[QgsSubsetStringEditorInterface]: ...
    def canHandleLayerStorageType(self, layer: typing.Optional[_core.QgsVectorLayer]) -> bool: ...
    def canHandleLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> bool: ...
    def name(self) -> str: ...
    def providerKey(self) -> str: ...


class QgsSubsetStringEditorProviderRegistry(PyQt5.sip.wrapper):

    def __init__(self) -> None: ...

    def createDialog(self, layer: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> typing.Optional[QgsSubsetStringEditorInterface]: ...
    def providersByKey(self, providerKey: typing.Optional[str]) -> typing.List[QgsSubsetStringEditorProvider]: ...
    def providerByName(self, name: typing.Optional[str]) -> typing.Optional[QgsSubsetStringEditorProvider]: ...
    def initializeFromProviderGuiRegistry(self, providerGuiRegistry: typing.Optional[QgsProviderGuiRegistry]) -> None: ...
    def removeProvider(self, provider: typing.Optional[QgsSubsetStringEditorProvider]) -> bool: ...
    def addProvider(self, provider: typing.Optional[QgsSubsetStringEditorProvider]) -> None: ...
    def providers(self) -> typing.List[QgsSubsetStringEditorProvider]: ...


class QgsShortcutsManager(QtCore.QObject):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ..., settingsRoot: typing.Optional[str] = ...) -> None: ...

    def objectForSettingKey(self, name: typing.Optional[str]) -> typing.Optional[QtCore.QObject]: ...
    def objectSettingKey(self, object: typing.Optional[QtCore.QObject]) -> str: ...
    def settingsPath(self) -> str: ...
    def shortcutByName(self, name: typing.Optional[str]) -> typing.Optional[QtWidgets.QShortcut]: ...
    def actionByName(self, name: typing.Optional[str]) -> typing.Optional[QtWidgets.QAction]: ...
    def shortcutForSequence(self, sequence: typing.Union[QtGui.QKeySequence, QtGui.QKeySequence.StandardKey, typing.Optional[str], int]) -> typing.Optional[QtWidgets.QShortcut]: ...
    def actionForSequence(self, sequence: typing.Union[QtGui.QKeySequence, QtGui.QKeySequence.StandardKey, typing.Optional[str], int]) -> typing.Optional[QtWidgets.QAction]: ...
    def objectForSequence(self, sequence: typing.Union[QtGui.QKeySequence, QtGui.QKeySequence.StandardKey, typing.Optional[str], int]) -> typing.Optional[QtCore.QObject]: ...
    def setObjectKeySequence(self, object: typing.Optional[QtCore.QObject], sequence: typing.Optional[str]) -> bool: ...
    @typing.overload
    def setKeySequence(self, name: typing.Optional[str], sequence: typing.Optional[str]) -> bool: ...
    @typing.overload
    def setKeySequence(self, action: typing.Optional[QtWidgets.QAction], sequence: typing.Optional[str]) -> bool: ...
    @typing.overload
    def setKeySequence(self, shortcut: typing.Optional[QtWidgets.QShortcut], sequence: typing.Optional[str]) -> bool: ...
    @typing.overload
    def defaultKeySequence(self, action: typing.Optional[QtWidgets.QAction]) -> str: ...
    @typing.overload
    def defaultKeySequence(self, shortcut: typing.Optional[QtWidgets.QShortcut]) -> str: ...
    def objectDefaultKeySequence(self, object: typing.Optional[QtCore.QObject]) -> str: ...
    def listAll(self) -> typing.List[QtCore.QObject]: ...
    def listShortcuts(self) -> typing.List[QtWidgets.QShortcut]: ...
    def listActions(self) -> typing.List[QtWidgets.QAction]: ...
    def unregisterShortcut(self, shortcut: typing.Optional[QtWidgets.QShortcut]) -> bool: ...
    def unregisterAction(self, action: typing.Optional[QtWidgets.QAction]) -> bool: ...
    def registerShortcut(self, shortcut: typing.Optional[QtWidgets.QShortcut], defaultSequence: typing.Optional[str] = ..., section: typing.Optional[str] = ...) -> bool: ...
    def registerAction(self, action: typing.Optional[QtWidgets.QAction], defaultShortcut: typing.Optional[str] = ..., section: typing.Optional[str] = ...) -> bool: ...
    def registerAllChildShortcuts(self, object: typing.Optional[QtCore.QObject], recursive: bool = ..., section: typing.Optional[str] = ...) -> None: ...
    def registerAllChildActions(self, object: typing.Optional[QtCore.QObject], recursive: bool = ..., section: typing.Optional[str] = ...) -> None: ...
    def registerAllChildren(self, object: typing.Optional[QtCore.QObject], recursive: bool = ..., section: typing.Optional[str] = ...) -> None: ...


class QgsSlider(QtWidgets.QSlider):

    @typing.overload
    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    @typing.overload
    def __init__(self, orientation: QtCore.Qt.Orientation, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    valueChanged: typing.ClassVar[QtCore.pyqtSignal]
    def variantValue(self) -> typing.Any: ...
    def setValue(self, value: typing.Any) -> None: ...
    def setSingleStep(self, step: typing.Any) -> None: ...
    def setMaximum(self, max: typing.Any) -> None: ...
    def setMinimum(self, min: typing.Any) -> None: ...


class QgsSnapIndicator(PyQt5.sip.wrapper):

    def __init__(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...

    def isVisible(self) -> bool: ...
    def setVisible(self, visible: bool = ...) -> None: ...
    def match(self) -> _core.QgsPointLocator.Match: ...
    def setMatch(self, match: _core.QgsPointLocator.Match) -> None: ...


class QgsSnapToGridCanvasItem(QgsMapCanvasItem):

    def __init__(self, mapCanvas: typing.Optional[QgsMapCanvas]) -> None: ...

    def setEnabled(self, enabled: bool) -> None: ...
    def enabled(self) -> bool: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def crs(self) -> _core.QgsCoordinateReferenceSystem: ...
    def setPrecision(self, precision: float) -> None: ...
    def precision(self) -> float: ...
    def setPoint(self, point: _core.QgsPointXY) -> None: ...
    def point(self) -> _core.QgsPointXY: ...
    def paint(self, painter: typing.Optional[QtGui.QPainter]) -> None: ...


class QgsSourceSelectProvider(PyQt5.sip.wrapper):

    class Ordering(int):
        OrderLocalProvider = ... # type: QgsSourceSelectProvider.Ordering
        OrderDatabaseProvider = ... # type: QgsSourceSelectProvider.Ordering
        OrderRemoteProvider = ... # type: QgsSourceSelectProvider.Ordering
        OrderSearchProvider = ... # type: QgsSourceSelectProvider.Ordering
        OrderOtherProvider = ... # type: QgsSourceSelectProvider.Ordering

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsSourceSelectProvider') -> None: ...

    def createDataSourceWidget(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., widgetMode: _core.QgsProviderRegistry.WidgetMode = ...) -> typing.Optional[QgsAbstractDataSourceWidget]: ...
    def ordering(self) -> int: ...
    def icon(self) -> QtGui.QIcon: ...
    def toolTip(self) -> str: ...
    def text(self) -> str: ...
    def name(self) -> str: ...
    def providerKey(self) -> str: ...


class QgsSourceSelectProviderRegistry(QtCore.QObject):

    def __init__(self) -> None: ...

    providerRemoved: typing.ClassVar[QtCore.pyqtSignal]
    providerAdded: typing.ClassVar[QtCore.pyqtSignal]
    def createSelectionWidget(self, name: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget], fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType], widgetMode: _core.QgsProviderRegistry.WidgetMode) -> typing.Optional[QgsAbstractDataSourceWidget]: ...
    def providersByKey(self, providerKey: typing.Optional[str]) -> typing.List[QgsSourceSelectProvider]: ...
    def providerByName(self, name: typing.Optional[str]) -> typing.Optional[QgsSourceSelectProvider]: ...
    def initializeFromProviderGuiRegistry(self, providerGuiRegistry: typing.Optional[QgsProviderGuiRegistry]) -> None: ...
    def removeProvider(self, provider: typing.Optional[QgsSourceSelectProvider]) -> bool: ...
    def addProvider(self, provider: typing.Optional[QgsSourceSelectProvider]) -> None: ...
    def providers(self) -> typing.List[QgsSourceSelectProvider]: ...


class QgsStatusBar(QtWidgets.QWidget):

    class Anchor(int):
        AnchorLeft = ... # type: QgsStatusBar.Anchor
        AnchorRight = ... # type: QgsStatusBar.Anchor

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def changeEvent(self, event: typing.Optional[QtCore.QEvent]) -> None: ...
    def setParentStatusBar(self, statusBar: typing.Optional[QtWidgets.QStatusBar]) -> None: ...
    def clearMessage(self) -> None: ...
    def showMessage(self, message: typing.Optional[str], timeout: int = ...) -> None: ...
    def currentMessage(self) -> str: ...
    def removeWidget(self, widget: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def addPermanentWidget(self, widget: typing.Optional[QtWidgets.QWidget], stretch: int = ..., anchor: 'QgsStatusBar.Anchor' = ...) -> None: ...


class QgsStyleItemsListWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget]) -> None: ...

    saveEntity: typing.ClassVar[QtCore.pyqtSignal]
    selectionChangedWithStylePath: typing.ClassVar[QtCore.pyqtSignal]
    selectionChanged: typing.ClassVar[QtCore.pyqtSignal]
    def showEvent(self, event: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def currentEntityType(self) -> _core.QgsStyle.StyleEntity: ...
    def currentItemName(self) -> str: ...
    def currentTagFilter(self) -> str: ...
    def setLayerType(self, type: _core.Qgis.GeometryType) -> None: ...
    def setSymbolType(self, type: _core.Qgis.SymbolType) -> None: ...
    def setEntityType(self, type: _core.QgsStyle.StyleEntity) -> None: ...
    def setStyle(self, style: typing.Optional[_core.QgsStyle]) -> None: ...


class QgsSublayersDialog(QtWidgets.QDialog):

    class ProviderType(int):
        Ogr = ... # type: QgsSublayersDialog.ProviderType
        Gdal = ... # type: QgsSublayersDialog.ProviderType
        Vsifile = ... # type: QgsSublayersDialog.ProviderType
        Mdal = ... # type: QgsSublayersDialog.ProviderType

    class PromptMode(int):
        PromptAlways = ... # type: QgsSublayersDialog.PromptMode
        PromptIfNeeded = ... # type: QgsSublayersDialog.PromptMode
        PromptNever = ... # type: QgsSublayersDialog.PromptMode
        PromptLoadAll = ... # type: QgsSublayersDialog.PromptMode

    class LayerDefinition(PyQt5.sip.wrapper):

        count = ... # type: int
        description = ... # type: typing.Optional[str]
        layerId = ... # type: int
        layerName = ... # type: typing.Optional[str]
        type = ... # type: typing.Optional[str]

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsSublayersDialog.LayerDefinition') -> None: ...

    def __init__(self, providerType: 'QgsSublayersDialog.ProviderType', name: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., dataSourceUri: typing.Optional[str] = ...) -> None: ...

    def exec(self) -> int: ...
    def countColumn(self) -> int: ...
    def addToGroupCheckbox(self) -> bool: ...
    def showAddToGroupCheckbox(self) -> bool: ...
    def setShowAddToGroupCheckbox(self, showAddToGroupCheckbox: bool) -> None: ...
    def selection(self) -> typing.List['QgsSublayersDialog.LayerDefinition']: ...
    def populateLayerTable(self, list: typing.Iterable['QgsSublayersDialog.LayerDefinition']) -> None: ...


class QgsSubstitutionListWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    substitutionsChanged: typing.ClassVar[QtCore.pyqtSignal]
    def substitutions(self) -> _core.QgsStringReplacementCollection: ...
    def setSubstitutions(self, substitutions: _core.QgsStringReplacementCollection) -> None: ...


class QgsSubstitutionListDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def substitutions(self) -> _core.QgsStringReplacementCollection: ...
    def setSubstitutions(self, substitutions: _core.QgsStringReplacementCollection) -> None: ...


class QgsSymbolButton(QtWidgets.QToolButton):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., dialogTitle: typing.Optional[str] = ...) -> None: ...

    def wheelEvent(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def dropEvent(self, e: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def dragLeaveEvent(self, e: typing.Optional[QtGui.QDragLeaveEvent]) -> None: ...
    def dragEnterEvent(self, e: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    def keyPressEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def mouseReleaseEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def changeEvent(self, e: typing.Optional[QtCore.QEvent]) -> None: ...
    changed: typing.ClassVar[QtCore.pyqtSignal]
    def setToDefaultSymbol(self) -> None: ...
    def setToNull(self) -> None: ...
    def setShowNull(self, showNull: bool) -> None: ...
    def pasteColor(self) -> None: ...
    def copyColor(self) -> None: ...
    def pasteSymbol(self) -> None: ...
    def copySymbol(self) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setSymbol(self, symbol: typing.Optional[_core.QgsSymbol]) -> None: ...
    def isNull(self) -> bool: ...
    def showNull(self) -> bool: ...
    def defaultSymbol(self) -> typing.Optional[_core.QgsSymbol]: ...
    def setDefaultSymbol(self, symbol: typing.Optional[_core.QgsSymbol]) -> None: ...
    def registerExpressionContextGenerator(self, generator: typing.Optional[_core.QgsExpressionContextGenerator]) -> None: ...
    def setLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def messageBar(self) -> typing.Optional[QgsMessageBar]: ...
    def setMessageBar(self, bar: typing.Optional[QgsMessageBar]) -> None: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def mapCanvas(self) -> typing.Optional[QgsMapCanvas]: ...
    def symbol(self) -> typing.Optional[_core.QgsSymbol]: ...
    def dialogTitle(self) -> str: ...
    def setDialogTitle(self, title: typing.Optional[str]) -> None: ...
    def symbolType(self) -> _core.Qgis.SymbolType: ...
    def setSymbolType(self, type: _core.Qgis.SymbolType) -> None: ...
    def sizeHint(self) -> QtCore.QSize: ...
    def minimumSizeHint(self) -> QtCore.QSize: ...


class QgsTableView(QtWidgets.QTableView):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def wheelEvent(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...


class QgsTableWidgetItem(QtWidgets.QTableWidgetItem):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, text: typing.Optional[str]) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsTableWidgetItem') -> None: ...

    def __ge__(self, other: QtWidgets.QTableWidgetItem) -> bool: ...
    def __lt__(self, other: QtWidgets.QTableWidgetItem) -> bool: ...
    def sortRole(self) -> int: ...
    def setSortRole(self, role: int) -> None: ...


class QgsTabWidget(QtWidgets.QTabWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setTabStyle(self, tabIndex: int, labelStyle: _core.QgsAttributeEditorElement.LabelStyle) -> None: ...
    def tabRemoved(self, index: int) -> None: ...
    def tabInserted(self, index: int) -> None: ...
    def realTabIndex(self, widget: typing.Optional[QtWidgets.QWidget]) -> int: ...
    def setTabVisible(self, tab: typing.Optional[QtWidgets.QWidget], visible: bool) -> None: ...
    def showTab(self, tab: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def hideTab(self, tab: typing.Optional[QtWidgets.QWidget]) -> None: ...


class QgsTaskManagerWidget(QtWidgets.QWidget):

    def __init__(self, manager: typing.Optional[_core.QgsTaskManager], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsTemporalControllerWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def keyPressEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def applySizeConstraintsToStack(self) -> bool: ...
    def temporalController(self) -> typing.Optional[_core.QgsTemporalNavigationObject]: ...


class QgsTextFormatWidget(QtWidgets.QWidget, _core.QgsExpressionContextGenerator):

    class Mode(int):
        Text = ... # type: QgsTextFormatWidget.Mode
        Labeling = ... # type: QgsTextFormatWidget.Mode

    @typing.overload
    def __init__(self, format: _core.QgsTextFormat = ..., mapCanvas: typing.Optional[QgsMapCanvas] = ..., parent: typing.Optional[QtWidgets.QWidget] = ..., layer: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...
    @typing.overload
    def __init__(self, mapCanvas: typing.Optional[QgsMapCanvas], parent: typing.Optional[QtWidgets.QWidget], mode: 'QgsTextFormatWidget.Mode', layer: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...

    def updatePreview(self) -> None: ...
    def saveFormat(self) -> None: ...
    def setFormatFromStyle(self, name: typing.Optional[str], type: _core.QgsStyle.StyleEntity, stylePath: typing.Optional[str]) -> None: ...
    def updatePlacementWidgets(self) -> None: ...
    def updateLinePlacementOptions(self) -> None: ...
    def labelGeometryType(self) -> _core.Qgis.GeometryType: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def enableDataDefinedAlignment(self, enable: bool) -> None: ...
    def setPreviewBackground(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def updateWidgetForFormat(self, format: _core.QgsTextFormat) -> None: ...
    auxiliaryFieldCreated: typing.ClassVar[QtCore.pyqtSignal]
    widgetChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setDockMode(self, enabled: bool) -> None: ...
    def deactivateField(self, key: _core.QgsPalLayerSettings.Property) -> None: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def setFormat(self, format: _core.QgsTextFormat) -> None: ...
    def format(self, includeDataDefinedProperties: bool = ...) -> _core.QgsTextFormat: ...


class QgsTextFormatDialog(QtWidgets.QDialog):

    def __init__(self, format: _core.QgsTextFormat, mapCanvas: typing.Optional[QgsMapCanvas] = ..., parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., layer: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...

    def buttonBox(self) -> typing.Optional[QtWidgets.QDialogButtonBox]: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def format(self) -> _core.QgsTextFormat: ...


class QgsTextFormatPanelWidget(QgsPanelWidgetWrapper):

    def __init__(self, format: _core.QgsTextFormat, mapCanvas: typing.Optional[QgsMapCanvas] = ..., parent: typing.Optional[QtWidgets.QWidget] = ..., layer: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...

    def setDockMode(self, dockMode: bool) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def setFormat(self, format: _core.QgsTextFormat) -> None: ...
    def format(self) -> _core.QgsTextFormat: ...


class QgsTextPreview(QtWidgets.QLabel):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def mapUnits(self) -> _core.Qgis.DistanceUnit: ...
    def setMapUnits(self, unit: _core.Qgis.DistanceUnit) -> None: ...
    def scale(self) -> float: ...
    def setScale(self, scale: float) -> None: ...
    def format(self) -> _core.QgsTextFormat: ...
    def setFormat(self, format: _core.QgsTextFormat) -> None: ...
    def paintEvent(self, e: typing.Optional[QtGui.QPaintEvent]) -> None: ...


class QgsToolTipComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def event(self, event: typing.Optional[QtCore.QEvent]) -> bool: ...


class QgsTreeWidgetItem(QtWidgets.QTreeWidgetItem):

    @typing.overload
    def __init__(self, view: typing.Optional[QtWidgets.QTreeWidget], type: int = ...) -> None: ...
    @typing.overload
    def __init__(self, type: int = ...) -> None: ...
    @typing.overload
    def __init__(self, strings: typing.Iterable[typing.Optional[str]], type: int = ...) -> None: ...
    @typing.overload
    def __init__(self, view: typing.Optional[QtWidgets.QTreeWidget], strings: typing.Iterable[typing.Optional[str]], type: int = ...) -> None: ...
    @typing.overload
    def __init__(self, view: typing.Optional[QtWidgets.QTreeWidget], after: typing.Optional[QtWidgets.QTreeWidgetItem], type: int = ...) -> None: ...
    @typing.overload
    def __init__(self, parent: typing.Optional[QtWidgets.QTreeWidgetItem], type: int = ...) -> None: ...
    @typing.overload
    def __init__(self, parent: typing.Optional[QtWidgets.QTreeWidgetItem], strings: typing.Iterable[typing.Optional[str]], type: int = ...) -> None: ...
    @typing.overload
    def __init__(self, parent: typing.Optional[QtWidgets.QTreeWidgetItem], after: typing.Optional[QtWidgets.QTreeWidgetItem], type: int = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsTreeWidgetItem') -> None: ...

    def __ge__(self, other: QtWidgets.QTreeWidgetItem) -> bool: ...
    def __lt__(self, other: QtWidgets.QTreeWidgetItem) -> bool: ...
    def alwaysOnTopPriority(self) -> int: ...
    def setAlwaysOnTopPriority(self, priority: int) -> None: ...
    def sortData(self, column: int) -> typing.Any: ...
    def setSortData(self, column: int, value: typing.Any) -> None: ...


class QgsTreeWidgetItemObject(QtCore.QObject, QgsTreeWidgetItem):

    @typing.overload
    def __init__(self, type: int = ...) -> None: ...
    @typing.overload
    def __init__(self, parent: typing.Optional[QtWidgets.QTreeWidget], type: int = ...) -> None: ...

    itemEdited: typing.ClassVar[QtCore.pyqtSignal]
    def setData(self, column: int, role: int, value: typing.Any) -> None: ...


class QgsMapUnitScaleWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    mapUnitScaleChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def setMapUnitScale(self, scale: _core.QgsMapUnitScale) -> None: ...
    def mapUnitScale(self) -> _core.QgsMapUnitScale: ...


class QgsMapUnitScaleDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def setMapUnitScale(self, scale: _core.QgsMapUnitScale) -> None: ...
    def getMapUnitScale(self) -> _core.QgsMapUnitScale: ...


class QgsUnitSelectionWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def setShowMapScaleButton(self, show: bool) -> None: ...
    def showMapScaleButton(self) -> bool: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def setMapUnitScale(self, scale: _core.QgsMapUnitScale) -> None: ...
    def getMapUnitScale(self) -> _core.QgsMapUnitScale: ...
    def setUnit(self, unit: _core.Qgis.RenderUnit) -> None: ...
    def setUnitIndex(self, unitIndex: int) -> None: ...
    def unit(self) -> _core.Qgis.RenderUnit: ...
    def getUnit(self) -> int: ...
    @typing.overload
    def setUnits(self, units: typing.Iterable[typing.Optional[str]], mapUnitIdx: int) -> None: ...
    @typing.overload
    def setUnits(self, units: typing.Iterable[_core.Qgis.RenderUnit]) -> None: ...


class QgsUserInputWidget(QgsFloatingWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def addUserInputWidget(self, widget: typing.Optional[QtWidgets.QWidget]) -> None: ...


class QgsValidityCheckResultsModel(QtCore.QAbstractItemModel):

    class Roles(int):
        DescriptionRole = ... # type: QgsValidityCheckResultsModel.Roles

    def __init__(self, results: typing.Iterable[_core.QgsValidityCheckResult], parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def data(self, index: QtCore.QModelIndex, role: int) -> typing.Any: ...
    def columnCount(self, parent: QtCore.QModelIndex) -> int: ...
    def rowCount(self, parent: QtCore.QModelIndex = ...) -> int: ...
    def parent(self, child: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def index(self, row: int, column: int, parent: QtCore.QModelIndex) -> QtCore.QModelIndex: ...


class QgsValidityCheckResultsWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget]) -> None: ...

    @staticmethod
    def runChecks(type: int, context: typing.Optional[_core.QgsValidityCheckContext], title: typing.Optional[str], description: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ...) -> bool: ...
    def setResults(self, results: typing.Iterable[_core.QgsValidityCheckResult]) -> None: ...
    def setDescription(self, description: typing.Optional[str]) -> None: ...


class QgsVariableEditorWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def showEvent(self, event: typing.Optional[QtGui.QShowEvent]) -> None: ...
    scopeChanged: typing.ClassVar[QtCore.pyqtSignal]
    def reloadContext(self) -> None: ...
    def variablesInActiveScope(self) -> typing.Dict[str, typing.Any]: ...
    def settingGroup(self) -> str: ...
    def setSettingGroup(self, group: typing.Optional[str]) -> None: ...
    def editableScope(self) -> typing.Optional[_core.QgsExpressionContextScope]: ...
    def setEditableScopeIndex(self, scopeIndex: int) -> None: ...
    def context(self) -> typing.Optional[_core.QgsExpressionContext]: ...
    def setContext(self, context: typing.Optional[_core.QgsExpressionContext]) -> None: ...


class QgsVectorLayerTemporalPropertiesWidget(QtWidgets.QWidget, _core.QgsExpressionContextGenerator):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., layer: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...

    def syncToLayer(self) -> None: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def saveTemporalProperties(self) -> None: ...


class QgsVertexMarker(QgsMapCanvasItem):

    class IconType(int):
        ICON_NONE = ... # type: QgsVertexMarker.IconType
        ICON_CROSS = ... # type: QgsVertexMarker.IconType
        ICON_X = ... # type: QgsVertexMarker.IconType
        ICON_BOX = ... # type: QgsVertexMarker.IconType
        ICON_CIRCLE = ... # type: QgsVertexMarker.IconType
        ICON_DOUBLE_TRIANGLE = ... # type: QgsVertexMarker.IconType
        ICON_TRIANGLE = ... # type: QgsVertexMarker.IconType
        ICON_RHOMBUS = ... # type: QgsVertexMarker.IconType
        ICON_INVERTED_TRIANGLE = ... # type: QgsVertexMarker.IconType

    def __init__(self, mapCanvas: typing.Optional[QgsMapCanvas]) -> None: ...

    def updatePosition(self) -> None: ...
    def boundingRect(self) -> QtCore.QRectF: ...
    def paint(self, p: typing.Optional[QtGui.QPainter]) -> None: ...
    def setPenWidth(self, width: int) -> None: ...
    def fillColor(self) -> QtGui.QColor: ...
    def setFillColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def color(self) -> QtGui.QColor: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setIconSize(self, iconSize: int) -> None: ...
    def setIconType(self, iconType: int) -> None: ...
    def center(self) -> _core.QgsPointXY: ...
    def setCenter(self, point: _core.QgsPointXY) -> None: ...


class QgsVScrollArea(QgsScrollArea):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def eventFilter(self, o: typing.Optional[QtCore.QObject], e: typing.Optional[QtCore.QEvent]) -> bool: ...


class QgsWindowManagerInterface(PyQt5.sip.wrapper):

    class StandardDialog(int):
        DialogStyleManager = ... # type: QgsWindowManagerInterface.StandardDialog

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsWindowManagerInterface') -> None: ...

    def openStandardDialog(self, dialog: 'QgsWindowManagerInterface.StandardDialog') -> typing.Optional[QtWidgets.QWidget]: ...


class QgsActionMenu(QtWidgets.QMenu):

    class ActionData(PyQt5.sip.wrapper):

        actionData = ... # type: typing.Any
        actionType = ... # type: _core.Qgis.ActionType
        featureId = ... # type: int
        mapLayer = ... # type: _core.QgsMapLayer

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, action: _core.QgsAction, featureId: int, mapLayer: typing.Optional[_core.QgsMapLayer]) -> None: ...
        @typing.overload
        def __init__(self, action: typing.Optional['QgsMapLayerAction'], featureId: int, mapLayer: typing.Optional[_core.QgsMapLayer]) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsActionMenu.ActionData') -> None: ...

    @typing.overload
    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], feature: _core.QgsFeature, actionScope: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    @typing.overload
    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], fid: int, actionScope: typing.Optional[str], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    reinit: typing.ClassVar[QtCore.pyqtSignal]
    def isEmpty(self) -> bool: ...
    def menuActions(self) -> typing.List[_core.QgsAction]: ...
    def expressionContextScope(self) -> _core.QgsExpressionContextScope: ...
    def setExpressionContextScope(self, scope: _core.QgsExpressionContextScope) -> None: ...
    def setMode(self, mode: QgsAttributeEditorContext.Mode) -> None: ...
    def setFeature(self, feature: _core.QgsFeature) -> None: ...
    def setActionContextGenerator(self, generator: typing.Optional[QgsMapLayerActionContextGenerator]) -> None: ...


class QgsMapLayerAction(QtWidgets.QAction):

    @typing.overload
    def __init__(self, name: typing.Optional[str], parent: typing.Optional[QtCore.QObject], targets: typing.Union[_core.Qgis.MapLayerActionTargets, _core.Qgis.MapLayerActionTarget] = ..., icon: QtGui.QIcon = ..., flags: typing.Union[_core.Qgis.MapLayerActionFlags, _core.Qgis.MapLayerActionFlag] = ...) -> None: ...
    @typing.overload
    def __init__(self, name: typing.Optional[str], parent: typing.Optional[QtCore.QObject], layer: typing.Optional[_core.QgsMapLayer], targets: typing.Union[_core.Qgis.MapLayerActionTargets, _core.Qgis.MapLayerActionTarget] = ..., icon: QtGui.QIcon = ..., flags: typing.Union[_core.Qgis.MapLayerActionFlags, _core.Qgis.MapLayerActionFlag] = ...) -> None: ...
    @typing.overload
    def __init__(self, name: typing.Optional[str], parent: typing.Optional[QtCore.QObject], layerType: _core.Qgis.LayerType, targets: typing.Union[_core.Qgis.MapLayerActionTargets, _core.Qgis.MapLayerActionTarget] = ..., icon: QtGui.QIcon = ..., flags: typing.Union[_core.Qgis.MapLayerActionFlags, _core.Qgis.MapLayerActionFlag] = ...) -> None: ...

    triggeredForLayerV2: typing.ClassVar[QtCore.pyqtSignal]
    triggeredForFeatureV2: typing.ClassVar[QtCore.pyqtSignal]
    triggeredForFeaturesV2: typing.ClassVar[QtCore.pyqtSignal]
    triggeredForLayer: typing.ClassVar[QtCore.pyqtSignal]
    triggeredForFeature: typing.ClassVar[QtCore.pyqtSignal]
    triggeredForFeatures: typing.ClassVar[QtCore.pyqtSignal]
    def isEnabledOnlyWhenEditable(self) -> bool: ...
    def targets(self) -> _core.Qgis.MapLayerActionTargets: ...
    def setTargets(self, targets: typing.Union[_core.Qgis.MapLayerActionTargets, _core.Qgis.MapLayerActionTarget]) -> None: ...
    @typing.overload
    def triggerForLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    @typing.overload
    def triggerForLayer(self, layer: typing.Optional[_core.QgsMapLayer], context: 'QgsMapLayerActionContext') -> None: ...
    @typing.overload
    def triggerForFeature(self, layer: typing.Optional[_core.QgsMapLayer], feature: _core.QgsFeature) -> None: ...
    @typing.overload
    def triggerForFeature(self, layer: typing.Optional[_core.QgsMapLayer], feature: _core.QgsFeature, context: 'QgsMapLayerActionContext') -> None: ...
    @typing.overload
    def triggerForFeatures(self, layer: typing.Optional[_core.QgsMapLayer], featureList: typing.Iterable[_core.QgsFeature]) -> None: ...
    @typing.overload
    def triggerForFeatures(self, layer: typing.Optional[_core.QgsMapLayer], featureList: typing.Iterable[_core.QgsFeature], context: 'QgsMapLayerActionContext') -> None: ...
    @typing.overload
    def canRunUsingLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> bool: ...
    @typing.overload
    def canRunUsingLayer(self, layer: typing.Optional[_core.QgsMapLayer], context: 'QgsMapLayerActionContext') -> bool: ...
    def flags(self) -> _core.Qgis.MapLayerActionFlags: ...


class QgsMapLayerActionContext(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsMapLayerActionContext') -> None: ...

    def setMessageBar(self, bar: typing.Optional[QgsMessageBar]) -> None: ...
    def messageBar(self) -> typing.Optional[QgsMessageBar]: ...
    def setAttributeDialog(self, dialog: typing.Optional[QgsAttributeDialog]) -> None: ...
    def attributeDialog(self) -> typing.Optional[QgsAttributeDialog]: ...


class QgsMapLayerActionRegistry(QtCore.QObject):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def defaultActionForLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> typing.Optional[QgsMapLayerAction]: ...
    def setDefaultActionForLayer(self, layer: typing.Optional[_core.QgsMapLayer], action: typing.Optional[QgsMapLayerAction]) -> None: ...
    def removeMapLayerAction(self, action: typing.Optional[QgsMapLayerAction]) -> bool: ...
    def mapLayerActions(self, layer: typing.Optional[_core.QgsMapLayer], targets: typing.Union[_core.Qgis.MapLayerActionTargets, _core.Qgis.MapLayerActionTarget] = ..., context: QgsMapLayerActionContext = ...) -> typing.List[QgsMapLayerAction]: ...
    def addMapLayerAction(self, action: typing.Optional[QgsMapLayerAction]) -> None: ...


class QgsAnnotationItemCommonPropertiesWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget]) -> None: ...

    itemChanged: typing.ClassVar[QtCore.pyqtSignal]
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def updateItem(self, item: typing.Optional[_core.QgsAnnotationItem]) -> None: ...
    def setItem(self, item: typing.Optional[_core.QgsAnnotationItem]) -> None: ...


class QgsAnnotationItemAbstractGuiMetadata(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self, type: typing.Optional[str], visibleName: typing.Optional[str], groupId: typing.Optional[str] = ..., flags: typing.Union[_core.Qgis.AnnotationItemGuiFlags, _core.Qgis.AnnotationItemGuiFlag] = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsAnnotationItemAbstractGuiMetadata') -> None: ...

    def newItemAddedToLayer(self, item: typing.Optional[_core.QgsAnnotationItem], layer: typing.Optional[_core.QgsAnnotationLayer]) -> None: ...
    def createItem(self) -> typing.Optional[_core.QgsAnnotationItem]: ...
    def createMapTool(self, canvas: typing.Optional[QgsMapCanvas], cadDockWidget: typing.Optional[QgsAdvancedDigitizingDockWidget]) -> typing.Optional['QgsCreateAnnotationItemMapToolInterface']: ...
    def createItemWidget(self, item: typing.Optional[_core.QgsAnnotationItem]) -> typing.Optional['QgsAnnotationItemBaseWidget']: ...
    def creationIcon(self) -> QtGui.QIcon: ...
    def visibleName(self) -> str: ...
    def groupId(self) -> str: ...
    def flags(self) -> _core.Qgis.AnnotationItemGuiFlags: ...
    def type(self) -> str: ...


class QgsAnnotationItemGuiGroup(PyQt5.sip.wrapper):

    icon = ... # type: QtGui.QIcon
    id = ... # type: typing.Optional[str]
    name = ... # type: typing.Optional[str]

    @typing.overload
    def __init__(self, id: typing.Optional[str] = ..., name: typing.Optional[str] = ..., icon: QtGui.QIcon = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsAnnotationItemGuiGroup') -> None: ...


class QgsAnnotationItemGuiRegistry(QtCore.QObject):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    typeAdded: typing.ClassVar[QtCore.pyqtSignal]
    def addDefaultItems(self) -> None: ...
    def itemMetadataIds(self) -> typing.List[int]: ...
    def createItemWidget(self, item: typing.Optional[_core.QgsAnnotationItem]) -> typing.Optional['QgsAnnotationItemBaseWidget']: ...
    def newItemAddedToLayer(self, metadataId: int, item: typing.Optional[_core.QgsAnnotationItem], layer: typing.Optional[_core.QgsAnnotationLayer]) -> None: ...
    def createItem(self, metadataId: int) -> typing.Optional[_core.QgsAnnotationItem]: ...
    def itemGroup(self, id: typing.Optional[str]) -> QgsAnnotationItemGuiGroup: ...
    def addItemGroup(self, group: QgsAnnotationItemGuiGroup) -> bool: ...
    def addAnnotationItemGuiMetadata(self, metadata: typing.Optional[QgsAnnotationItemAbstractGuiMetadata]) -> bool: ...
    def metadataIdForItemType(self, type: typing.Optional[str]) -> int: ...
    def itemMetadata(self, metadataId: int) -> typing.Optional[QgsAnnotationItemAbstractGuiMetadata]: ...


class QgsAnnotationItemBaseWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget]) -> None: ...

    def setNewItem(self, item: typing.Optional[_core.QgsAnnotationItem]) -> bool: ...
    itemChanged: typing.ClassVar[QtCore.pyqtSignal]
    def focusDefaultWidget(self) -> None: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def setItem(self, item: typing.Optional[_core.QgsAnnotationItem]) -> bool: ...
    def updateItem(self, item: typing.Optional[_core.QgsAnnotationItem]) -> None: ...
    def createItem(self) -> typing.Optional[_core.QgsAnnotationItem]: ...


class QgsCreateAnnotationItemMapToolHandler(QtCore.QObject):

    def __init__(self, canvas: typing.Optional[QgsMapCanvas], cadDockWidget: typing.Optional[QgsAdvancedDigitizingDockWidget], parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    itemCreated: typing.ClassVar[QtCore.pyqtSignal]
    def pushCreatedItem(self, item: typing.Optional[_core.QgsAnnotationItem]) -> None: ...
    def targetLayer(self) -> typing.Optional[_core.QgsAnnotationLayer]: ...
    def takeCreatedItem(self) -> typing.Optional[_core.QgsAnnotationItem]: ...


class QgsCreateAnnotationItemMapToolInterface(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsCreateAnnotationItemMapToolInterface') -> None: ...

    def mapTool(self) -> typing.Optional[QgsMapTool]: ...
    def handler(self) -> typing.Optional[QgsCreateAnnotationItemMapToolHandler]: ...


class QgsAttributeTableDelegate(QtWidgets.QItemDelegate):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    actionColumnItemPainted: typing.ClassVar[QtCore.pyqtSignal]
    def setFeatureSelectionModel(self, featureSelectionModel: typing.Optional['QgsFeatureSelectionModel']) -> None: ...
    def setEditorData(self, editor: typing.Optional[QtWidgets.QWidget], index: QtCore.QModelIndex) -> None: ...
    def setModelData(self, editor: typing.Optional[QtWidgets.QWidget], model: typing.Optional[QtCore.QAbstractItemModel], index: QtCore.QModelIndex) -> None: ...
    def paint(self, painter: typing.Optional[QtGui.QPainter], option: QtWidgets.QStyleOptionViewItem, index: QtCore.QModelIndex) -> None: ...
    def createEditor(self, parent: typing.Optional[QtWidgets.QWidget], option: QtWidgets.QStyleOptionViewItem, index: QtCore.QModelIndex) -> typing.Optional[QtWidgets.QWidget]: ...


class QgsFeatureModel(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsFeatureModel') -> None: ...

    def fidToIndex(self, fid: int) -> QtCore.QModelIndex: ...


class QgsAttributeTableFilterModel(QtCore.QSortFilterProxyModel, QgsFeatureModel):

    class Role(int):
        TypeRole = ... # type: QgsAttributeTableFilterModel.Role

    class ColumnType(int):
        ColumnTypeField = ... # type: QgsAttributeTableFilterModel.ColumnType
        ColumnTypeActionButton = ... # type: QgsAttributeTableFilterModel.ColumnType

    class FilterMode(int):
        ShowAll = ... # type: QgsAttributeTableFilterModel.FilterMode
        ShowSelected = ... # type: QgsAttributeTableFilterModel.FilterMode
        ShowVisible = ... # type: QgsAttributeTableFilterModel.FilterMode
        ShowFilteredList = ... # type: QgsAttributeTableFilterModel.FilterMode
        ShowEdited = ... # type: QgsAttributeTableFilterModel.FilterMode
        ShowInvalid = ... # type: QgsAttributeTableFilterModel.FilterMode

    def __init__(self, canvas: typing.Optional[QgsMapCanvas], sourceModel: typing.Optional['QgsAttributeTableModel'], parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def filterFeatures(self) -> None: ...
    def extentsChanged(self) -> None: ...
    def lessThan(self, left: QtCore.QModelIndex, right: QtCore.QModelIndex) -> bool: ...
    def generateListOfVisibleFeatures(self) -> None: ...
    def filterAcceptsRow(self, sourceRow: int, sourceParent: QtCore.QModelIndex) -> bool: ...
    filterError: typing.ClassVar[QtCore.pyqtSignal]
    visibleReloaded: typing.ClassVar[QtCore.pyqtSignal]
    featuresFiltered: typing.ClassVar[QtCore.pyqtSignal]
    sortColumnChanged: typing.ClassVar[QtCore.pyqtSignal]
    def filterExpression(self) -> str: ...
    def setFilterExpression(self, expression: _core.QgsExpression, context: _core.QgsExpressionContext) -> None: ...
    def setAttributeTableConfig(self, config: _core.QgsAttributeTableConfig) -> None: ...
    def columnCount(self, parent: QtCore.QModelIndex) -> int: ...
    def actionColumnIndex(self) -> int: ...
    def headerData(self, section: int, orientation: QtCore.Qt.Orientation, role: int) -> typing.Any: ...
    def data(self, index: QtCore.QModelIndex, role: int) -> typing.Any: ...
    def mapCanvas(self) -> typing.Optional[QgsMapCanvas]: ...
    def sortExpression(self) -> str: ...
    @typing.overload
    def sort(self, column: int, order: QtCore.Qt.SortOrder = ...) -> None: ...
    @typing.overload
    def sort(self, expression: typing.Optional[str], order: QtCore.Qt.SortOrder = ...) -> None: ...
    def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlags: ...
    def mapFromSource(self, sourceIndex: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def mapToSource(self, proxyIndex: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def mapFromMaster(self, sourceIndex: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def mapToMaster(self, proxyIndex: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def fidToIndexList(self, fid: int) -> typing.List[QtCore.QModelIndex]: ...
    def fidToIndex(self, fid: int) -> QtCore.QModelIndex: ...
    def rowToId(self, row: QtCore.QModelIndex) -> int: ...
    def masterModel(self) -> typing.Optional['QgsAttributeTableModel']: ...
    def layerCache(self) -> typing.Optional[_core.QgsVectorLayerCache]: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def filterMode(self) -> 'QgsAttributeTableFilterModel.FilterMode': ...
    def connectFilterModeConnections(self, filterMode: 'QgsAttributeTableFilterModel.FilterMode') -> None: ...
    def disconnectFilterModeConnections(self) -> None: ...
    def setFilterMode(self, filterMode: 'QgsAttributeTableFilterModel.FilterMode') -> None: ...
    def filteredFeatures(self) -> typing.Any: ...
    def setFilteredFeatures(self, ids: typing.Any) -> None: ...
    def selectedOnTop(self) -> bool: ...
    def setSelectedOnTop(self, selectedOnTop: bool) -> None: ...
    def setSourceModel(self, sourceModel: typing.Optional['QgsAttributeTableModel']) -> None: ...


class QgsAttributeTableModel(QtCore.QAbstractTableModel):

    class Role(int):
        FeatureIdRole = ... # type: QgsAttributeTableModel.Role
        FieldIndexRole = ... # type: QgsAttributeTableModel.Role
        UserRole = ... # type: QgsAttributeTableModel.Role
        SortRole = ... # type: QgsAttributeTableModel.Role

    def __init__(self, layerCache: typing.Optional[_core.QgsVectorLayerCache], parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    finished: typing.ClassVar[QtCore.pyqtSignal]
    modelChanged: typing.ClassVar[QtCore.pyqtSignal]
    def fieldConditionalStyleChanged(self, fieldName: typing.Optional[str]) -> None: ...
    def loadLayer(self) -> None: ...
    def setShowValidityState(self, show: bool) -> None: ...
    def showValidityState(self) -> bool: ...
    def setExtraColumns(self, extraColumns: int) -> None: ...
    def extraColumns(self) -> int: ...
    def editorContext(self) -> QgsAttributeEditorContext: ...
    def setEditorContext(self, context: QgsAttributeEditorContext) -> None: ...
    def request(self) -> _core.QgsFeatureRequest: ...
    def setRequest(self, request: _core.QgsFeatureRequest) -> None: ...
    def sortCacheExpression(self, cacheIndex: int = ...) -> str: ...
    def prefetchSortData(self, expression: typing.Optional[str], cacheIndex: int = ...) -> None: ...
    def prefetchColumnData(self, column: int) -> None: ...
    def feature(self, idx: QtCore.QModelIndex) -> _core.QgsFeature: ...
    def executeMapLayerAction(self, action: typing.Optional[QgsMapLayerAction], idx: QtCore.QModelIndex, context: QgsMapLayerActionContext = ...) -> None: ...
    def executeAction(self, action: QtCore.QUuid, idx: QtCore.QModelIndex) -> None: ...
    def layerCache(self) -> typing.Optional[_core.QgsVectorLayerCache]: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def swapRows(self, a: int, b: int) -> None: ...
    def rowToId(self, row: int) -> int: ...
    def fieldCol(self, idx: int) -> int: ...
    def fieldIdx(self, col: int) -> int: ...
    def idToIndexList(self, id: int) -> typing.List[QtCore.QModelIndex]: ...
    def idToIndex(self, id: int) -> QtCore.QModelIndex: ...
    def idToRow(self, id: int) -> int: ...
    def resetModel(self) -> None: ...
    def removeRows(self, row: int, count: int, parent: QtCore.QModelIndex = ...) -> bool: ...
    def reload(self, index1: QtCore.QModelIndex, index2: QtCore.QModelIndex) -> None: ...
    def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlags: ...
    def setData(self, index: QtCore.QModelIndex, value: typing.Any, role: int = ...) -> bool: ...
    def data(self, index: QtCore.QModelIndex, role: int) -> typing.Any: ...
    def headerData(self, section: int, orientation: QtCore.Qt.Orientation, role: int = ...) -> typing.Any: ...
    def columnCount(self, parent: QtCore.QModelIndex = ...) -> int: ...
    def rowCount(self, parent: QtCore.QModelIndex = ...) -> int: ...


class QgsAttributeTableView(QgsTableView):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def _q_selectRow(self, row: int) -> None: ...
    def selectRow(self, row: int) -> None: ...
    def selectAll(self) -> None: ...
    @typing.overload
    def repaintRequested(self, indexes: typing.Iterable[QtCore.QModelIndex]) -> None: ...
    @typing.overload
    def repaintRequested(self) -> None: ...
    finished: typing.ClassVar[QtCore.pyqtSignal]
    columnResized: typing.ClassVar[QtCore.pyqtSignal]
    willShowContextMenu: typing.ClassVar[QtCore.pyqtSignal]
    def closeEvent(self, event: typing.Optional[QtGui.QCloseEvent]) -> None: ...
    def contextMenuEvent(self, event: typing.Optional[QtGui.QContextMenuEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def mouseMoveEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseReleaseEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def closeCurrentEditor(self) -> None: ...
    def scrollToFeature(self, fid: int, column: int = ...) -> None: ...
    def selectedFeaturesIds(self) -> typing.List[int]: ...
    def setAttributeTableConfig(self, config: _core.QgsAttributeTableConfig) -> None: ...
    def eventFilter(self, object: typing.Optional[QtCore.QObject], event: typing.Optional[QtCore.QEvent]) -> bool: ...
    def setFeatureSelectionManager(self, featureSelectionManager: typing.Optional['QgsIFeatureSelectionManager']) -> None: ...
    def setModel(self, filterModel: typing.Optional[QgsAttributeTableFilterModel]) -> None: ...


class QgsDualView(QtWidgets.QStackedWidget):

    class FeatureListBrowsingAction(int):
        NoAction = ... # type: QgsDualView.FeatureListBrowsingAction
        PanToFeature = ... # type: QgsDualView.FeatureListBrowsingAction
        ZoomToFeature = ... # type: QgsDualView.FeatureListBrowsingAction

    class ViewMode(int):
        AttributeTable = ... # type: QgsDualView.ViewMode
        AttributeEditor = ... # type: QgsDualView.ViewMode

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def hideEvent(self, event: typing.Optional[QtGui.QHideEvent]) -> None: ...
    showContextMenuExternally: typing.ClassVar[QtCore.pyqtSignal]
    formModeChanged: typing.ClassVar[QtCore.pyqtSignal]
    filterExpressionSet: typing.ClassVar[QtCore.pyqtSignal]
    filterChanged: typing.ClassVar[QtCore.pyqtSignal]
    displayExpressionChanged: typing.ClassVar[QtCore.pyqtSignal]
    def parentFormValueChanged(self, attribute: typing.Optional[str], value: typing.Any) -> None: ...
    def cancelProgress(self) -> None: ...
    def copyCellContent(self) -> None: ...
    def toggleSearchMode(self, enabled: bool) -> None: ...
    def setMultiEditEnabled(self, enabled: bool) -> None: ...
    def openConditionalStyles(self) -> None: ...
    def saveEditChanges(self) -> bool: ...
    def setCurrentEditSelection(self, fids: typing.Any) -> None: ...
    @staticmethod
    def requiredAttributes(layer: typing.Optional[_core.QgsVectorLayer]) -> typing.List[int]: ...
    def attributeTableConfig(self) -> _core.QgsAttributeTableConfig: ...
    def sortExpression(self) -> str: ...
    def setSortExpression(self, sortExpression: typing.Optional[str], sortOrder: QtCore.Qt.SortOrder = ...) -> None: ...
    def setAttributeTableConfig(self, config: _core.QgsAttributeTableConfig) -> None: ...
    def tableView(self) -> typing.Optional[QgsAttributeTableView]: ...
    def setFeatureSelectionManager(self, featureSelectionManager: typing.Optional['QgsIFeatureSelectionManager']) -> None: ...
    def setRequest(self, request: _core.QgsFeatureRequest) -> None: ...
    def masterModel(self) -> typing.Optional[QgsAttributeTableModel]: ...
    def filteredFeatures(self) -> typing.Any: ...
    def filterFeatures(self, filterExpression: _core.QgsExpression, context: _core.QgsExpressionContext) -> None: ...
    def setFilteredFeatures(self, filteredFeatures: typing.Any) -> None: ...
    def filteredFeatureCount(self) -> int: ...
    def featureCount(self) -> int: ...
    def setSelectedOnTop(self, selectedOnTop: bool) -> None: ...
    def filterMode(self) -> QgsAttributeTableFilterModel.FilterMode: ...
    def setFilterMode(self, filterMode: QgsAttributeTableFilterModel.FilterMode) -> None: ...
    def view(self) -> 'QgsDualView.ViewMode': ...
    def setView(self, view: 'QgsDualView.ViewMode') -> None: ...
    def init(self, layer: typing.Optional[_core.QgsVectorLayer], mapCanvas: typing.Optional[QgsMapCanvas], request: _core.QgsFeatureRequest = ..., context: QgsAttributeEditorContext = ..., loadFeatures: bool = ..., showFirstFeature: bool = ...) -> None: ...


class QgsAttributeTableAction(QtWidgets.QAction):

    def __init__(self, name: typing.Optional[str], dualView: typing.Optional[QgsDualView], action: QtCore.QUuid, fieldIdx: QtCore.QModelIndex) -> None: ...

    def featureForm(self) -> None: ...
    def execute(self) -> None: ...


class QgsAttributeTableMapLayerAction(QtWidgets.QAction):

    def __init__(self, name: typing.Optional[str], dualView: typing.Optional[QgsDualView], action: typing.Optional[QgsMapLayerAction], fieldIdx: QtCore.QModelIndex) -> None: ...

    def execute(self) -> None: ...


class QgsFeatureListModel(QtCore.QSortFilterProxyModel, QgsFeatureModel):

    class Role(int):
        FeatureInfoRole = ... # type: QgsFeatureListModel.Role
        FeatureRole = ... # type: QgsFeatureListModel.Role

    class FeatureInfo(PyQt5.sip.wrapper):

        isEdited = ... # type: bool
        isNew = ... # type: bool

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsFeatureListModel.FeatureInfo') -> None: ...

    def __init__(self, sourceModel: typing.Optional[QgsAttributeTableFilterModel], parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def onEndInsertRows(self, parent: QtCore.QModelIndex, first: int, last: int) -> None: ...
    def onBeginInsertRows(self, parent: QtCore.QModelIndex, first: int, last: int) -> None: ...
    def onEndRemoveRows(self, parent: QtCore.QModelIndex, first: int, last: int) -> None: ...
    def onBeginRemoveRows(self, parent: QtCore.QModelIndex, first: int, last: int) -> None: ...
    def setSortByDisplayExpression(self, sortByDisplayExpression: bool, order: QtCore.Qt.SortOrder = ...) -> None: ...
    def sortByDisplayExpression(self) -> bool: ...
    def fidToIndexList(self, fid: int) -> typing.List[QtCore.QModelIndex]: ...
    def fidToIndex(self, fid: int) -> QtCore.QModelIndex: ...
    def rowCount(self, parent: QtCore.QModelIndex = ...) -> int: ...
    def columnCount(self, parent: QtCore.QModelIndex = ...) -> int: ...
    def parent(self, child: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def mapSelectionToMaster(self, selection: QtCore.QItemSelection) -> QtCore.QItemSelection: ...
    def mapSelectionFromMaster(self, selection: QtCore.QItemSelection) -> QtCore.QItemSelection: ...
    def mapFromMaster(self, sourceIndex: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def mapToMaster(self, proxyIndex: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def mapFromSource(self, sourceIndex: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def mapToSource(self, proxyIndex: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def fidToIdx(self, fid: int) -> QtCore.QModelIndex: ...
    def idxToFid(self, index: QtCore.QModelIndex) -> int: ...
    def featureByIndex(self, index: QtCore.QModelIndex, feat: _core.QgsFeature) -> bool: ...
    def displayExpression(self) -> str: ...
    def parserErrorString(self) -> str: ...
    def setDisplayExpression(self, expression: typing.Optional[str]) -> bool: ...
    def masterModel(self) -> typing.Optional[QgsAttributeTableModel]: ...
    def injectNull(self) -> bool: ...
    def setInjectNull(self, injectNull: bool) -> None: ...
    def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlags: ...
    def data(self, index: QtCore.QModelIndex, role: int) -> typing.Any: ...
    def layerCache(self) -> typing.Optional[_core.QgsVectorLayerCache]: ...
    def setSourceModel(self, sourceModel: typing.Optional[QgsAttributeTableFilterModel]) -> None: ...


class QgsFeatureListView(QtWidgets.QListView):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def editLastFeature(self) -> None: ...
    def editPreviousFeature(self) -> None: ...
    def editNextFeature(self) -> None: ...
    def editFirstFeature(self) -> None: ...
    @typing.overload
    def repaintRequested(self, indexes: typing.Iterable[QtCore.QModelIndex]) -> None: ...
    @typing.overload
    def repaintRequested(self) -> None: ...
    def selectAll(self) -> None: ...
    @typing.overload
    def setEditSelection(self, fids: typing.Any) -> None: ...
    @typing.overload
    def setEditSelection(self, index: QtCore.QModelIndex, command: typing.Union[QtCore.QItemSelectionModel.SelectionFlags, QtCore.QItemSelectionModel.SelectionFlag]) -> None: ...
    willShowContextMenu: typing.ClassVar[QtCore.pyqtSignal]
    displayExpressionChanged: typing.ClassVar[QtCore.pyqtSignal]
    currentEditSelectionProgressChanged: typing.ClassVar[QtCore.pyqtSignal]
    currentEditSelectionChanged: typing.ClassVar[QtCore.pyqtSignal]
    def contextMenuEvent(self, event: typing.Optional[QtGui.QContextMenuEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def mouseReleaseEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def setFeatureSelectionManager(self, featureSelectionManager: typing.Optional['QgsIFeatureSelectionManager']) -> None: ...
    def setCurrentFeatureEdited(self, state: bool) -> None: ...
    def currentEditSelection(self) -> typing.Any: ...
    def parserErrorString(self) -> str: ...
    def displayExpression(self) -> str: ...
    def setDisplayExpression(self, displayExpression: typing.Optional[str]) -> bool: ...
    def featureListModel(self) -> typing.Optional[QgsFeatureListModel]: ...
    def setModel(self, featureListModel: typing.Optional[QgsFeatureListModel]) -> None: ...
    def layerCache(self) -> typing.Optional[_core.QgsVectorLayerCache]: ...


class QgsFeatureListViewDelegate(QtWidgets.QItemDelegate):

    class Element(int):
        EditElement = ... # type: QgsFeatureListViewDelegate.Element
        SelectionElement = ... # type: QgsFeatureListViewDelegate.Element

    ICON_SIZE = ... # type: int

    def __init__(self, listModel: typing.Optional[QgsFeatureListModel], parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def paint(self, painter: typing.Optional[QtGui.QPainter], option: QtWidgets.QStyleOptionViewItem, index: QtCore.QModelIndex) -> None: ...
    def sizeHint(self, option: QtWidgets.QStyleOptionViewItem, index: QtCore.QModelIndex) -> QtCore.QSize: ...
    editButtonClicked: typing.ClassVar[QtCore.pyqtSignal]
    def setCurrentFeatureEdited(self, state: bool) -> None: ...
    def setFeatureSelectionModel(self, featureSelectionModel: typing.Optional['QgsFeatureSelectionModel']) -> None: ...
    def positionToElement(self, pos: QtCore.QPoint) -> 'QgsFeatureListViewDelegate.Element': ...
    def setEditSelectionModel(self, editSelectionModel: typing.Optional[QtCore.QItemSelectionModel]) -> None: ...


class QgsFeatureSelectionModel(QtCore.QItemSelectionModel):

    def __init__(self, model: typing.Optional[QtCore.QAbstractItemModel], featureModel: typing.Optional[QgsFeatureModel], featureSelectionHandler: typing.Optional['QgsIFeatureSelectionManager'], parent: typing.Optional[QtCore.QObject]) -> None: ...

    def setFeatureSelectionManager(self, featureSelectionManager: typing.Optional['QgsIFeatureSelectionManager']) -> None: ...
    def selectFeatures(self, selection: QtCore.QItemSelection, command: typing.Union[QtCore.QItemSelectionModel.SelectionFlags, QtCore.QItemSelectionModel.SelectionFlag]) -> None: ...
    @typing.overload
    def select(self, index: QtCore.QModelIndex, command: typing.Union[QtCore.QItemSelectionModel.SelectionFlags, QtCore.QItemSelectionModel.SelectionFlag]) -> None: ...
    @typing.overload
    def select(self, selection: QtCore.QItemSelection, command: typing.Union[QtCore.QItemSelectionModel.SelectionFlags, QtCore.QItemSelectionModel.SelectionFlag]) -> None: ...
    requestRepaint: typing.ClassVar[QtCore.pyqtSignal]
    @typing.overload
    def isSelected(self, fid: int) -> bool: ...
    @typing.overload
    def isSelected(self, index: QtCore.QModelIndex) -> bool: ...
    def enableSync(self, enable: bool) -> None: ...


class QgsFieldConditionalFormatWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    rulesUpdated: typing.ClassVar[QtCore.pyqtSignal]
    @staticmethod
    def defaultPresets() -> typing.List[_core.QgsConditionalStyle]: ...
    def setPresets(self, styles: typing.Iterable[_core.QgsConditionalStyle]) -> None: ...
    def reset(self) -> None: ...
    def loadStyle(self, style: _core.QgsConditionalStyle) -> None: ...
    def editStyle(self, index: int, style: _core.QgsConditionalStyle) -> None: ...
    def setLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def viewRules(self) -> None: ...


class QgsEditConditionalFormatRuleWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    canceled: typing.ClassVar[QtCore.pyqtSignal]
    ruleDeleted: typing.ClassVar[QtCore.pyqtSignal]
    ruleSaved: typing.ClassVar[QtCore.pyqtSignal]
    def setRule(self, rule: typing.Optional[str]) -> None: ...
    def currentStyle(self) -> _core.QgsConditionalStyle: ...
    def loadStyle(self, style: _core.QgsConditionalStyle) -> None: ...
    def setPresets(self, styles: typing.Iterable[_core.QgsConditionalStyle]) -> None: ...
    def setLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...


class QgsIFeatureSelectionManager(QtCore.QObject):

    def __init__(self, parent: typing.Optional[QtCore.QObject]) -> None: ...

    selectionChanged: typing.ClassVar[QtCore.pyqtSignal]
    def selectedFeatureIds(self) -> typing.Any: ...
    def setSelectedFeatures(self, ids: typing.Any) -> None: ...
    def deselect(self, ids: typing.Any) -> None: ...
    def select(self, ids: typing.Any) -> None: ...
    def selectedFeatureCount(self) -> int: ...


class QgsOrganizeTableColumnsDialog(QtWidgets.QDialog):

    @typing.overload
    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], config: _core.QgsAttributeTableConfig, parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...
    @typing.overload
    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def hideAll(self) -> None: ...
    def showAll(self) -> None: ...
    def config(self) -> _core.QgsAttributeTableConfig: ...


class QgsAuthAuthoritiesEditor(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...


class QgsAuthCertInfo(QtWidgets.QWidget):

    def __init__(self, cert: QtNetwork.QSslCertificate, manageCertTrust: bool = ..., parent: typing.Optional[QtWidgets.QWidget] = ..., connectionCAs: typing.Iterable[QtNetwork.QSslCertificate] = ...) -> None: ...

    def trustCacheRebuilt(self) -> bool: ...


class QgsAuthCertInfoDialog(QtWidgets.QDialog):

    def __init__(self, cert: QtNetwork.QSslCertificate, manageCertTrust: bool, parent: typing.Optional[QtWidgets.QWidget] = ..., connectionCAs: typing.Iterable[QtNetwork.QSslCertificate] = ...) -> None: ...

    def trustCacheRebuilt(self) -> bool: ...
    def certInfoWidget(self) -> typing.Optional[QgsAuthCertInfo]: ...


class QgsAuthCertEditors(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsAuthCertManager(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def certEditorsWidget(self) -> typing.Optional[QgsAuthCertEditors]: ...


class QgsAuthCertTrustPolicyComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., policy: _core.QgsAuthCertUtils.CertTrustPolicy = ..., defaultpolicy: _core.QgsAuthCertUtils.CertTrustPolicy = ...) -> None: ...

    def setDefaultTrustPolicy(self, defaultpolicy: _core.QgsAuthCertUtils.CertTrustPolicy) -> None: ...
    def setTrustPolicy(self, policy: _core.QgsAuthCertUtils.CertTrustPolicy) -> None: ...
    def trustPolicyForIndex(self, indx: int) -> _core.QgsAuthCertUtils.CertTrustPolicy: ...
    def trustPolicy(self) -> _core.QgsAuthCertUtils.CertTrustPolicy: ...


class QgsAuthConfigEditor(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., showUtilities: bool = ..., relayMessages: bool = ...) -> None: ...

    def setRelayMessages(self, relay: bool = ...) -> None: ...
    def setShowUtilitiesButton(self, show: bool = ...) -> None: ...
    def selectedAuthenticationConfigIds(self) -> typing.List[str]: ...
    def toggleTitleVisibility(self, visible: bool) -> None: ...


class QgsAuthConfigSelect(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., dataprovider: typing.Optional[str] = ...) -> None: ...

    def clearMessage(self) -> None: ...
    def showMessage(self, msg: typing.Optional[str]) -> None: ...
    selectedConfigIdRemoved: typing.ClassVar[QtCore.pyqtSignal]
    selectedConfigIdChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setDataProviderKey(self, key: typing.Optional[str]) -> None: ...
    def configId(self) -> str: ...
    def setConfigId(self, authcfg: typing.Optional[str]) -> None: ...


class QgsAuthConfigUriEdit(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., datauri: typing.Optional[str] = ..., dataprovider: typing.Optional[str] = ...) -> None: ...

    @staticmethod
    def hasConfigId(txt: typing.Optional[str]) -> bool: ...
    def dataSourceUri(self) -> str: ...
    def setDataSourceUri(self, datauri: typing.Optional[str]) -> None: ...


class QgsAuthMethodPlugins(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsAuthEditorWidgets(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsAuthIdentitiesEditor(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...


class QgsAuthImportCertDialog(QtWidgets.QDialog):

    class CertInput(int):
        AllInputs = ... # type: QgsAuthImportCertDialog.CertInput
        FileInput = ... # type: QgsAuthImportCertDialog.CertInput
        TextInput = ... # type: QgsAuthImportCertDialog.CertInput

    class CertFilter(int):
        NoFilter = ... # type: QgsAuthImportCertDialog.CertFilter
        CaFilter = ... # type: QgsAuthImportCertDialog.CertFilter

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., filter: 'QgsAuthImportCertDialog.CertFilter' = ..., input: 'QgsAuthImportCertDialog.CertInput' = ...) -> None: ...

    def certTrustPolicy(self) -> _core.QgsAuthCertUtils.CertTrustPolicy: ...
    def allowInvalidCerts(self) -> bool: ...
    def certTextToImport(self) -> str: ...
    def certFileToImport(self) -> str: ...
    def certificatesToImport(self) -> typing.List[QtNetwork.QSslCertificate]: ...


class QgsAuthImportIdentityDialog(QtWidgets.QDialog):

    class Validity(int):
        Valid = ... # type: QgsAuthImportIdentityDialog.Validity
        Invalid = ... # type: QgsAuthImportIdentityDialog.Validity
        Unknown = ... # type: QgsAuthImportIdentityDialog.Validity

    class BundleTypes(int):
        PkiPaths = ... # type: QgsAuthImportIdentityDialog.BundleTypes
        PkiPkcs12 = ... # type: QgsAuthImportIdentityDialog.BundleTypes

    class IdentityType(int):
        CertIdentity = ... # type: QgsAuthImportIdentityDialog.IdentityType

    def __init__(self, identitytype: 'QgsAuthImportIdentityDialog.IdentityType', parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def pkiBundleToImport(self) -> _core.QgsPkiBundle: ...
    def identityType(self) -> 'QgsAuthImportIdentityDialog.IdentityType': ...


class QgsAuthMethodEdit(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def clearConfig(self) -> None: ...
    def resetConfig(self) -> None: ...
    def loadConfig(self, configmap: typing.Dict[typing.Optional[str], typing.Optional[str]]) -> None: ...
    validityChanged: typing.ClassVar[QtCore.pyqtSignal]
    def configMap(self) -> typing.Dict[str, str]: ...
    def validateConfig(self) -> bool: ...


class QgsAuthServersEditor(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...


class QgsAuthSettingsWidget(QtWidgets.QWidget):

    class WarningType(int):
        ProjectFile = ... # type: QgsAuthSettingsWidget.WarningType
        UserSettings = ... # type: QgsAuthSettingsWidget.WarningType

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., configId: typing.Optional[str] = ..., username: typing.Optional[str] = ..., password: typing.Optional[str] = ..., dataprovider: typing.Optional[str] = ...) -> None: ...

    configIdChanged: typing.ClassVar[QtCore.pyqtSignal]
    passwordChanged: typing.ClassVar[QtCore.pyqtSignal]
    usernameChanged: typing.ClassVar[QtCore.pyqtSignal]
    def convertToEncrypted(self) -> bool: ...
    def configurationTabIsSelected(self) -> bool: ...
    def storeUsernameIsChecked(self) -> bool: ...
    def storePasswordIsChecked(self) -> bool: ...
    def setStorePasswordChecked(self, checked: bool) -> None: ...
    def setStoreUsernameChecked(self, checked: bool) -> None: ...
    def showStoreCheckboxes(self, enabled: bool) -> None: ...
    def btnConvertToEncryptedIsEnabled(self) -> bool: ...
    @staticmethod
    def formattedWarning(warning: 'QgsAuthSettingsWidget.WarningType') -> str: ...
    def dataprovider(self) -> str: ...
    def setDataprovider(self, dataprovider: typing.Optional[str]) -> None: ...
    def setConfigId(self, configId: typing.Optional[str]) -> None: ...
    def configId(self) -> str: ...
    def setPassword(self, password: typing.Optional[str]) -> None: ...
    def password(self) -> str: ...
    def setUsername(self, username: typing.Optional[str]) -> None: ...
    def username(self) -> str: ...
    def setBasicText(self, basicText: typing.Optional[str]) -> None: ...
    def setWarningText(self, warningText: typing.Optional[str]) -> None: ...


class QgsAuthSslConfigWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., cert: QtNetwork.QSslCertificate = ..., hostport: typing.Optional[str] = ..., connectionCAs: typing.Iterable[QtNetwork.QSslCertificate] = ...) -> None: ...

    readyToSaveChanged: typing.ClassVar[QtCore.pyqtSignal]
    hostPortValidityChanged: typing.ClassVar[QtCore.pyqtSignal]
    certFoundInAuthDatabase: typing.ClassVar[QtCore.pyqtSignal]
    configEnabledChanged: typing.ClassVar[QtCore.pyqtSignal]
    def readyToSave(self) -> bool: ...
    def validateHostPortText(self, txt: typing.Optional[str]) -> None: ...
    def setConfigCheckable(self, checkable: bool) -> None: ...
    def setSslHost(self, host: typing.Optional[str]) -> None: ...
    def resetSslPeerVerify(self) -> None: ...
    def setSslPeerVerify(self, mode: QtNetwork.QSslSocket.PeerVerifyMode, modedepth: int) -> None: ...
    def resetSslIgnoreErrors(self) -> None: ...
    def setSslIgnoreErrors(self, errors: typing.Iterable[QtNetwork.QSslError]) -> None: ...
    def setSslIgnoreErrorEnums(self, errorenums: typing.Any) -> None: ...
    def appendSslIgnoreErrors(self, errors: typing.Iterable[QtNetwork.QSslError]) -> None: ...
    def resetSslProtocol(self) -> None: ...
    def setSslProtocol(self, protocol: QtNetwork.QSsl.SslProtocol) -> None: ...
    def resetSslCertConfig(self) -> None: ...
    def saveSslCertConfig(self) -> None: ...
    def loadSslCustomConfig(self, config: _core.QgsAuthConfigSslServer = ...) -> None: ...
    def setSslCertificate(self, cert: QtNetwork.QSslCertificate, hostport: typing.Optional[str] = ...) -> None: ...
    def enableSslCustomOptions(self, enable: bool) -> None: ...
    def sslPeerVerifyDepth(self) -> int: ...
    def sslPeerVerifyMode(self) -> QtNetwork.QSslSocket.PeerVerifyMode: ...
    def sslIgnoreErrorEnums(self) -> typing.Any: ...
    def sslProtocol(self) -> QtNetwork.QSsl.SslProtocol: ...
    def sslHost(self) -> str: ...
    def sslCertificate(self) -> QtNetwork.QSslCertificate: ...
    def sslCustomConfig(self) -> _core.QgsAuthConfigSslServer: ...
    def sslConfigGroupBox(self) -> typing.Optional[QtWidgets.QGroupBox]: ...
    def certificateGroupBox(self) -> typing.Optional[QtWidgets.QGroupBox]: ...


class QgsAuthSslConfigDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., cert: QtNetwork.QSslCertificate = ..., hostport: typing.Optional[str] = ...) -> None: ...

    def accept(self) -> None: ...
    def sslCustomConfigWidget(self) -> typing.Optional[QgsAuthSslConfigWidget]: ...


class QgsAuthSslErrorsDialog(QtWidgets.QDialog):

    def __init__(self, reply: typing.Optional[QtNetwork.QNetworkReply], sslErrors: typing.Iterable[QtNetwork.QSslError], parent: typing.Optional[QtWidgets.QWidget] = ..., digest: typing.Optional[str] = ..., hostport: typing.Optional[str] = ...) -> None: ...


class QgsAuthSslImportDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def accept(self) -> None: ...


class QgsAuthTrustedCAsDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., trustedCAs: typing.Iterable[QtNetwork.QSslCertificate] = ...) -> None: ...

    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...


class QgsCalloutWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget], vl: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def registerDataDefinedButton(self, button: typing.Optional[QgsPropertyOverrideButton], key: _core.QgsCallout.Property) -> None: ...
    def setGeometryType(self, type: _core.Qgis.GeometryType) -> None: ...
    def vectorLayer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def callout(self) -> typing.Optional[_core.QgsCallout]: ...
    def setCallout(self, callout: typing.Optional[_core.QgsCallout]) -> None: ...


class QgsCodeInterpreter(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsCodeInterpreter') -> None: ...

    def execCommandImpl(self, command: typing.Optional[str]) -> int: ...
    def promptForState(self, state: int) -> str: ...
    def currentState(self) -> int: ...
    def exec(self, command: typing.Optional[str]) -> int: ...


class QgsCodeEditor(Qsci.QsciScintilla):

    class Flag(int):
        CodeFolding = ... # type: QgsCodeEditor.Flag
        ImmediatelyUpdateHistory = ... # type: QgsCodeEditor.Flag

    class MarginRole(int):
        LineNumbers = ... # type: QgsCodeEditor.MarginRole
        ErrorIndicators = ... # type: QgsCodeEditor.MarginRole
        FoldingControls = ... # type: QgsCodeEditor.MarginRole

    class Mode(int):
        ScriptEditor = ... # type: QgsCodeEditor.Mode
        OutputDisplay = ... # type: QgsCodeEditor.Mode
        CommandInput = ... # type: QgsCodeEditor.Mode

    class Flags(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsCodeEditor.Flags', 'QgsCodeEditor.Flag']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsCodeEditor.Flags', 'QgsCodeEditor.Flag']) -> 'QgsCodeEditor.Flags': ...
        def __xor__(self, f: typing.Union['QgsCodeEditor.Flags', 'QgsCodeEditor.Flag']) -> 'QgsCodeEditor.Flags': ...
        def __ior__(self, f: typing.Union['QgsCodeEditor.Flags', 'QgsCodeEditor.Flag']) -> 'QgsCodeEditor.Flags': ...
        def __or__(self, f: typing.Union['QgsCodeEditor.Flags', 'QgsCodeEditor.Flag']) -> 'QgsCodeEditor.Flags': ...
        def __iand__(self, f: typing.Union['QgsCodeEditor.Flags', 'QgsCodeEditor.Flag']) -> 'QgsCodeEditor.Flags': ...
        def __and__(self, f: typing.Union['QgsCodeEditor.Flags', 'QgsCodeEditor.Flag']) -> 'QgsCodeEditor.Flags': ...
        def __invert__(self) -> 'QgsCodeEditor.Flags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., title: typing.Optional[str] = ..., folding: bool = ..., margin: bool = ..., flags: typing.Union['QgsCodeEditor.Flags', 'QgsCodeEditor.Flag'] = ..., mode: 'QgsCodeEditor.Mode' = ...) -> None: ...

    def showMessage(self, title: typing.Optional[str], message: typing.Optional[str], level: _core.Qgis.MessageLevel) -> None: ...
    def reformatCodeString(self, string: typing.Optional[str]) -> str: ...
    def populateContextMenu(self, menu: typing.Optional[QtWidgets.QMenu]) -> None: ...
    def updatePrompt(self) -> None: ...
    def updateSoftHistory(self) -> None: ...
    def runPostLexerConfigurationTasks(self) -> None: ...
    def lexerFont(self) -> QtGui.QFont: ...
    def lexerColor(self, role: 'QgsCodeEditorColorScheme.ColorRole') -> QtGui.QColor: ...
    def initializeLexer(self) -> None: ...
    def eventFilter(self, watched: typing.Optional[QtCore.QObject], event: typing.Optional[QtCore.QEvent]) -> bool: ...
    def contextMenuEvent(self, event: typing.Optional[QtGui.QContextMenuEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def focusOutEvent(self, event: typing.Optional[QtGui.QFocusEvent]) -> None: ...
    @staticmethod
    def isFixedPitch(font: QtGui.QFont) -> bool: ...
    persistentHistoryCleared: typing.ClassVar[QtCore.pyqtSignal]
    sessionHistoryCleared: typing.ClassVar[QtCore.pyqtSignal]
    def toggleComment(self) -> None: ...
    def checkSyntax(self) -> bool: ...
    def reformatCode(self) -> None: ...
    def writeHistoryFile(self) -> bool: ...
    def clearPersistentHistory(self) -> None: ...
    def clearSessionHistory(self) -> None: ...
    def removeHistoryCommand(self, index: int) -> None: ...
    def showHistory(self) -> None: ...
    def showNextCommand(self) -> None: ...
    def showPreviousCommand(self) -> None: ...
    def moveCursorToEnd(self) -> None: ...
    def moveCursorToStart(self) -> None: ...
    def runCommand(self, command: typing.Optional[str], skipHistory: bool = ...) -> None: ...
    def setInterpreter(self, newInterpreter: typing.Optional[QgsCodeInterpreter]) -> None: ...
    def interpreter(self) -> typing.Optional[QgsCodeInterpreter]: ...
    def history(self) -> typing.List[str]: ...
    def setHistoryFilePath(self, path: typing.Optional[str]) -> None: ...
    def isCursorOnLastLine(self) -> bool: ...
    def mode(self) -> 'QgsCodeEditor.Mode': ...
    def clearWarnings(self) -> None: ...
    def addWarning(self, lineNumber: int, warning: typing.Optional[str]) -> None: ...
    @staticmethod
    def getMonospaceFont() -> QtGui.QFont: ...
    @staticmethod
    def setColor(role: 'QgsCodeEditorColorScheme.ColorRole', color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    @staticmethod
    def color(role: 'QgsCodeEditorColorScheme.ColorRole') -> QtGui.QColor: ...
    @staticmethod
    def defaultColor(role: 'QgsCodeEditorColorScheme.ColorRole', theme: typing.Optional[str] = ...) -> QtGui.QColor: ...
    def insertText(self, text: typing.Optional[str]) -> None: ...
    def foldingVisible(self) -> bool: ...
    def setFoldingVisible(self, folding: bool) -> None: ...
    def lineNumbersVisible(self) -> bool: ...
    def setLineNumbersVisible(self, visible: bool) -> None: ...
    def marginVisible(self) -> bool: ...
    def setMarginVisible(self, margin: bool) -> None: ...
    @staticmethod
    def languageToString(language: _core.Qgis.ScriptLanguage) -> str: ...
    def languageCapabilities(self) -> _core.Qgis.ScriptLanguageCapabilities: ...
    def language(self) -> _core.Qgis.ScriptLanguage: ...
    def setTitle(self, title: typing.Optional[str]) -> None: ...


class QgsCodeEditorColorScheme(PyQt5.sip.wrapper):

    class ColorRole(int):
        Default = ... # type: QgsCodeEditorColorScheme.ColorRole
        Keyword = ... # type: QgsCodeEditorColorScheme.ColorRole
        Class = ... # type: QgsCodeEditorColorScheme.ColorRole
        Method = ... # type: QgsCodeEditorColorScheme.ColorRole
        Decoration = ... # type: QgsCodeEditorColorScheme.ColorRole
        Number = ... # type: QgsCodeEditorColorScheme.ColorRole
        Comment = ... # type: QgsCodeEditorColorScheme.ColorRole
        CommentLine = ... # type: QgsCodeEditorColorScheme.ColorRole
        CommentBlock = ... # type: QgsCodeEditorColorScheme.ColorRole
        Background = ... # type: QgsCodeEditorColorScheme.ColorRole
        Cursor = ... # type: QgsCodeEditorColorScheme.ColorRole
        CaretLine = ... # type: QgsCodeEditorColorScheme.ColorRole
        SingleQuote = ... # type: QgsCodeEditorColorScheme.ColorRole
        DoubleQuote = ... # type: QgsCodeEditorColorScheme.ColorRole
        TripleSingleQuote = ... # type: QgsCodeEditorColorScheme.ColorRole
        TripleDoubleQuote = ... # type: QgsCodeEditorColorScheme.ColorRole
        Operator = ... # type: QgsCodeEditorColorScheme.ColorRole
        QuotedOperator = ... # type: QgsCodeEditorColorScheme.ColorRole
        Identifier = ... # type: QgsCodeEditorColorScheme.ColorRole
        QuotedIdentifier = ... # type: QgsCodeEditorColorScheme.ColorRole
        Tag = ... # type: QgsCodeEditorColorScheme.ColorRole
        UnknownTag = ... # type: QgsCodeEditorColorScheme.ColorRole
        MarginBackground = ... # type: QgsCodeEditorColorScheme.ColorRole
        MarginForeground = ... # type: QgsCodeEditorColorScheme.ColorRole
        SelectionBackground = ... # type: QgsCodeEditorColorScheme.ColorRole
        SelectionForeground = ... # type: QgsCodeEditorColorScheme.ColorRole
        MatchedBraceBackground = ... # type: QgsCodeEditorColorScheme.ColorRole
        MatchedBraceForeground = ... # type: QgsCodeEditorColorScheme.ColorRole
        Edge = ... # type: QgsCodeEditorColorScheme.ColorRole
        Fold = ... # type: QgsCodeEditorColorScheme.ColorRole
        Error = ... # type: QgsCodeEditorColorScheme.ColorRole
        ErrorBackground = ... # type: QgsCodeEditorColorScheme.ColorRole
        FoldIconForeground = ... # type: QgsCodeEditorColorScheme.ColorRole
        FoldIconHalo = ... # type: QgsCodeEditorColorScheme.ColorRole
        IndentationGuide = ... # type: QgsCodeEditorColorScheme.ColorRole

    @typing.overload
    def __init__(self, id: typing.Optional[str] = ..., name: typing.Optional[str] = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsCodeEditorColorScheme') -> None: ...

    def setColor(self, role: 'QgsCodeEditorColorScheme.ColorRole', color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def color(self, role: 'QgsCodeEditorColorScheme.ColorRole') -> QtGui.QColor: ...
    def name(self) -> str: ...
    def id(self) -> str: ...


class QgsCodeEditorColorSchemeRegistry(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsCodeEditorColorSchemeRegistry') -> None: ...

    def scheme(self, id: typing.Optional[str]) -> QgsCodeEditorColorScheme: ...
    def schemes(self) -> typing.List[str]: ...
    def removeColorScheme(self, id: typing.Optional[str]) -> bool: ...
    def addColorScheme(self, scheme: QgsCodeEditorColorScheme) -> bool: ...


class QgsCodeEditorCSS(QgsCodeEditor):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def initializeLexer(self) -> None: ...
    def language(self) -> _core.Qgis.ScriptLanguage: ...


class QgsCodeEditorDockWidget(QtWidgets.QWidget):

    def __init__(self, windowGeometrySettingsKey: typing.Optional[str] = ..., usePersistentWidget: bool = ...) -> None: ...

    visibilityChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setUserVisible(self, visible: bool) -> None: ...
    def isUserVisible(self) -> bool: ...
    def setDockObjectName(self, name: typing.Optional[str]) -> None: ...
    def dockToggleButton(self) -> typing.Optional[QtWidgets.QToolButton]: ...
    def setTitle(self, title: typing.Optional[str]) -> None: ...


class QgsCodeEditorExpression(QgsCodeEditor):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def initializeLexer(self) -> None: ...
    def setFields(self, fields: _core.QgsFields) -> None: ...
    def setExpressionContext(self, context: _core.QgsExpressionContext) -> None: ...
    def language(self) -> _core.Qgis.ScriptLanguage: ...


class QgsCodeEditorHTML(QgsCodeEditor):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def reformatCodeString(self, string: typing.Optional[str]) -> str: ...
    def initializeLexer(self) -> None: ...
    def toggleComment(self) -> None: ...
    def languageCapabilities(self) -> _core.Qgis.ScriptLanguageCapabilities: ...
    def language(self) -> _core.Qgis.ScriptLanguage: ...


class QgsCodeEditorJavascript(QgsCodeEditor):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def initializeLexer(self) -> None: ...
    def language(self) -> _core.Qgis.ScriptLanguage: ...


class QgsCodeEditorJson(QgsCodeEditor):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def initializeLexer(self) -> None: ...
    def language(self) -> _core.Qgis.ScriptLanguage: ...


class QgsCodeEditorPython(QgsCodeEditor):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., filenames: typing.Iterable[typing.Optional[str]] = ..., mode: QgsCodeEditor.Mode = ..., flags: typing.Union[QgsCodeEditor.Flags, QgsCodeEditor.Flag] = ...) -> None: ...

    def autoComplete(self) -> None: ...
    def populateContextMenu(self, menu: typing.Optional[QtWidgets.QMenu]) -> None: ...
    def reformatCodeString(self, string: typing.Optional[str]) -> str: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def initializeLexer(self) -> None: ...
    def toggleComment(self) -> None: ...
    def searchSelectedTextInPyQGISDocs(self) -> None: ...
    def checkSyntax(self) -> bool: ...
    def updateCapabilities(self) -> None: ...
    def characterAfterCursor(self) -> str: ...
    def characterBeforeCursor(self) -> str: ...
    def isCursorInsideStringLiteralOrComment(self) -> bool: ...
    def loadScript(self, script: typing.Optional[str]) -> bool: ...
    def loadAPIs(self, filenames: typing.Iterable[typing.Optional[str]]) -> None: ...
    def languageCapabilities(self) -> _core.Qgis.ScriptLanguageCapabilities: ...
    def language(self) -> _core.Qgis.ScriptLanguage: ...


class QgsCodeEditorR(QgsCodeEditor):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., mode: QgsCodeEditor.Mode = ...) -> None: ...

    def initializeLexer(self) -> None: ...
    def language(self) -> _core.Qgis.ScriptLanguage: ...


class QgsCodeEditorShell(QgsCodeEditor):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., mode: QgsCodeEditor.Mode = ..., language: _core.Qgis.ScriptLanguage = ...) -> None: ...

    def initializeLexer(self) -> None: ...
    def language(self) -> _core.Qgis.ScriptLanguage: ...


class QgsCodeEditorSQL(QgsCodeEditor):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def initializeLexer(self) -> None: ...
    def extraKeywords(self) -> typing.List[str]: ...
    def setExtraKeywords(self, extraKeywords: typing.Iterable[typing.Optional[str]]) -> None: ...
    def fieldNames(self) -> typing.List[str]: ...
    def setFieldNames(self, fieldNames: typing.Iterable[typing.Optional[str]]) -> None: ...
    def setFields(self, fields: _core.QgsFields) -> None: ...
    def language(self) -> _core.Qgis.ScriptLanguage: ...


class QgsDevToolWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsDevToolWidgetFactory(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self, title: typing.Optional[str] = ..., icon: QtGui.QIcon = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsDevToolWidgetFactory') -> None: ...

    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QgsDevToolWidget]: ...
    def setTitle(self, title: typing.Optional[str]) -> None: ...
    def title(self) -> str: ...
    def setIcon(self, icon: QtGui.QIcon) -> None: ...
    def icon(self) -> QtGui.QIcon: ...


class QgsEditorConfigWidget(QtWidgets.QWidget, _core.QgsExpressionContextGenerator):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, parent: typing.Optional[QtWidgets.QWidget]) -> None: ...

    def updateDataDefinedButton(self, button: typing.Optional[QgsPropertyOverrideButton]) -> None: ...
    def updateDataDefinedButtons(self) -> None: ...
    def initializeDataDefinedButton(self, button: typing.Optional[QgsPropertyOverrideButton], key: 'QgsWidgetWrapper.Property') -> None: ...
    changed: typing.ClassVar[QtCore.pyqtSignal]
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def field(self) -> int: ...
    def setConfig(self, config: typing.Dict[str, typing.Any]) -> None: ...
    def config(self) -> typing.Dict[str, typing.Any]: ...


class QgsEditorWidgetAutoConfPlugin(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsEditorWidgetAutoConfPlugin') -> None: ...

    def editorWidgetSetup(self, vl: typing.Optional[_core.QgsVectorLayer], fieldName: typing.Optional[str]) -> typing.Tuple[_core.QgsEditorWidgetSetup, int]: ...


class QgsEditorWidgetFactory(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self, name: typing.Optional[str]) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsEditorWidgetFactory') -> None: ...

    def fieldScore(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int) -> int: ...
    def supportsField(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int) -> bool: ...
    def configWidget(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QgsEditorConfigWidget]: ...
    def name(self) -> str: ...
    def createSearchWidget(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional['QgsSearchWidgetWrapper']: ...
    def create(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, editor: typing.Optional[QtWidgets.QWidget], parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional['QgsEditorWidgetWrapper']: ...


class QgsEditorWidgetRegistry(QtCore.QObject):

    def __init__(self) -> None: ...

    def registerAutoConfPlugin(self, plugin: typing.Optional[QgsEditorWidgetAutoConfPlugin]) -> None: ...
    def registerWidget(self, widgetId: typing.Optional[str], widgetFactory: typing.Optional[QgsEditorWidgetFactory]) -> bool: ...
    def factory(self, widgetId: typing.Optional[str]) -> typing.Optional[QgsEditorWidgetFactory]: ...
    def factories(self) -> typing.Any: ...
    def name(self, widgetId: typing.Optional[str]) -> str: ...
    def createConfigWidget(self, widgetId: typing.Optional[str], vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QgsEditorConfigWidget]: ...
    def createSearchWidget(self, widgetId: typing.Optional[str], vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, config: typing.Dict[str, typing.Any], parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional['QgsSearchWidgetWrapper']: ...
    @typing.overload
    def create(self, widgetId: typing.Optional[str], vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, config: typing.Dict[str, typing.Any], editor: typing.Optional[QtWidgets.QWidget], parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional['QgsEditorWidgetWrapper']: ...
    @typing.overload
    def create(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, editor: typing.Optional[QtWidgets.QWidget], parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional['QgsEditorWidgetWrapper']: ...
    def findBest(self, vl: typing.Optional[_core.QgsVectorLayer], fieldName: typing.Optional[str]) -> _core.QgsEditorWidgetSetup: ...
    def initEditors(self, mapCanvas: typing.Optional[QgsMapCanvas] = ..., messageBar: typing.Optional[QgsMessageBar] = ...) -> None: ...


class QgsWidgetWrapper(QtCore.QObject):

    class Property(int):
        RootPath = ... # type: QgsWidgetWrapper.Property
        DocumentViewerContent = ... # type: QgsWidgetWrapper.Property
        StorageUrl = ... # type: QgsWidgetWrapper.Property

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], editor: typing.Optional[QtWidgets.QWidget] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setEnabled(self, enabled: bool) -> None: ...
    def setFeature(self, feature: _core.QgsFeature) -> None: ...
    def initWidget(self, editor: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QWidget]: ...
    contextChanged: typing.ClassVar[QtCore.pyqtSignal]
    def notifyAboutToSave(self) -> None: ...
    def setDataDefinedProperties(self, collection: _core.QgsPropertyCollection) -> None: ...
    def dataDefinedProperties(self) -> _core.QgsPropertyCollection: ...
    def valid(self) -> bool: ...
    @staticmethod
    def fromWidget(widget: typing.Optional[QtWidgets.QWidget]) -> typing.Optional['QgsWidgetWrapper']: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def context(self) -> QgsAttributeEditorContext: ...
    @typing.overload
    def config(self, key: typing.Optional[str], defaultVal: typing.Any = ...) -> typing.Any: ...
    @typing.overload
    def config(self) -> typing.Dict[str, typing.Any]: ...
    def setContext(self, context: QgsAttributeEditorContext) -> None: ...
    def setConfig(self, config: typing.Dict[str, typing.Any]) -> None: ...
    def widget(self) -> typing.Optional[QtWidgets.QWidget]: ...
    @staticmethod
    def propertyDefinitions() -> typing.Dict[int, _core.QgsPropertyDefinition]: ...


class QgsEditorWidgetWrapper(QgsWidgetWrapper):

    class ConstraintResult(int):
        ConstraintResultPass = ... # type: QgsEditorWidgetWrapper.ConstraintResult
        ConstraintResultFailHard = ... # type: QgsEditorWidgetWrapper.ConstraintResult
        ConstraintResultFailSoft = ... # type: QgsEditorWidgetWrapper.ConstraintResult

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, editor: typing.Optional[QtWidgets.QWidget] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setFormFeatureAttribute(self, attributeName: typing.Optional[str], attributeValue: typing.Any) -> bool: ...
    def setFormFeature(self, feature: _core.QgsFeature) -> None: ...
    def formFeature(self) -> _core.QgsFeature: ...
    def updateConstraintWidgetStatus(self) -> None: ...
    def parentFormValueChanged(self, attribute: typing.Optional[str], value: typing.Any) -> None: ...
    def emitValueChanged(self) -> None: ...
    def setValues(self, value: typing.Any, additionalValues: typing.Iterable[typing.Any]) -> None: ...
    def setValue(self, value: typing.Any) -> None: ...
    def setFeature(self, feature: _core.QgsFeature) -> None: ...
    constraintResultVisibleChanged: typing.ClassVar[QtCore.pyqtSignal]
    constraintStatusChanged: typing.ClassVar[QtCore.pyqtSignal]
    valuesChanged: typing.ClassVar[QtCore.pyqtSignal]
    valueChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setConstraintResultVisible(self, constraintResultVisible: bool) -> None: ...
    def constraintResultVisible(self) -> bool: ...
    def constraintResult(self) -> 'QgsEditorWidgetWrapper.ConstraintResult': ...
    def setHint(self, hintText: typing.Optional[str]) -> None: ...
    def constraintFailureReason(self) -> str: ...
    def isBlockingCommit(self) -> bool: ...
    def isValidConstraint(self) -> bool: ...
    @typing.overload
    def updateConstraint(self, featureContext: _core.QgsFeature, constraintOrigin: _core.QgsFieldConstraints.ConstraintOrigin = ...) -> None: ...
    @typing.overload
    def updateConstraint(self, layer: typing.Optional[_core.QgsVectorLayer], index: int, feature: _core.QgsFeature, constraintOrigin: _core.QgsFieldConstraints.ConstraintOrigin = ...) -> None: ...
    @typing.overload
    def updateConstraint(self, constraintResult: 'QgsEditorWidgetWrapper.ConstraintResult', constraintFailureReason: typing.Optional[str]) -> None: ...
    def showIndeterminateState(self) -> None: ...
    def setEnabled(self, enabled: bool) -> None: ...
    @staticmethod
    def isInTable(parent: typing.Optional[QtWidgets.QWidget]) -> bool: ...
    @staticmethod
    def fromWidget(widget: typing.Optional[QtWidgets.QWidget]) -> typing.Optional['QgsEditorWidgetWrapper']: ...
    def defaultValue(self) -> typing.Any: ...
    def field(self) -> _core.QgsField: ...
    def fieldIdx(self) -> int: ...
    def additionalFieldValues(self) -> typing.List[typing.Any]: ...
    def additionalFields(self) -> typing.List[str]: ...
    def value(self) -> typing.Any: ...


class QgsSearchWidgetWrapper(QgsWidgetWrapper):

    class FilterFlag(int):
        EqualTo = ... # type: QgsSearchWidgetWrapper.FilterFlag
        NotEqualTo = ... # type: QgsSearchWidgetWrapper.FilterFlag
        GreaterThan = ... # type: QgsSearchWidgetWrapper.FilterFlag
        LessThan = ... # type: QgsSearchWidgetWrapper.FilterFlag
        GreaterThanOrEqualTo = ... # type: QgsSearchWidgetWrapper.FilterFlag
        LessThanOrEqualTo = ... # type: QgsSearchWidgetWrapper.FilterFlag
        Between = ... # type: QgsSearchWidgetWrapper.FilterFlag
        CaseInsensitive = ... # type: QgsSearchWidgetWrapper.FilterFlag
        Contains = ... # type: QgsSearchWidgetWrapper.FilterFlag
        DoesNotContain = ... # type: QgsSearchWidgetWrapper.FilterFlag
        IsNull = ... # type: QgsSearchWidgetWrapper.FilterFlag
        IsNotBetween = ... # type: QgsSearchWidgetWrapper.FilterFlag
        IsNotNull = ... # type: QgsSearchWidgetWrapper.FilterFlag
        StartsWith = ... # type: QgsSearchWidgetWrapper.FilterFlag
        EndsWith = ... # type: QgsSearchWidgetWrapper.FilterFlag

    class FilterFlags(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsSearchWidgetWrapper.FilterFlags', 'QgsSearchWidgetWrapper.FilterFlag']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsSearchWidgetWrapper.FilterFlags', 'QgsSearchWidgetWrapper.FilterFlag']) -> 'QgsSearchWidgetWrapper.FilterFlags': ...
        def __xor__(self, f: typing.Union['QgsSearchWidgetWrapper.FilterFlags', 'QgsSearchWidgetWrapper.FilterFlag']) -> 'QgsSearchWidgetWrapper.FilterFlags': ...
        def __ior__(self, f: typing.Union['QgsSearchWidgetWrapper.FilterFlags', 'QgsSearchWidgetWrapper.FilterFlag']) -> 'QgsSearchWidgetWrapper.FilterFlags': ...
        def __or__(self, f: typing.Union['QgsSearchWidgetWrapper.FilterFlags', 'QgsSearchWidgetWrapper.FilterFlag']) -> 'QgsSearchWidgetWrapper.FilterFlags': ...
        def __iand__(self, f: typing.Union['QgsSearchWidgetWrapper.FilterFlags', 'QgsSearchWidgetWrapper.FilterFlag']) -> 'QgsSearchWidgetWrapper.FilterFlags': ...
        def __and__(self, f: typing.Union['QgsSearchWidgetWrapper.FilterFlags', 'QgsSearchWidgetWrapper.FilterFlag']) -> 'QgsSearchWidgetWrapper.FilterFlags': ...
        def __invert__(self) -> 'QgsSearchWidgetWrapper.FilterFlags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def clearExpression(self) -> None: ...
    def setFeature(self, feature: _core.QgsFeature) -> None: ...
    def setExpression(self, expression: typing.Optional[str]) -> None: ...
    valueCleared: typing.ClassVar[QtCore.pyqtSignal]
    valueChanged: typing.ClassVar[QtCore.pyqtSignal]
    expressionChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setEnabled(self, enabled: bool) -> None: ...
    def clearWidget(self) -> None: ...
    def fieldIndex(self) -> int: ...
    def setAggregate(self, aggregate: typing.Optional[str]) -> None: ...
    def aggregate(self) -> str: ...
    def createFieldIdentifier(self) -> str: ...
    def createExpression(self, flags: typing.Union['QgsSearchWidgetWrapper.FilterFlags', 'QgsSearchWidgetWrapper.FilterFlag']) -> str: ...
    def applyDirectly(self) -> bool: ...
    def expression(self) -> str: ...
    def defaultFlags(self) -> 'QgsSearchWidgetWrapper.FilterFlags': ...
    def supportedFlags(self) -> 'QgsSearchWidgetWrapper.FilterFlags': ...
    @staticmethod
    def toString(flag: 'QgsSearchWidgetWrapper.FilterFlag') -> str: ...
    @staticmethod
    def nonExclusiveFilterFlags() -> typing.Any: ...
    @staticmethod
    def exclusiveFilterFlags() -> typing.Any: ...


class QgsActionWidgetWrapper(QgsWidgetWrapper):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], editor: typing.Optional[QtWidgets.QWidget], parent: typing.Optional[QtWidgets.QWidget]) -> None: ...

    def setEnabled(self, enabled: bool) -> None: ...
    def setFeature(self, feature: _core.QgsFeature) -> None: ...
    def initWidget(self, editor: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QWidget]: ...
    def valid(self) -> bool: ...
    def setAction(self, action: _core.QgsAction) -> None: ...


class QgsCheckboxSearchWidgetWrapper(QgsSearchWidgetWrapper):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setExpression(self, expression: typing.Optional[str]) -> None: ...
    def initWidget(self, editor: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QWidget]: ...
    def setEnabled(self, enabled: bool) -> None: ...
    def clearWidget(self) -> None: ...
    def createExpression(self, flags: typing.Union[QgsSearchWidgetWrapper.FilterFlags, QgsSearchWidgetWrapper.FilterFlag]) -> str: ...
    def defaultFlags(self) -> QgsSearchWidgetWrapper.FilterFlags: ...
    def supportedFlags(self) -> QgsSearchWidgetWrapper.FilterFlags: ...
    def valid(self) -> bool: ...
    def expression(self) -> str: ...
    def applyDirectly(self) -> bool: ...
    def value(self) -> typing.Any: ...


class QgsDateTimeEdit(QtWidgets.QDateTimeEdit):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def isNull(self) -> bool: ...
    def emitValueChanged(self, value: typing.Any) -> None: ...
    def displayNull(self, updateCalendar: bool = ...) -> None: ...
    def showEvent(self, event: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def wheelEvent(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def focusInEvent(self, event: typing.Optional[QtGui.QFocusEvent]) -> None: ...
    def focusOutEvent(self, event: typing.Optional[QtGui.QFocusEvent]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    valueChanged: typing.ClassVar[QtCore.pyqtSignal]
    def event(self, event: typing.Optional[QtCore.QEvent]) -> bool: ...
    def setNullRepresentation(self, null: typing.Optional[str]) -> None: ...
    def nullRepresentation(self) -> str: ...
    def setEmpty(self) -> None: ...
    def clear(self) -> None: ...
    def date(self) -> QtCore.QDate: ...
    def time(self) -> QtCore.QTime: ...
    def dateTime(self) -> QtCore.QDateTime: ...
    def setDateTime(self, dateTime: typing.Union[QtCore.QDateTime, datetime.datetime]) -> None: ...
    def allowNull(self) -> bool: ...
    def setAllowNull(self, allowNull: bool) -> None: ...


class QgsTimeEdit(QgsDateTimeEdit):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def emitValueChanged(self, value: typing.Any) -> None: ...
    timeValueChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setTime(self, time: typing.Union[QtCore.QTime, datetime.time]) -> None: ...


class QgsDateEdit(QgsDateTimeEdit):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def emitValueChanged(self, value: typing.Any) -> None: ...
    dateValueChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setDate(self, date: typing.Union[QtCore.QDate, datetime.date]) -> None: ...


class QgsDateTimeSearchWidgetWrapper(QgsSearchWidgetWrapper):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setExpression(self, exp: typing.Optional[str]) -> None: ...
    def initWidget(self, editor: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QWidget]: ...
    def setEnabled(self, enabled: bool) -> None: ...
    def clearWidget(self) -> None: ...
    def createExpression(self, flags: typing.Union[QgsSearchWidgetWrapper.FilterFlags, QgsSearchWidgetWrapper.FilterFlag]) -> str: ...
    def defaultFlags(self) -> QgsSearchWidgetWrapper.FilterFlags: ...
    def supportedFlags(self) -> QgsSearchWidgetWrapper.FilterFlags: ...
    def valid(self) -> bool: ...
    def expression(self) -> str: ...
    def applyDirectly(self) -> bool: ...
    def value(self) -> typing.Any: ...


class QgsDefaultSearchWidgetWrapper(QgsSearchWidgetWrapper):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def caseSensitiveCheckBox(self) -> typing.Optional[QtWidgets.QCheckBox]: ...
    def lineEdit(self) -> typing.Optional[QgsFilterLineEdit]: ...
    def valid(self) -> bool: ...
    def initWidget(self, editor: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QWidget]: ...
    def setExpression(self, exp: typing.Optional[str]) -> None: ...
    def setEnabled(self, enabled: bool) -> None: ...
    def clearWidget(self) -> None: ...
    def createExpression(self, flags: typing.Union[QgsSearchWidgetWrapper.FilterFlags, QgsSearchWidgetWrapper.FilterFlag]) -> str: ...
    def defaultFlags(self) -> QgsSearchWidgetWrapper.FilterFlags: ...
    def supportedFlags(self) -> QgsSearchWidgetWrapper.FilterFlags: ...
    def applyDirectly(self) -> bool: ...
    def expression(self) -> str: ...


class QgsDoubleSpinBox(QtWidgets.QDoubleSpinBox):

    class ClearValueMode(int):
        MinimumValue = ... # type: QgsDoubleSpinBox.ClearValueMode
        MaximumValue = ... # type: QgsDoubleSpinBox.ClearValueMode
        CustomValue = ... # type: QgsDoubleSpinBox.ClearValueMode

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def timerEvent(self, event: typing.Optional[QtCore.QTimerEvent]) -> None: ...
    def wheelEvent(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def changeEvent(self, event: typing.Optional[QtCore.QEvent]) -> None: ...
    def paintEvent(self, e: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def validate(self, input: typing.Optional[str]) -> typing.Tuple[QtGui.QValidator.State, int]: ...
    def valueFromText(self, text: typing.Optional[str]) -> float: ...
    def setSpecialValueText(self, txt: typing.Optional[str]) -> None: ...
    def setLineEditAlignment(self, alignment: typing.Union[QtCore.Qt.Alignment, QtCore.Qt.AlignmentFlag]) -> None: ...
    def clearValue(self) -> float: ...
    def setClearValueMode(self, mode: 'QgsDoubleSpinBox.ClearValueMode', clearValueText: typing.Optional[str] = ...) -> None: ...
    def setClearValue(self, customValue: float, clearValueText: typing.Optional[str] = ...) -> None: ...
    def clear(self) -> None: ...
    def expressionsEnabled(self) -> bool: ...
    def setExpressionsEnabled(self, enabled: bool) -> None: ...
    def showClearButton(self) -> bool: ...
    def setShowClearButton(self, showClearButton: bool) -> None: ...


class QgsHtmlWidgetWrapper(QgsWidgetWrapper):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], editor: typing.Optional[QtWidgets.QWidget], parent: typing.Optional[QtWidgets.QWidget]) -> None: ...

    def setFeature(self, feature: _core.QgsFeature) -> None: ...
    def needsGeometry(self) -> bool: ...
    def setHtmlCode(self, htmlCode: typing.Optional[str]) -> None: ...
    def reinitWidget(self) -> None: ...
    def initWidget(self, editor: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QWidget]: ...
    def valid(self) -> bool: ...


class QgsJsonEditWidget(QtWidgets.QWidget):

    class FormatJson(int):
        Indented = ... # type: QgsJsonEditWidget.FormatJson
        Compact = ... # type: QgsJsonEditWidget.FormatJson
        Disabled = ... # type: QgsJsonEditWidget.FormatJson

    class View(int):
        Text = ... # type: QgsJsonEditWidget.View
        Tree = ... # type: QgsJsonEditWidget.View

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setControlsVisible(self, visible: bool) -> None: ...
    def setFormatJsonMode(self, formatJson: 'QgsJsonEditWidget.FormatJson') -> None: ...
    def setView(self, view: 'QgsJsonEditWidget.View') -> None: ...
    def jsonText(self) -> str: ...
    def setJsonText(self, jsonText: typing.Optional[str]) -> None: ...


class QgsMultiEditToolButton(QtWidgets.QToolButton):

    class State(int):
        Default = ... # type: QgsMultiEditToolButton.State
        MixedValues = ... # type: QgsMultiEditToolButton.State
        Changed = ... # type: QgsMultiEditToolButton.State

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    resetFieldValueTriggered: typing.ClassVar[QtCore.pyqtSignal]
    setFieldValueTriggered: typing.ClassVar[QtCore.pyqtSignal]
    def changesCommitted(self) -> None: ...
    def resetChanges(self) -> None: ...
    def setIsChanged(self, changed: bool) -> None: ...
    def setIsMixed(self, mixed: bool) -> None: ...
    def setField(self, field: _core.QgsField) -> None: ...
    def state(self) -> 'QgsMultiEditToolButton.State': ...


class QgsRelationAggregateSearchWidgetWrapper(QgsSearchWidgetWrapper):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], wrapper: typing.Optional['QgsRelationWidgetWrapper'], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def eventFilter(self, watched: typing.Optional[QtCore.QObject], event: typing.Optional[QtCore.QEvent]) -> bool: ...
    def setExpression(self, value: typing.Optional[str]) -> None: ...
    def applyDirectly(self) -> bool: ...
    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QWidget]: ...
    def valid(self) -> bool: ...
    def expression(self) -> str: ...


class QgsRelationReferenceSearchWidgetWrapper(QgsSearchWidgetWrapper):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, canvas: typing.Optional[QgsMapCanvas], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setExpression(self, exp: typing.Optional[str]) -> None: ...
    def onValueChanged(self, value: typing.Any) -> None: ...
    def initWidget(self, editor: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QWidget]: ...
    def setEnabled(self, enabled: bool) -> None: ...
    def clearWidget(self) -> None: ...
    def createExpression(self, flags: typing.Union[QgsSearchWidgetWrapper.FilterFlags, QgsSearchWidgetWrapper.FilterFlag]) -> str: ...
    def defaultFlags(self) -> QgsSearchWidgetWrapper.FilterFlags: ...
    def supportedFlags(self) -> QgsSearchWidgetWrapper.FilterFlags: ...
    def valid(self) -> bool: ...
    def expression(self) -> str: ...
    def applyDirectly(self) -> bool: ...
    def value(self) -> typing.Any: ...


class QgsRelationReferenceWidget(QtWidgets.QWidget):

    class CanvasExtent(int):
        Fixed = ... # type: QgsRelationReferenceWidget.CanvasExtent
        Pan = ... # type: QgsRelationReferenceWidget.CanvasExtent
        Scale = ... # type: QgsRelationReferenceWidget.CanvasExtent

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget]) -> None: ...

    foreignKeysChanged: typing.ClassVar[QtCore.pyqtSignal]
    foreignKeyChanged: typing.ClassVar[QtCore.pyqtSignal]
    def init(self) -> None: ...
    def showEvent(self, e: typing.Optional[QtGui.QShowEvent]) -> None: ...
    def deleteForeignKeys(self) -> None: ...
    def mapIdentification(self) -> None: ...
    def openForm(self) -> None: ...
    def setFetchLimit(self, fetchLimit: int) -> None: ...
    def fetchLimit(self) -> int: ...
    def setReferencedLayerName(self, referencedLayerName: typing.Optional[str]) -> None: ...
    def referencedLayerName(self) -> str: ...
    def setReferencedLayerId(self, referencedLayerId: typing.Optional[str]) -> None: ...
    def referencedLayerId(self) -> str: ...
    def setReferencedLayerProviderKey(self, referencedLayerProviderKey: typing.Optional[str]) -> None: ...
    def referencedLayerProviderKey(self) -> str: ...
    def setReferencedLayerDataSource(self, referencedLayerDataSource: typing.Optional[str]) -> None: ...
    def referencedLayerDataSource(self) -> str: ...
    def setFormFeature(self, formFeature: _core.QgsFeature) -> None: ...
    def relation(self) -> _core.QgsRelation: ...
    def setAllowAddFeatures(self, allowAddFeatures: bool) -> None: ...
    def allowAddFeatures(self) -> bool: ...
    def showIndeterminateState(self) -> None: ...
    def referencedFeature(self) -> _core.QgsFeature: ...
    def setFilterExpression(self, filterExpression: typing.Optional[str]) -> None: ...
    def filterExpression(self) -> str: ...
    def setChainFilters(self, chainFilters: bool) -> None: ...
    def chainFilters(self) -> bool: ...
    def setOpenFormButtonVisible(self, openFormButtonVisible: bool) -> None: ...
    def openFormButtonVisible(self) -> bool: ...
    def setFilterFields(self, filterFields: typing.Iterable[typing.Optional[str]]) -> None: ...
    def setAllowMapIdentification(self, allowMapIdentification: bool) -> None: ...
    def allowMapIdentification(self) -> bool: ...
    def setReadOnlySelector(self, readOnly: bool) -> None: ...
    def readOnlySelector(self) -> bool: ...
    def setEmbedForm(self, display: bool) -> None: ...
    def embedForm(self) -> bool: ...
    def setEditorContext(self, context: QgsAttributeEditorContext, canvas: typing.Optional[QgsMapCanvas], messageBar: typing.Optional[QgsMessageBar]) -> None: ...
    def foreignKeys(self) -> typing.List[typing.Any]: ...
    def foreignKey(self) -> typing.Any: ...
    def setForeignKeys(self, values: typing.Iterable[typing.Any]) -> None: ...
    def setForeignKey(self, value: typing.Any) -> None: ...
    def setRelationEditable(self, editable: bool) -> None: ...
    def setRelation(self, relation: _core.QgsRelation, allowNullValue: bool) -> None: ...


class QgsRelationReferenceWidgetWrapper(QgsEditorWidgetWrapper):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, editor: typing.Optional[QtWidgets.QWidget], canvas: typing.Optional[QgsMapCanvas], messageBar: typing.Optional[QgsMessageBar], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def updateConstraintWidgetStatus(self) -> None: ...
    def setEnabled(self, enabled: bool) -> None: ...
    def additionalFields(self) -> typing.List[str]: ...
    def additionalFieldValues(self) -> typing.List[typing.Any]: ...
    def showIndeterminateState(self) -> None: ...
    def valid(self) -> bool: ...
    def value(self) -> typing.Any: ...
    def initWidget(self, editor: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QWidget]: ...


class QgsRelationWidgetWrapper(QgsWidgetWrapper):

    @typing.overload
    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], relation: _core.QgsRelation, editor: typing.Optional[QtWidgets.QWidget] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    @typing.overload
    def __init__(self, relationEditorName: typing.Optional[str], vl: typing.Optional[_core.QgsVectorLayer], relation: _core.QgsRelation, editor: typing.Optional[QtWidgets.QWidget] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setVisible(self, visible: bool) -> None: ...
    def setMultiEditFeatureIds(self, fids: typing.Any) -> None: ...
    def setFeature(self, feature: _core.QgsFeature) -> None: ...
    relatedFeaturesChanged: typing.ClassVar[QtCore.pyqtSignal]
    def valid(self) -> bool: ...
    def initWidget(self, editor: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QWidget]: ...
    def widgetValueChanged(self, attribute: typing.Optional[str], newValue: typing.Any, attributeChanged: bool) -> None: ...
    def relation(self) -> _core.QgsRelation: ...
    def setLabel(self, label: typing.Optional[str] = ...) -> None: ...
    def label(self) -> str: ...
    def setNmRelationId(self, nmRelationId: typing.Any = ...) -> None: ...
    def nmRelationId(self) -> typing.Any: ...
    def setForceSuppressFormPopup(self, forceSuppressFormPopup: bool) -> None: ...
    def forceSuppressFormPopup(self) -> bool: ...
    def widgetConfig(self) -> typing.Dict[str, typing.Any]: ...
    def setWidgetConfig(self, config: typing.Dict[str, typing.Any]) -> None: ...
    def visibleButtons(self) -> _core.QgsAttributeEditorRelation.Buttons: ...
    def setVisibleButtons(self, buttons: typing.Union[_core.QgsAttributeEditorRelation.Buttons, _core.QgsAttributeEditorRelation.Button]) -> None: ...
    def showSaveChildEditsButton(self) -> bool: ...
    def setShowSaveChildEditsButton(self, showChildEdits: bool) -> None: ...
    def setShowUnlinkButton(self, showUnlinkButton: bool) -> None: ...
    def showUnlinkButton(self) -> bool: ...
    def setShowLinkButton(self, showLinkButton: bool) -> None: ...
    def showLinkButton(self) -> bool: ...
    def setShowLabel(self, showLabel: bool) -> None: ...
    def showLabel(self) -> bool: ...


class QgsSearchWidgetToolButton(QtWidgets.QToolButton):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    activeFlagsChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setActive(self) -> None: ...
    def setInactive(self) -> None: ...
    def isActive(self) -> bool: ...
    def activeFlags(self) -> QgsSearchWidgetWrapper.FilterFlags: ...
    def toggleFlag(self, flag: QgsSearchWidgetWrapper.FilterFlag) -> None: ...
    def setActiveFlags(self, flags: typing.Union[QgsSearchWidgetWrapper.FilterFlags, QgsSearchWidgetWrapper.FilterFlag]) -> None: ...
    def availableFlags(self) -> QgsSearchWidgetWrapper.FilterFlags: ...
    def setDefaultFlags(self, flags: typing.Union[QgsSearchWidgetWrapper.FilterFlags, QgsSearchWidgetWrapper.FilterFlag]) -> None: ...
    def setAvailableFlags(self, flags: typing.Union[QgsSearchWidgetWrapper.FilterFlags, QgsSearchWidgetWrapper.FilterFlag]) -> None: ...


class QgsSpacerWidgetWrapper(QgsWidgetWrapper):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], editor: typing.Optional[QtWidgets.QWidget] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setFeature(self, feature: _core.QgsFeature) -> None: ...
    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QWidget]: ...
    def setDrawLine(self, drawLine: bool) -> None: ...
    def drawLine(self) -> bool: ...
    def valid(self) -> bool: ...


class QgsSpinBox(QtWidgets.QSpinBox):

    class ClearValueMode(int):
        MinimumValue = ... # type: QgsSpinBox.ClearValueMode
        MaximumValue = ... # type: QgsSpinBox.ClearValueMode
        CustomValue = ... # type: QgsSpinBox.ClearValueMode

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def timerEvent(self, event: typing.Optional[QtCore.QTimerEvent]) -> None: ...
    def wheelEvent(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def changeEvent(self, event: typing.Optional[QtCore.QEvent]) -> None: ...
    def validate(self, input: typing.Optional[str]) -> typing.Tuple[QtGui.QValidator.State, int]: ...
    def valueFromText(self, text: typing.Optional[str]) -> int: ...
    def setSpecialValueText(self, txt: typing.Optional[str]) -> None: ...
    def setLineEditAlignment(self, alignment: typing.Union[QtCore.Qt.Alignment, QtCore.Qt.AlignmentFlag]) -> None: ...
    def clearValue(self) -> int: ...
    def setClearValueMode(self, mode: 'QgsSpinBox.ClearValueMode', clearValueText: typing.Optional[str] = ...) -> None: ...
    def setClearValue(self, customValue: int, clearValueText: typing.Optional[str] = ...) -> None: ...
    def clear(self) -> None: ...
    def expressionsEnabled(self) -> bool: ...
    def setExpressionsEnabled(self, enabled: bool) -> None: ...
    def showClearButton(self) -> bool: ...
    def setShowClearButton(self, showClearButton: bool) -> None: ...


class QgsTextWidgetWrapper(QgsWidgetWrapper):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], editor: typing.Optional[QtWidgets.QWidget], parent: typing.Optional[QtWidgets.QWidget]) -> None: ...

    def setFeature(self, feature: _core.QgsFeature) -> None: ...
    def needsGeometry(self) -> bool: ...
    def setText(self, text: typing.Optional[str]) -> None: ...
    def reinitWidget(self) -> None: ...
    def initWidget(self, editor: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QWidget]: ...
    def valid(self) -> bool: ...


class QgsValueMapSearchWidgetWrapper(QgsSearchWidgetWrapper):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setExpression(self, exp: typing.Optional[str]) -> None: ...
    def initWidget(self, editor: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QWidget]: ...
    def setEnabled(self, enabled: bool) -> None: ...
    def clearWidget(self) -> None: ...
    def createExpression(self, flags: typing.Union[QgsSearchWidgetWrapper.FilterFlags, QgsSearchWidgetWrapper.FilterFlag]) -> str: ...
    def defaultFlags(self) -> QgsSearchWidgetWrapper.FilterFlags: ...
    def supportedFlags(self) -> QgsSearchWidgetWrapper.FilterFlags: ...
    def valid(self) -> bool: ...
    def expression(self) -> str: ...
    def applyDirectly(self) -> bool: ...


class QgsValueRelationSearchWidgetWrapper(QgsSearchWidgetWrapper):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], fieldIdx: int, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setExpression(self, exp: typing.Optional[str]) -> None: ...
    def onValueChanged(self) -> None: ...
    def initWidget(self, editor: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QWidget]: ...
    def setEnabled(self, enabled: bool) -> None: ...
    def clearWidget(self) -> None: ...
    def createExpression(self, flags: typing.Union[QgsSearchWidgetWrapper.FilterFlags, QgsSearchWidgetWrapper.FilterFlag]) -> str: ...
    def defaultFlags(self) -> QgsSearchWidgetWrapper.FilterFlags: ...
    def supportedFlags(self) -> QgsSearchWidgetWrapper.FilterFlags: ...
    def value(self) -> typing.Any: ...
    def valid(self) -> bool: ...
    def expression(self) -> str: ...
    def applyDirectly(self) -> bool: ...


class QgsEffectDrawModeComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setDrawMode(self, drawMode: _core.QgsPaintEffect.DrawMode) -> None: ...
    def drawMode(self) -> _core.QgsPaintEffect.DrawMode: ...


class QgsEffectStackPropertiesWidget(QgsPanelWidget):

    def __init__(self, stack: typing.Optional[_core.QgsEffectStack], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setWidget(self, widget: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def moveEffectByOffset(self, offset: int) -> None: ...
    def updateUi(self) -> None: ...
    @typing.overload
    def loadStack(self) -> None: ...
    @typing.overload
    def loadStack(self, stack: typing.Optional[_core.QgsEffectStack]) -> None: ...
    def changeEffect(self, newEffect: typing.Optional[_core.QgsPaintEffect]) -> None: ...
    def updatePreview(self) -> None: ...
    def effectChanged(self) -> None: ...
    def removeEffect(self) -> None: ...
    def addEffect(self) -> None: ...
    def moveEffectUp(self) -> None: ...
    def moveEffectDown(self) -> None: ...
    def setPreviewPicture(self, picture: QtGui.QPicture) -> None: ...
    def stack(self) -> typing.Optional[_core.QgsEffectStack]: ...


class QgsEffectStackPropertiesDialog(QgsDialog):

    def __init__(self, stack: typing.Optional[_core.QgsEffectStack], parent: typing.Optional[QtWidgets.QWidget] = ..., f: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def setPreviewPicture(self, picture: QtGui.QPicture) -> None: ...
    def stack(self) -> typing.Optional[_core.QgsEffectStack]: ...


class QgsEffectStackCompactWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., effect: typing.Optional[_core.QgsPaintEffect] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def setPreviewPicture(self, picture: QtGui.QPicture) -> None: ...
    def paintEffect(self) -> typing.Optional[_core.QgsPaintEffect]: ...
    def setPaintEffect(self, effect: typing.Optional[_core.QgsPaintEffect]) -> None: ...


class QgsPaintEffectPropertiesWidget(QtWidgets.QWidget):

    def __init__(self, effect: typing.Optional[_core.QgsPaintEffect], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    changeEffect: typing.ClassVar[QtCore.pyqtSignal]
    changed: typing.ClassVar[QtCore.pyqtSignal]
    def emitSignalChanged(self) -> None: ...
    def effectTypeChanged(self) -> None: ...


class QgsPaintEffectWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def setPaintEffect(self, effect: typing.Optional[_core.QgsPaintEffect]) -> None: ...


class QgsDrawSourceWidget(QgsPaintEffectWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setPaintEffect(self, effect: typing.Optional[_core.QgsPaintEffect]) -> None: ...
    @staticmethod
    def create() -> typing.Optional[QgsPaintEffectWidget]: ...


class QgsBlurWidget(QgsPaintEffectWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setPaintEffect(self, effect: typing.Optional[_core.QgsPaintEffect]) -> None: ...
    @staticmethod
    def create() -> typing.Optional[QgsPaintEffectWidget]: ...


class QgsShadowEffectWidget(QgsPaintEffectWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setPaintEffect(self, effect: typing.Optional[_core.QgsPaintEffect]) -> None: ...
    @staticmethod
    def create() -> typing.Optional[QgsPaintEffectWidget]: ...


class QgsGlowWidget(QgsPaintEffectWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setPaintEffect(self, effect: typing.Optional[_core.QgsPaintEffect]) -> None: ...
    @staticmethod
    def create() -> typing.Optional[QgsPaintEffectWidget]: ...


class QgsTransformWidget(QgsPaintEffectWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setPaintEffect(self, effect: typing.Optional[_core.QgsPaintEffect]) -> None: ...
    @staticmethod
    def create() -> typing.Optional[QgsPaintEffectWidget]: ...


class QgsColorEffectWidget(QgsPaintEffectWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setPaintEffect(self, effect: typing.Optional[_core.QgsPaintEffect]) -> None: ...
    @staticmethod
    def create() -> typing.Optional[QgsPaintEffectWidget]: ...


class QgsPlotCanvas(QtWidgets.QGraphicsView):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def wheelZoom(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def viewportEvent(self, event: typing.Optional[QtCore.QEvent]) -> bool: ...
    def resizeEvent(self, e: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def wheelEvent(self, e: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def mouseReleaseEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseDoubleClickEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def keyReleaseEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def keyPressEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def event(self, e: typing.Optional[QtCore.QEvent]) -> bool: ...
    willBeDeleted: typing.ClassVar[QtCore.pyqtSignal]
    contextMenuAboutToShow: typing.ClassVar[QtCore.pyqtSignal]
    plotAreaChanged: typing.ClassVar[QtCore.pyqtSignal]
    toolChanged: typing.ClassVar[QtCore.pyqtSignal]
    def refresh(self) -> None: ...
    def snapToPlot(self, point: QtCore.QPoint) -> _core.QgsPointXY: ...
    def zoomToRect(self, rect: QtCore.QRectF) -> None: ...
    def scalePlot(self, factor: float) -> None: ...
    def centerPlotOn(self, x: float, y: float) -> None: ...
    def panContentsBy(self, dx: float, dy: float) -> None: ...
    def toCanvasCoordinates(self, point: _core.QgsPoint) -> _core.QgsPointXY: ...
    def toMapCoordinates(self, point: _core.QgsPointXY) -> _core.QgsPoint: ...
    def crs(self) -> _core.QgsCoordinateReferenceSystem: ...
    def tool(self) -> typing.Optional['QgsPlotTool']: ...
    def unsetTool(self, tool: typing.Optional['QgsPlotTool']) -> None: ...
    def setTool(self, tool: typing.Optional['QgsPlotTool']) -> None: ...


class QgsElevationProfileCanvas(QgsPlotCanvas):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setSnappingEnabled(self, enabled: bool) -> None: ...
    def clear(self) -> None: ...
    def zoomFull(self) -> None: ...
    canvasPointHovered: typing.ClassVar[QtCore.pyqtSignal]
    activeJobCountChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setBackgroundColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setDistanceUnit(self, unit: _core.Qgis.DistanceUnit) -> None: ...
    def distanceUnit(self) -> _core.Qgis.DistanceUnit: ...
    def setLockAxisScales(self, lock: bool) -> None: ...
    def lockAxisScales(self) -> bool: ...
    def plotPointToCanvasPoint(self, point: _core.QgsProfilePoint) -> _core.QgsPointXY: ...
    def canvasPointToPlotPoint(self, point: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> _core.QgsProfilePoint: ...
    @typing.overload
    def identify(self, point: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> typing.List[_core.QgsProfileIdentifyResults]: ...
    @typing.overload
    def identify(self, rect: QtCore.QRectF) -> typing.List[_core.QgsProfileIdentifyResults]: ...
    def render(self, context: _core.QgsRenderContext, width: float, height: float, plotSettings: _core.Qgs2DPlot) -> None: ...
    def visibleElevationRange(self) -> _core.QgsDoubleRange: ...
    def visibleDistanceRange(self) -> _core.QgsDoubleRange: ...
    def setVisiblePlotRange(self, minimumDistance: float, maximumDistance: float, minimumElevation: float, maximumElevation: float) -> None: ...
    def tolerance(self) -> float: ...
    def setTolerance(self, tolerance: float) -> None: ...
    def profileCurve(self) -> typing.Optional[_core.QgsCurve]: ...
    def setProfileCurve(self, curve: typing.Optional[_core.QgsCurve]) -> None: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def layers(self) -> typing.List[_core.QgsMapLayer]: ...
    def setLayers(self, layers: typing.Iterable[_core.QgsMapLayer]) -> None: ...
    def setProject(self, project: typing.Optional[_core.QgsProject]) -> None: ...
    def invalidateCurrentPlotExtent(self) -> None: ...
    def refresh(self) -> None: ...
    def plotArea(self) -> QtCore.QRectF: ...
    def mouseMoveEvent(self, e: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def wheelZoom(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def zoomToRect(self, rect: QtCore.QRectF) -> None: ...
    def snapToPlot(self, point: QtCore.QPoint) -> _core.QgsPointXY: ...
    @typing.overload
    def scalePlot(self, factor: float) -> None: ...
    @typing.overload
    def scalePlot(self, xFactor: float, yFactor: float) -> None: ...
    def centerPlotOn(self, x: float, y: float) -> None: ...
    def panContentsBy(self, dx: float, dy: float) -> None: ...
    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def toCanvasCoordinates(self, point: _core.QgsPoint) -> _core.QgsPointXY: ...
    def toMapCoordinates(self, point: _core.QgsPointXY) -> _core.QgsPoint: ...
    def crs(self) -> _core.QgsCoordinateReferenceSystem: ...


class QgsHistoryEntry(PyQt5.sip.wrapper):

    entry = ... # type: typing.Dict[str, typing.Any]
    id = ... # type: int
    providerId = ... # type: typing.Optional[str]
    timestamp = ... # type: typing.Union[QtCore.QDateTime, datetime.datetime]

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, providerId: typing.Optional[str], timestamp: typing.Union[QtCore.QDateTime, datetime.datetime], entry: typing.Dict[str, typing.Any]) -> None: ...
    @typing.overload
    def __init__(self, entry: typing.Dict[str, typing.Any]) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsHistoryEntry') -> None: ...

    def __repr__(self) -> typing.Any: ...
    def isValid(self) -> bool: ...


class QgsHistoryEntryModel(QtCore.QAbstractItemModel):

    def __init__(self, providerId: typing.Optional[str] = ..., backends: typing.Union[_core.Qgis.HistoryProviderBackends, _core.Qgis.HistoryProviderBackend] = ..., registry: typing.Optional['QgsHistoryProviderRegistry'] = ..., context: 'QgsHistoryWidgetContext' = ..., parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def index2node(self, index: QtCore.QModelIndex) -> typing.Optional['QgsHistoryEntryNode']: ...
    def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlags: ...
    def data(self, index: QtCore.QModelIndex, role: int = ...) -> typing.Any: ...
    def parent(self, child: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def index(self, row: int, column: int, parent: QtCore.QModelIndex = ...) -> QtCore.QModelIndex: ...
    def columnCount(self, parent: QtCore.QModelIndex = ...) -> int: ...
    def rowCount(self, parent: QtCore.QModelIndex = ...) -> int: ...


class QgsHistoryEntryNode(PyQt5.sip.wrapper):

    def __init__(self) -> None: ...

    def matchesString(self, searchString: typing.Optional[str]) -> bool: ...
    def populateContextMenu(self, menu: typing.Optional[QtWidgets.QMenu], context: 'QgsHistoryWidgetContext') -> None: ...
    def doubleClicked(self, context: 'QgsHistoryWidgetContext') -> bool: ...
    def createWidget(self, context: 'QgsHistoryWidgetContext') -> typing.Optional[QtWidgets.QWidget]: ...
    def html(self, context: 'QgsHistoryWidgetContext') -> str: ...
    def childCount(self) -> int: ...
    def data(self, role: int = ...) -> typing.Any: ...
    def parent(self) -> typing.Optional['QgsHistoryEntryGroup']: ...


class QgsHistoryEntryGroup(QgsHistoryEntryNode):

    def __init__(self) -> None: ...

    def childCount(self) -> int: ...
    def clear(self) -> None: ...
    def removeChildAt(self, index: int) -> None: ...
    def childAt(self, index: int) -> typing.Optional[QgsHistoryEntryNode]: ...
    def indexOf(self, child: typing.Optional[QgsHistoryEntryNode]) -> int: ...
    def insertChild(self, index: int, child: typing.Optional[QgsHistoryEntryNode]) -> None: ...
    def addChild(self, child: typing.Optional[QgsHistoryEntryNode]) -> None: ...


class QgsAbstractHistoryProvider(QtCore.QObject):

    def __init__(self) -> None: ...

    def updateNodeForEntry(self, node: typing.Optional[QgsHistoryEntryNode], entry: QgsHistoryEntry, context: 'QgsHistoryWidgetContext') -> None: ...
    def createNodeForEntry(self, entry: QgsHistoryEntry, context: 'QgsHistoryWidgetContext') -> typing.Optional[QgsHistoryEntryNode]: ...
    def id(self) -> str: ...


class QgsHistoryProviderRegistry(QtCore.QObject):

    class HistoryEntryOptions(PyQt5.sip.wrapper):

        storageBackends = ... # type: typing.Union[_core.Qgis.HistoryProviderBackends, _core.Qgis.HistoryProviderBackend]

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsHistoryProviderRegistry.HistoryEntryOptions') -> None: ...

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ..., useMemoryDatabase: bool = ...) -> None: ...

    historyCleared: typing.ClassVar[QtCore.pyqtSignal]
    entryUpdated: typing.ClassVar[QtCore.pyqtSignal]
    entryAdded: typing.ClassVar[QtCore.pyqtSignal]
    def clearHistory(self, backend: _core.Qgis.HistoryProviderBackend, providerId: typing.Optional[str] = ...) -> bool: ...
    @staticmethod
    def userHistoryDbPath() -> str: ...
    def queryEntries(self, start: typing.Union[QtCore.QDateTime, datetime.datetime] = ..., end: typing.Union[QtCore.QDateTime, datetime.datetime] = ..., providerId: typing.Optional[str] = ..., backends: typing.Union[_core.Qgis.HistoryProviderBackends, _core.Qgis.HistoryProviderBackend] = ...) -> typing.List[QgsHistoryEntry]: ...
    def updateEntry(self, id: int, entry: typing.Dict[str, typing.Any], backend: _core.Qgis.HistoryProviderBackend = ...) -> bool: ...
    def entry(self, id: int, backend: _core.Qgis.HistoryProviderBackend = ...) -> typing.Tuple[QgsHistoryEntry, bool]: ...
    def addEntries(self, entries: typing.Iterable[QgsHistoryEntry], options: 'QgsHistoryProviderRegistry.HistoryEntryOptions' = ...) -> bool: ...
    @typing.overload
    def addEntry(self, providerId: typing.Optional[str], entry: typing.Dict[str, typing.Any], options: 'QgsHistoryProviderRegistry.HistoryEntryOptions' = ...) -> typing.Tuple[int, bool]: ...
    @typing.overload
    def addEntry(self, entry: QgsHistoryEntry, options: 'QgsHistoryProviderRegistry.HistoryEntryOptions' = ...) -> typing.Tuple[int, bool]: ...
    def providerIds(self) -> typing.List[str]: ...
    def removeProvider(self, id: typing.Optional[str]) -> bool: ...
    def providerById(self, id: typing.Optional[str]) -> typing.Optional[QgsAbstractHistoryProvider]: ...
    def addProvider(self, provider: typing.Optional[QgsAbstractHistoryProvider]) -> bool: ...


class QgsHistoryWidget(QgsPanelWidget):

    def __init__(self, providerId: typing.Optional[str] = ..., backends: typing.Union[_core.Qgis.HistoryProviderBackends, _core.Qgis.HistoryProviderBackend] = ..., registry: typing.Optional[QgsHistoryProviderRegistry] = ..., context: 'QgsHistoryWidgetContext' = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsHistoryWidgetContext(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsHistoryWidgetContext') -> None: ...

    def messageBar(self) -> typing.Optional[QgsMessageBar]: ...
    def setMessageBar(self, bar: typing.Optional[QgsMessageBar]) -> None: ...


class QgsAbstractInputController(QtCore.QObject):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def type(self) -> _core.Qgis.InputControllerType: ...
    def deviceId(self) -> str: ...
    def clone(self) -> typing.Optional['QgsAbstractInputController']: ...


class QgsAbstract2DMapController(QgsAbstractInputController):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def type(self) -> _core.Qgis.InputControllerType: ...


class QgsAbstract3DMapController(QgsAbstractInputController):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def type(self) -> _core.Qgis.InputControllerType: ...


class QgsInputControllerManager(QtCore.QObject):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def register3DMapController(self, controller: typing.Optional[QgsAbstract3DMapController]) -> bool: ...
    def create3DMapController(self, deviceId: typing.Optional[str]) -> typing.Optional[QgsAbstract3DMapController]: ...
    def available3DMapControllers(self) -> typing.List[str]: ...
    def register2DMapController(self, controller: typing.Optional[QgsAbstract2DMapController]) -> bool: ...
    def create2DMapController(self, deviceId: typing.Optional[str]) -> typing.Optional[QgsAbstract2DMapController]: ...
    def available2DMapControllers(self) -> typing.List[str]: ...


class QgsLabelSettingsWidgetBase(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., vl: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...

    def registerDataDefinedButton(self, button: typing.Optional[QgsPropertyOverrideButton], key: _core.QgsPalLayerSettings.Property) -> None: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    auxiliaryFieldCreated: typing.ClassVar[QtCore.pyqtSignal]
    changed: typing.ClassVar[QtCore.pyqtSignal]
    def updateDataDefinedProperties(self, properties: _core.QgsPropertyCollection) -> None: ...
    def setDataDefinedProperties(self, dataDefinedProperties: _core.QgsPropertyCollection) -> None: ...
    def dataDefinedProperties(self) -> _core.QgsPropertyCollection: ...
    def setGeometryType(self, type: _core.Qgis.GeometryType) -> None: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...


class QgsLabelLineAnchorWidget(QgsLabelSettingsWidgetBase):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., vl: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...

    def updateDataDefinedProperties(self, properties: _core.QgsPropertyCollection) -> None: ...
    def settings(self) -> _core.QgsLabelLineSettings: ...
    def setSettings(self, settings: _core.QgsLabelLineSettings) -> None: ...


class QgsLabelObstacleSettingsWidget(QgsLabelSettingsWidgetBase):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., vl: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...

    def updateDataDefinedProperties(self, properties: _core.QgsPropertyCollection) -> None: ...
    def setGeometryType(self, type: _core.Qgis.GeometryType) -> None: ...
    def settings(self) -> _core.QgsLabelObstacleSettings: ...
    def setSettings(self, settings: _core.QgsLabelObstacleSettings) -> None: ...


class QgsLabelSettingsWidgetDialog(QtWidgets.QDialog):

    def __init__(self, widget: typing.Optional[QgsLabelSettingsWidgetBase], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def buttonBox(self) -> typing.Optional[QtWidgets.QDialogButtonBox]: ...


class QgsCustomLayerOrderWidget(QtWidgets.QWidget):

    def __init__(self, bridge: typing.Optional['QgsLayerTreeMapCanvasBridge'], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsLayerTreeEmbeddedConfigWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def applyToLayer(self) -> None: ...
    def setLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...


class QgsLayerTreeEmbeddedWidgetProvider(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsLayerTreeEmbeddedWidgetProvider') -> None: ...

    def supportsLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> bool: ...
    def createWidget(self, layer: typing.Optional[_core.QgsMapLayer], widgetIndex: int) -> typing.Optional[QtWidgets.QWidget]: ...
    def name(self) -> str: ...
    def id(self) -> str: ...


class QgsLayerTreeEmbeddedWidgetRegistry(PyQt5.sip.wrapper):

    def __init__(self) -> None: ...

    def removeProvider(self, providerId: typing.Optional[str]) -> bool: ...
    def addProvider(self, provider: typing.Optional[QgsLayerTreeEmbeddedWidgetProvider]) -> bool: ...
    def provider(self, providerId: typing.Optional[str]) -> typing.Optional[QgsLayerTreeEmbeddedWidgetProvider]: ...
    def providers(self) -> typing.List[str]: ...


class QgsLayerTreeMapCanvasBridge(QtCore.QObject):

    def __init__(self, root: typing.Optional[_core.QgsLayerTree], canvas: typing.Optional[QgsMapCanvas], parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    canvasLayersChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setCanvasLayers(self) -> None: ...
    def autoSetupOnFirstLayer(self) -> bool: ...
    def setAutoSetupOnFirstLayer(self, enabled: bool) -> None: ...
    def overviewCanvas(self) -> typing.Optional[QgsMapOverviewCanvas]: ...
    def setOvervewCanvas(self, overviewCanvas: typing.Optional[QgsMapOverviewCanvas]) -> None: ...
    def setOverviewCanvas(self, overviewCanvas: typing.Optional[QgsMapOverviewCanvas]) -> None: ...
    def mapCanvas(self) -> typing.Optional[QgsMapCanvas]: ...
    def rootGroup(self) -> typing.Optional[_core.QgsLayerTree]: ...


class QgsLayerTreeProxyModel(QtCore.QSortFilterProxyModel):

    def __init__(self, treeModel: typing.Optional[_core.QgsLayerTreeModel], parent: typing.Optional[QtCore.QObject]) -> None: ...

    def filterAcceptsRow(self, sourceRow: int, sourceParent: QtCore.QModelIndex) -> bool: ...
    def setShowPrivateLayers(self, showPrivate: bool) -> None: ...
    def showPrivateLayers(self) -> bool: ...
    def setFilterText(self, filterText: typing.Optional[str] = ...) -> None: ...


class QgsLayerTreeView(QtWidgets.QTreeView):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def onModelReset(self) -> None: ...
    def onExpandedChanged(self, node: typing.Optional[_core.QgsLayerTreeNode], expanded: bool) -> None: ...
    def onCurrentChanged(self) -> None: ...
    def updateExpandedStateToNode(self, index: QtCore.QModelIndex) -> None: ...
    def modelRowsRemoved(self) -> None: ...
    def modelRowsInserted(self, index: QtCore.QModelIndex, start: int, end: int) -> None: ...
    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def dropEvent(self, event: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def dragMoveEvent(self, event: typing.Optional[QtGui.QDragMoveEvent]) -> None: ...
    def dragEnterEvent(self, event: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def mouseReleaseEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseDoubleClickEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def layerForIndex(self, index: QtCore.QModelIndex) -> typing.Optional[_core.QgsMapLayer]: ...
    def updateExpandedStateFromNode(self, node: typing.Optional[_core.QgsLayerTreeNode]) -> None: ...
    def contextMenuEvent(self, event: typing.Optional[QtGui.QContextMenuEvent]) -> None: ...
    contextMenuAboutToShow: typing.ClassVar[QtCore.pyqtSignal]
    datasetsDropped: typing.ClassVar[QtCore.pyqtSignal]
    currentLayerChanged: typing.ClassVar[QtCore.pyqtSignal]
    def showPrivateLayers(self) -> bool: ...
    def setShowPrivateLayers(self, showPrivate: bool) -> None: ...
    def setMessageBar(self, messageBar: typing.Optional[QgsMessageBar]) -> None: ...
    def setLayerMarkWidth(self, width: int) -> None: ...
    def collapseAllNodes(self) -> None: ...
    def expandAllNodes(self) -> None: ...
    def refreshLayerSymbology(self, layerId: typing.Optional[str]) -> None: ...
    def layerMarkWidth(self) -> int: ...
    def indicators(self, node: typing.Optional[_core.QgsLayerTreeNode]) -> typing.List['QgsLayerTreeViewIndicator']: ...
    def removeIndicator(self, node: typing.Optional[_core.QgsLayerTreeNode], indicator: typing.Optional['QgsLayerTreeViewIndicator']) -> None: ...
    def addIndicator(self, node: typing.Optional[_core.QgsLayerTreeNode], indicator: typing.Optional['QgsLayerTreeViewIndicator']) -> None: ...
    def selectedLayersRecursive(self) -> typing.List[_core.QgsMapLayer]: ...
    def selectedLegendNodes(self) -> typing.List[_core.QgsLayerTreeModelLegendNode]: ...
    def selectedLayers(self) -> typing.List[_core.QgsMapLayer]: ...
    def selectedLayerNodes(self) -> typing.List[_core.QgsLayerTreeLayer]: ...
    def selectedNodes(self, skipInternal: bool = ...) -> typing.List[_core.QgsLayerTreeNode]: ...
    def currentLegendNode(self) -> typing.Optional[_core.QgsLayerTreeModelLegendNode]: ...
    def currentGroupNode(self) -> typing.Optional[_core.QgsLayerTreeGroup]: ...
    def currentNode(self) -> typing.Optional[_core.QgsLayerTreeNode]: ...
    def setCurrentLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    def setLayerVisible(self, layer: typing.Optional[_core.QgsMapLayer], visible: bool) -> None: ...
    def currentLayer(self) -> typing.Optional[_core.QgsMapLayer]: ...
    def menuProvider(self) -> typing.Optional['QgsLayerTreeViewMenuProvider']: ...
    def setMenuProvider(self, menuProvider: typing.Optional['QgsLayerTreeViewMenuProvider']) -> None: ...
    def defaultActions(self) -> typing.Optional['QgsLayerTreeViewDefaultActions']: ...
    def legendNode2sourceIndex(self, legendNode: typing.Optional[_core.QgsLayerTreeModelLegendNode]) -> QtCore.QModelIndex: ...
    def legendNode2index(self, legendNode: typing.Optional[_core.QgsLayerTreeModelLegendNode]) -> QtCore.QModelIndex: ...
    def index2legendNode(self, index: QtCore.QModelIndex) -> typing.Optional[_core.QgsLayerTreeModelLegendNode]: ...
    def node2sourceIndex(self, node: typing.Optional[_core.QgsLayerTreeNode]) -> QtCore.QModelIndex: ...
    def node2index(self, node: typing.Optional[_core.QgsLayerTreeNode]) -> QtCore.QModelIndex: ...
    def index2node(self, index: QtCore.QModelIndex) -> typing.Optional[_core.QgsLayerTreeNode]: ...
    def proxyModel(self) -> typing.Optional[QgsLayerTreeProxyModel]: ...
    def layerTreeModel(self) -> typing.Optional[_core.QgsLayerTreeModel]: ...
    def setModel(self, model: typing.Optional[QtCore.QAbstractItemModel]) -> None: ...


class QgsLayerTreeViewMenuProvider(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsLayerTreeViewMenuProvider') -> None: ...

    def createContextMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...


class QgsLayerTreeViewDefaultActions(QtCore.QObject):

    def __init__(self, view: typing.Optional[QgsLayerTreeView]) -> None: ...

    def uniqueGroupName(self, parentGroup: typing.Optional[_core.QgsLayerTreeGroup]) -> str: ...
    def mutuallyExclusiveGroup(self) -> None: ...
    def groupSelected(self) -> None: ...
    def moveToBottom(self) -> None: ...
    def moveToTop(self) -> None: ...
    def moveOutOfGroup(self) -> None: ...
    def makeTopLevel(self) -> None: ...
    def showFeatureCount(self) -> None: ...
    def renameGroupOrLayer(self) -> None: ...
    def removeGroupOrLayer(self) -> None: ...
    def addGroup(self) -> None: ...
    def showInOverview(self) -> None: ...
    @typing.overload
    def zoomToGroup(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    @typing.overload
    def zoomToGroup(self) -> None: ...
    @typing.overload
    def zoomToSelection(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    @typing.overload
    def zoomToSelection(self) -> None: ...
    @typing.overload
    def zoomToLayers(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    @typing.overload
    def zoomToLayers(self) -> None: ...
    @typing.overload
    def zoomToLayers(self, canvas: typing.Optional[QgsMapCanvas], layers: typing.Iterable[_core.QgsMapLayer]) -> None: ...
    @typing.overload
    def zoomToLayer(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    @typing.overload
    def zoomToLayer(self) -> None: ...
    def actionMutuallyExclusiveGroup(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionGroupSelected(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionMoveToBottom(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionMoveToTop(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionMoveOutOfGroup(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionMakeTopLevel(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionZoomToGroup(self, canvas: typing.Optional[QgsMapCanvas], parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionZoomToSelection(self, canvas: typing.Optional[QgsMapCanvas], parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionZoomToLayers(self, canvas: typing.Optional[QgsMapCanvas], parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionZoomToLayer(self, canvas: typing.Optional[QgsMapCanvas], parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionCheckAndAllParents(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionUncheckAndAllChildren(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionCheckAndAllChildren(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionShowFeatureCount(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionRenameGroupOrLayer(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionShowInOverview(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionRemoveGroupOrLayer(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...
    def actionAddGroup(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QtWidgets.QAction]: ...


class QgsLayerTreeViewIndicator(QtCore.QObject):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    clicked: typing.ClassVar[QtCore.pyqtSignal]
    def setToolTip(self, tip: typing.Optional[str]) -> None: ...
    def toolTip(self) -> str: ...
    def setIcon(self, icon: QtGui.QIcon) -> None: ...
    def icon(self) -> QtGui.QIcon: ...


class QgsLayoutComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., manager: typing.Optional[_core.QgsLayoutManager] = ...) -> None: ...

    layoutChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setCurrentLayout(self, layout: typing.Optional[_core.QgsMasterLayoutInterface]) -> None: ...
    def layout(self, index: int) -> typing.Optional[_core.QgsMasterLayoutInterface]: ...
    def currentLayout(self) -> typing.Optional[_core.QgsMasterLayoutInterface]: ...
    def allowEmptyLayout(self) -> bool: ...
    def setAllowEmptyLayout(self, allowEmpty: bool) -> None: ...
    def setFilters(self, filters: typing.Union[_core.QgsLayoutManagerProxyModel.Filters, _core.QgsLayoutManagerProxyModel.Filter]) -> None: ...
    def filters(self) -> _core.QgsLayoutManagerProxyModel.Filters: ...
    def setLayoutManager(self, manager: typing.Optional[_core.QgsLayoutManager]) -> None: ...


class QgsLayoutCustomDropHandler(QtCore.QObject):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def handlePaste(self, iface: typing.Optional['QgsLayoutDesignerInterface'], pastePoint: typing.Union[QtCore.QPointF, QtCore.QPoint], data: typing.Optional[QtCore.QMimeData]) -> typing.Tuple[bool, typing.List[_core.QgsLayoutItem]]: ...
    @typing.overload
    def handleFileDrop(self, iface: typing.Optional['QgsLayoutDesignerInterface'], file: typing.Optional[str]) -> bool: ...
    @typing.overload
    def handleFileDrop(self, iface: typing.Optional['QgsLayoutDesignerInterface'], dropPoint: typing.Union[QtCore.QPointF, QtCore.QPoint], file: typing.Optional[str]) -> bool: ...


class QgsLayoutDesignerInterface(QtCore.QObject):

    class StandardTool(int):
        ToolMoveItemContent = ... # type: QgsLayoutDesignerInterface.StandardTool
        ToolMoveItemNodes = ... # type: QgsLayoutDesignerInterface.StandardTool

    class ExportResults(PyQt5.sip.wrapper):

        labelingResults = ... # type: typing.Any
        result = ... # type: _core.QgsLayoutExporter.ExportResult

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsLayoutDesignerInterface.ExportResults') -> None: ...

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    mapPreviewRefreshed: typing.ClassVar[QtCore.pyqtSignal]
    layoutExported: typing.ClassVar[QtCore.pyqtSignal]
    def showRulers(self, visible: bool) -> None: ...
    def close(self) -> None: ...
    def lastExportResults(self) -> typing.Optional['QgsLayoutDesignerInterface.ExportResults']: ...
    def activateTool(self, tool: 'QgsLayoutDesignerInterface.StandardTool') -> None: ...
    def removeDockWidget(self, dock: typing.Optional[QtWidgets.QDockWidget]) -> None: ...
    def addDockWidget(self, area: QtCore.Qt.DockWidgetArea, dock: typing.Optional[QtWidgets.QDockWidget]) -> None: ...
    def atlasToolbar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def actionsToolbar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def navigationToolbar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def layoutToolbar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def settingsMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def reportMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def atlasMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def itemsMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def viewMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def editMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def layoutMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...
    def showItemOptions(self, item: typing.Optional[_core.QgsLayoutItem], bringPanelToFront: bool = ...) -> None: ...
    def setAtlasFeature(self, feature: _core.QgsFeature) -> None: ...
    def atlasPreviewEnabled(self) -> bool: ...
    def setAtlasPreviewEnabled(self, enabled: bool) -> None: ...
    def selectItems(self, items: typing.Iterable[_core.QgsLayoutItem]) -> None: ...
    def messageBar(self) -> typing.Optional[QgsMessageBar]: ...
    def view(self) -> typing.Optional['QgsLayoutView']: ...
    def window(self) -> typing.Optional[QtWidgets.QWidget]: ...
    def masterLayout(self) -> typing.Optional[_core.QgsMasterLayoutInterface]: ...
    def layout(self) -> typing.Optional[_core.QgsLayout]: ...


class QgsLayoutItemComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., layout: typing.Optional[_core.QgsLayout] = ...) -> None: ...

    itemChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setItem(self, item: typing.Optional[_core.QgsLayoutItem]) -> None: ...
    def currentItem(self) -> typing.Optional[_core.QgsLayoutItem]: ...
    def item(self, index: int) -> typing.Optional[_core.QgsLayoutItem]: ...
    def itemFlags(self) -> _core.QgsLayoutItem.Flags: ...
    def setItemFlags(self, flags: typing.Union[_core.QgsLayoutItem.Flags, _core.QgsLayoutItem.Flag]) -> None: ...
    def allowEmptyItem(self) -> bool: ...
    def setAllowEmptyItem(self, allowEmpty: bool) -> None: ...
    def exceptedItemList(self) -> typing.List[_core.QgsLayoutItem]: ...
    def setExceptedItemList(self, exceptList: typing.Iterable[_core.QgsLayoutItem]) -> None: ...
    def itemType(self) -> _core.QgsLayoutItemRegistry.ItemType: ...
    def setItemType(self, itemType: _core.QgsLayoutItemRegistry.ItemType) -> None: ...
    def currentLayout(self) -> typing.Optional[_core.QgsLayout]: ...
    def setCurrentLayout(self, layout: typing.Optional[_core.QgsLayout]) -> None: ...


class QgsLayoutItemAbstractGuiMetadata(PyQt5.sip.wrapper):

    class Flag(int):
        FlagNoCreationTools = ... # type: QgsLayoutItemAbstractGuiMetadata.Flag

    class Flags(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsLayoutItemAbstractGuiMetadata.Flags', 'QgsLayoutItemAbstractGuiMetadata.Flag']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsLayoutItemAbstractGuiMetadata.Flags', 'QgsLayoutItemAbstractGuiMetadata.Flag']) -> 'QgsLayoutItemAbstractGuiMetadata.Flags': ...
        def __xor__(self, f: typing.Union['QgsLayoutItemAbstractGuiMetadata.Flags', 'QgsLayoutItemAbstractGuiMetadata.Flag']) -> 'QgsLayoutItemAbstractGuiMetadata.Flags': ...
        def __ior__(self, f: typing.Union['QgsLayoutItemAbstractGuiMetadata.Flags', 'QgsLayoutItemAbstractGuiMetadata.Flag']) -> 'QgsLayoutItemAbstractGuiMetadata.Flags': ...
        def __or__(self, f: typing.Union['QgsLayoutItemAbstractGuiMetadata.Flags', 'QgsLayoutItemAbstractGuiMetadata.Flag']) -> 'QgsLayoutItemAbstractGuiMetadata.Flags': ...
        def __iand__(self, f: typing.Union['QgsLayoutItemAbstractGuiMetadata.Flags', 'QgsLayoutItemAbstractGuiMetadata.Flag']) -> 'QgsLayoutItemAbstractGuiMetadata.Flags': ...
        def __and__(self, f: typing.Union['QgsLayoutItemAbstractGuiMetadata.Flags', 'QgsLayoutItemAbstractGuiMetadata.Flag']) -> 'QgsLayoutItemAbstractGuiMetadata.Flags': ...
        def __invert__(self) -> 'QgsLayoutItemAbstractGuiMetadata.Flags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    @typing.overload
    def __init__(self, type: int, visibleName: typing.Optional[str], groupId: typing.Optional[str] = ..., isNodeBased: bool = ..., flags: typing.Union['QgsLayoutItemAbstractGuiMetadata.Flags', 'QgsLayoutItemAbstractGuiMetadata.Flag'] = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsLayoutItemAbstractGuiMetadata') -> None: ...

    def newItemAddedToLayout(self, item: typing.Optional[_core.QgsLayoutItem]) -> None: ...
    def createItem(self, layout: typing.Optional[_core.QgsLayout]) -> typing.Optional[_core.QgsLayoutItem]: ...
    def createNodeRubberBand(self, view: typing.Optional['QgsLayoutView']) -> typing.Optional[QtWidgets.QAbstractGraphicsShapeItem]: ...
    def createRubberBand(self, view: typing.Optional['QgsLayoutView']) -> typing.Optional['QgsLayoutViewRubberBand']: ...
    def createItemWidget(self, item: typing.Optional[_core.QgsLayoutItem]) -> typing.Optional['QgsLayoutItemBaseWidget']: ...
    def creationIcon(self) -> QtGui.QIcon: ...
    def visibleName(self) -> str: ...
    def isNodeBased(self) -> bool: ...
    def groupId(self) -> str: ...
    def flags(self) -> 'QgsLayoutItemAbstractGuiMetadata.Flags': ...
    def type(self) -> int: ...


class QgsLayoutItemGuiGroup(PyQt5.sip.wrapper):

    icon = ... # type: QtGui.QIcon
    id = ... # type: typing.Optional[str]
    name = ... # type: typing.Optional[str]

    @typing.overload
    def __init__(self, id: typing.Optional[str] = ..., name: typing.Optional[str] = ..., icon: QtGui.QIcon = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsLayoutItemGuiGroup') -> None: ...


class QgsLayoutItemGuiRegistry(QtCore.QObject):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    typeAdded: typing.ClassVar[QtCore.pyqtSignal]
    def itemMetadataIds(self) -> typing.List[int]: ...
    def createItemWidget(self, item: typing.Optional[_core.QgsLayoutItem]) -> typing.Optional['QgsLayoutItemBaseWidget']: ...
    def newItemAddedToLayout(self, metadataId: int, item: typing.Optional[_core.QgsLayoutItem], properties: typing.Dict[str, typing.Any] = ...) -> None: ...
    def createItem(self, metadataId: int, layout: typing.Optional[_core.QgsLayout]) -> typing.Optional[_core.QgsLayoutItem]: ...
    def itemGroup(self, id: typing.Optional[str]) -> QgsLayoutItemGuiGroup: ...
    def addItemGroup(self, group: QgsLayoutItemGuiGroup) -> bool: ...
    def addLayoutItemGuiMetadata(self, metadata: typing.Optional[QgsLayoutItemAbstractGuiMetadata]) -> bool: ...
    def metadataIdForItemType(self, type: int) -> int: ...
    def itemMetadata(self, metadataId: int) -> typing.Optional[QgsLayoutItemAbstractGuiMetadata]: ...


class QgsLayoutConfigObject(QtCore.QObject):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget], layoutObject: typing.Optional[_core.QgsLayoutObject]) -> None: ...

    def layoutAtlas(self) -> typing.Optional[_core.QgsLayoutAtlas]: ...
    def coverageLayer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def updateDataDefinedButton(self, button: typing.Optional[QgsPropertyOverrideButton]) -> None: ...
    def initializeDataDefinedButton(self, button: typing.Optional[QgsPropertyOverrideButton], key: _core.QgsLayoutObject.DataDefinedProperty) -> None: ...


class QgsLayoutItemBaseWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget], layoutObject: typing.Optional[_core.QgsLayoutObject]) -> None: ...

    def layoutAtlas(self) -> typing.Optional[_core.QgsLayoutAtlas]: ...
    def setNewItem(self, item: typing.Optional[_core.QgsLayoutItem]) -> bool: ...
    def coverageLayer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def updateDataDefinedButton(self, button: typing.Optional[QgsPropertyOverrideButton]) -> None: ...
    def registerDataDefinedButton(self, button: typing.Optional[QgsPropertyOverrideButton], property: _core.QgsLayoutObject.DataDefinedProperty) -> None: ...
    def setMasterLayout(self, masterLayout: typing.Optional[_core.QgsMasterLayoutInterface]) -> None: ...
    def setDesignerInterface(self, iface: typing.Optional[QgsLayoutDesignerInterface]) -> None: ...
    def setReportTypeString(self, string: typing.Optional[str]) -> None: ...
    def setItem(self, item: typing.Optional[_core.QgsLayoutItem]) -> bool: ...
    def layoutObject(self) -> typing.Optional[_core.QgsLayoutObject]: ...


class QgsLayoutItemPropertiesWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget], item: typing.Optional[_core.QgsLayoutItem]) -> None: ...

    def populateDataDefinedButtons(self) -> None: ...
    def initializeDataDefinedButtons(self) -> None: ...
    def updateVariables(self) -> None: ...
    def setMasterLayout(self, masterLayout: typing.Optional[_core.QgsMasterLayoutInterface]) -> None: ...
    def setItem(self, item: typing.Optional[_core.QgsLayoutItem]) -> None: ...
    def showFrameGroup(self, showGroup: bool) -> None: ...
    def showBackgroundGroup(self, showGroup: bool) -> None: ...
    def positionMode(self) -> _core.QgsLayoutItem.ReferencePoint: ...


class QgsLayoutItemPropertiesDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def setLayout(self, layout: typing.Optional[_core.QgsLayout]) -> None: ...
    def setReferencePoint(self, point: _core.QgsLayoutItem.ReferencePoint) -> None: ...
    def referencePoint(self) -> _core.QgsLayoutItem.ReferencePoint: ...
    def itemSize(self) -> _core.QgsLayoutSize: ...
    def setItemSize(self, size: _core.QgsLayoutSize) -> None: ...
    def page(self) -> int: ...
    def itemPosition(self) -> _core.QgsLayoutPoint: ...
    def setItemPosition(self, position: _core.QgsLayoutPoint) -> None: ...


class QgsLayoutRuler(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., orientation: QtCore.Qt.Orientation = ...) -> None: ...

    def mouseReleaseEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    cursorPosChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setCursorPosition(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> None: ...
    def setContextMenu(self, menu: typing.Optional[QtWidgets.QMenu]) -> None: ...
    def rulerSize(self) -> int: ...
    def setLayoutView(self, view: typing.Optional['QgsLayoutView']) -> None: ...
    def layoutView(self) -> typing.Optional['QgsLayoutView']: ...
    def setSceneTransform(self, transform: QtGui.QTransform) -> None: ...
    def minimumSizeHint(self) -> QtCore.QSize: ...


class QgsLayoutUnitsComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def setConverter(self, converter: typing.Optional[_core.QgsLayoutMeasurementConverter]) -> None: ...
    def converter(self) -> typing.Optional[_core.QgsLayoutMeasurementConverter]: ...
    def linkToWidget(self, widget: typing.Optional[QtWidgets.QDoubleSpinBox]) -> None: ...
    def setUnit(self, unit: _core.Qgis.LayoutUnit) -> None: ...
    def unit(self) -> _core.Qgis.LayoutUnit: ...


class QgsLayoutView(QtWidgets.QGraphicsView):

    class PasteMode(int):
        PasteModeCursor = ... # type: QgsLayoutView.PasteMode
        PasteModeCenter = ... # type: QgsLayoutView.PasteMode
        PasteModeInPlace = ... # type: QgsLayoutView.PasteMode

    class ClipboardOperation(int):
        ClipboardCut = ... # type: QgsLayoutView.ClipboardOperation
        ClipboardCopy = ... # type: QgsLayoutView.ClipboardOperation

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def dragEnterEvent(self, e: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    def scrollContentsBy(self, dx: int, dy: int) -> None: ...
    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def keyReleaseEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def wheelEvent(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def mouseDoubleClickEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseReleaseEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    willBeDeleted: typing.ClassVar[QtCore.pyqtSignal]
    itemFocused: typing.ClassVar[QtCore.pyqtSignal]
    statusMessage: typing.ClassVar[QtCore.pyqtSignal]
    pageChanged: typing.ClassVar[QtCore.pyqtSignal]
    cursorPosChanged: typing.ClassVar[QtCore.pyqtSignal]
    zoomLevelChanged: typing.ClassVar[QtCore.pyqtSignal]
    toolSet: typing.ClassVar[QtCore.pyqtSignal]
    layoutSet: typing.ClassVar[QtCore.pyqtSignal]
    def pushStatusMessage(self, message: typing.Optional[str]) -> None: ...
    def viewChanged(self) -> None: ...
    def ungroupSelectedItems(self) -> None: ...
    def groupSelectedItems(self) -> None: ...
    def deleteItems(self, items: typing.Iterable[_core.QgsLayoutItem]) -> None: ...
    def deleteSelectedItems(self) -> None: ...
    def unlockAllItems(self) -> None: ...
    def lockSelectedItems(self) -> None: ...
    def moveSelectedItemsToBottom(self) -> None: ...
    def moveSelectedItemsToTop(self) -> None: ...
    def lowerSelectedItems(self) -> None: ...
    def raiseSelectedItems(self) -> None: ...
    def selectNextItemBelow(self) -> None: ...
    def selectNextItemAbove(self) -> None: ...
    def invertSelection(self) -> None: ...
    def deselectAll(self) -> None: ...
    def selectAll(self) -> None: ...
    def emitZoomLevelChanged(self) -> None: ...
    def zoomActual(self) -> None: ...
    def zoomOut(self) -> None: ...
    def zoomIn(self) -> None: ...
    def zoomWidth(self) -> None: ...
    def zoomFull(self) -> None: ...
    def setSectionLabel(self, label: typing.Optional[str]) -> None: ...
    def deltaForKeyEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> QtCore.QPointF: ...
    def hasItemsInClipboard(self) -> bool: ...
    @typing.overload
    def pasteItems(self, mode: 'QgsLayoutView.PasteMode') -> typing.List[_core.QgsLayoutItem]: ...
    @typing.overload
    def pasteItems(self, layoutPoint: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> typing.List[_core.QgsLayoutItem]: ...
    def copyItems(self, items: typing.Iterable[_core.QgsLayoutItem], operation: 'QgsLayoutView.ClipboardOperation') -> None: ...
    def copySelectedItems(self, operation: 'QgsLayoutView.ClipboardOperation') -> None: ...
    def resizeSelectedItems(self, resize: _core.QgsLayoutAligner.Resize) -> None: ...
    def distributeSelectedItems(self, distribution: _core.QgsLayoutAligner.Distribution) -> None: ...
    def alignSelectedItems(self, alignment: _core.QgsLayoutAligner.Alignment) -> None: ...
    def visiblePageNumbers(self) -> typing.List[int]: ...
    def visiblePages(self) -> typing.List[_core.QgsLayoutItemPage]: ...
    def currentPage(self) -> int: ...
    def menuProvider(self) -> typing.Optional['QgsLayoutViewMenuProvider']: ...
    def setMenuProvider(self, provider: typing.Optional['QgsLayoutViewMenuProvider']) -> None: ...
    def setVerticalRuler(self, ruler: typing.Optional[QgsLayoutRuler]) -> None: ...
    def setHorizontalRuler(self, ruler: typing.Optional[QgsLayoutRuler]) -> None: ...
    def setZoomLevel(self, level: float) -> None: ...
    def scaleSafe(self, scale: float) -> None: ...
    def previewMode(self) -> QgsPreviewEffect.PreviewMode: ...
    def setPreviewMode(self, mode: QgsPreviewEffect.PreviewMode) -> None: ...
    def previewModeEnabled(self) -> bool: ...
    def setPreviewModeEnabled(self, enabled: bool) -> None: ...
    def unsetTool(self, tool: typing.Optional['QgsLayoutViewTool']) -> None: ...
    def setTool(self, tool: typing.Optional['QgsLayoutViewTool']) -> None: ...
    def tool(self) -> typing.Optional['QgsLayoutViewTool']: ...
    def setCurrentLayout(self, layout: typing.Optional[_core.QgsLayout]) -> None: ...
    def currentLayout(self) -> typing.Optional[_core.QgsLayout]: ...


class QgsLayoutViewMenuProvider(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsLayoutViewMenuProvider') -> None: ...

    def createContextMenu(self, parent: typing.Optional[QtWidgets.QWidget], layout: typing.Optional[_core.QgsLayout], layoutPoint: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> typing.Optional[QtWidgets.QMenu]: ...


class QgsLayoutViewMouseEvent(QtGui.QMouseEvent):

    @typing.overload
    def __init__(self, view: typing.Optional[QgsLayoutView], event: typing.Optional[QtGui.QMouseEvent], snap: bool = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsLayoutViewMouseEvent') -> None: ...

    def isSnapped(self) -> bool: ...
    def snappedPoint(self) -> QtCore.QPointF: ...
    def layoutPoint(self) -> QtCore.QPointF: ...
    def snapPoint(self, horizontalSnapLine: typing.Optional[QtWidgets.QGraphicsLineItem] = ..., verticalSnapLine: typing.Optional[QtWidgets.QGraphicsLineItem] = ..., ignoreItems: typing.Iterable[_core.QgsLayoutItem] = ...) -> None: ...


class QgsLayoutViewRubberBand(QtCore.QObject):

    def __init__(self, view: typing.Optional[QgsLayoutView] = ...) -> None: ...

    def updateRect(self, start: typing.Union[QtCore.QPointF, QtCore.QPoint], position: typing.Union[QtCore.QPointF, QtCore.QPoint], constrainSquare: bool, fromCenter: bool) -> QtCore.QRectF: ...
    sizeChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setPen(self, pen: typing.Union[QtGui.QPen, typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]]) -> None: ...
    def pen(self) -> QtGui.QPen: ...
    def setBrush(self, brush: typing.Union[QtGui.QBrush, typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], QtGui.QGradient]) -> None: ...
    def brush(self) -> QtGui.QBrush: ...
    def layout(self) -> typing.Optional[_core.QgsLayout]: ...
    def view(self) -> typing.Optional[QgsLayoutView]: ...
    def finish(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint] = ..., modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier] = ...) -> QtCore.QRectF: ...
    def update(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint], modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier]) -> None: ...
    def start(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint], modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier]) -> None: ...
    def create(self, view: typing.Optional[QgsLayoutView]) -> typing.Optional['QgsLayoutViewRubberBand']: ...


class QgsLayoutViewRectangularRubberBand(QgsLayoutViewRubberBand):

    def __init__(self, view: typing.Optional[QgsLayoutView] = ...) -> None: ...

    def finish(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint] = ..., modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier] = ...) -> QtCore.QRectF: ...
    def update(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint], modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier]) -> None: ...
    def start(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint], modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier]) -> None: ...
    def create(self, view: typing.Optional[QgsLayoutView]) -> typing.Optional['QgsLayoutViewRectangularRubberBand']: ...


class QgsLayoutViewEllipticalRubberBand(QgsLayoutViewRubberBand):

    def __init__(self, view: typing.Optional[QgsLayoutView] = ...) -> None: ...

    def finish(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint] = ..., modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier] = ...) -> QtCore.QRectF: ...
    def update(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint], modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier]) -> None: ...
    def start(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint], modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier]) -> None: ...
    def create(self, view: typing.Optional[QgsLayoutView]) -> typing.Optional['QgsLayoutViewEllipticalRubberBand']: ...


class QgsLayoutViewTriangleRubberBand(QgsLayoutViewRubberBand):

    def __init__(self, view: typing.Optional[QgsLayoutView] = ...) -> None: ...

    def finish(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint] = ..., modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier] = ...) -> QtCore.QRectF: ...
    def update(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint], modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier]) -> None: ...
    def start(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint], modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier]) -> None: ...
    def create(self, view: typing.Optional[QgsLayoutView]) -> typing.Optional['QgsLayoutViewTriangleRubberBand']: ...


class QgsLayoutViewTool(QtCore.QObject):

    class Flag(int):
        FlagSnaps = ... # type: QgsLayoutViewTool.Flag

    class Flags(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsLayoutViewTool.Flags', 'QgsLayoutViewTool.Flag']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsLayoutViewTool.Flags', 'QgsLayoutViewTool.Flag']) -> 'QgsLayoutViewTool.Flags': ...
        def __xor__(self, f: typing.Union['QgsLayoutViewTool.Flags', 'QgsLayoutViewTool.Flag']) -> 'QgsLayoutViewTool.Flags': ...
        def __ior__(self, f: typing.Union['QgsLayoutViewTool.Flags', 'QgsLayoutViewTool.Flag']) -> 'QgsLayoutViewTool.Flags': ...
        def __or__(self, f: typing.Union['QgsLayoutViewTool.Flags', 'QgsLayoutViewTool.Flag']) -> 'QgsLayoutViewTool.Flags': ...
        def __iand__(self, f: typing.Union['QgsLayoutViewTool.Flags', 'QgsLayoutViewTool.Flag']) -> 'QgsLayoutViewTool.Flags': ...
        def __and__(self, f: typing.Union['QgsLayoutViewTool.Flags', 'QgsLayoutViewTool.Flag']) -> 'QgsLayoutViewTool.Flags': ...
        def __invert__(self) -> 'QgsLayoutViewTool.Flags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, view: typing.Optional[QgsLayoutView], name: typing.Optional[str]) -> None: ...

    def isClickAndDrag(self, startViewPoint: QtCore.QPoint, endViewPoint: QtCore.QPoint) -> bool: ...
    def setFlags(self, flags: typing.Union['QgsLayoutViewTool.Flags', 'QgsLayoutViewTool.Flag']) -> None: ...
    itemFocused: typing.ClassVar[QtCore.pyqtSignal]
    deactivated: typing.ClassVar[QtCore.pyqtSignal]
    activated: typing.ClassVar[QtCore.pyqtSignal]
    def ignoredSnapItems(self) -> typing.List[_core.QgsLayoutItem]: ...
    def layout(self) -> typing.Optional[_core.QgsLayout]: ...
    def view(self) -> typing.Optional[QgsLayoutView]: ...
    def toolName(self) -> str: ...
    def deactivate(self) -> None: ...
    def activate(self) -> None: ...
    def setCursor(self, cursor: typing.Union[QtGui.QCursor, QtCore.Qt.CursorShape]) -> None: ...
    def action(self) -> typing.Optional[QtWidgets.QAction]: ...
    def setAction(self, action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def keyReleaseEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def wheelEvent(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def layoutReleaseEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutPressEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutDoubleClickEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutMoveEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def flags(self) -> 'QgsLayoutViewTool.Flags': ...


class QgsLayoutViewToolAddItem(QgsLayoutViewTool):

    def __init__(self, view: typing.Optional[QgsLayoutView]) -> None: ...

    createdItem: typing.ClassVar[QtCore.pyqtSignal]
    def setCustomProperties(self, properties: typing.Dict[str, typing.Any]) -> None: ...
    def customProperties(self) -> typing.Dict[str, typing.Any]: ...
    def deactivate(self) -> None: ...
    def activate(self) -> None: ...
    def layoutReleaseEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutMoveEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutPressEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def setItemMetadataId(self, metadataId: int) -> None: ...
    def itemMetadataId(self) -> int: ...


class QgsLayoutViewToolAddNodeItem(QgsLayoutViewTool):

    def __init__(self, view: typing.Optional[QgsLayoutView]) -> None: ...

    createdItem: typing.ClassVar[QtCore.pyqtSignal]
    def deactivate(self) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def layoutReleaseEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutMoveEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutPressEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def setItemMetadataId(self, metadataId: int) -> None: ...
    def itemMetadataId(self) -> int: ...


class QgsLayoutViewToolEditNodes(QgsLayoutViewTool):

    def __init__(self, view: typing.Optional[QgsLayoutView]) -> None: ...

    def ignoredSnapItems(self) -> typing.List[_core.QgsLayoutItem]: ...
    def deactivate(self) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def layoutDoubleClickEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutReleaseEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutMoveEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutPressEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def activate(self) -> None: ...
    def deleteSelectedNode(self) -> None: ...


class QgsLayoutViewToolMoveItemContent(QgsLayoutViewTool):

    def __init__(self, view: typing.Optional[QgsLayoutView]) -> None: ...

    def wheelEvent(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def layoutReleaseEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutMoveEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutPressEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...


class QgsLayoutViewToolPan(QgsLayoutViewTool):

    def __init__(self, view: typing.Optional[QgsLayoutView]) -> None: ...

    def deactivate(self) -> None: ...
    def layoutReleaseEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutMoveEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutPressEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...


class QgsLayoutViewToolSelect(QgsLayoutViewTool):

    def __init__(self, view: typing.Optional[QgsLayoutView]) -> None: ...

    def searchToleranceInLayoutUnits(self) -> float: ...
    def setLayout(self, layout: typing.Optional[_core.QgsLayout]) -> None: ...
    def deactivate(self) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def wheelEvent(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def layoutReleaseEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutMoveEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutPressEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...


class QgsLayoutViewToolTemporaryKeyPan(QgsLayoutViewTool):

    def __init__(self, view: typing.Optional[QgsLayoutView]) -> None: ...

    def activate(self) -> None: ...
    def keyReleaseEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def layoutMoveEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...


class QgsLayoutViewToolZoom(QgsLayoutViewTool):

    def __init__(self, view: typing.Optional[QgsLayoutView]) -> None: ...

    def deactivate(self) -> None: ...
    def keyReleaseEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def layoutReleaseEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutMoveEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutPressEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...


class QgsLayoutViewToolTemporaryKeyZoom(QgsLayoutViewToolZoom):

    def __init__(self, view: typing.Optional[QgsLayoutView]) -> None: ...

    def activate(self) -> None: ...
    def keyReleaseEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def layoutReleaseEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...


class QgsLayoutViewToolTemporaryMousePan(QgsLayoutViewTool):

    def __init__(self, view: typing.Optional[QgsLayoutView]) -> None: ...

    def activate(self) -> None: ...
    def layoutReleaseEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...
    def layoutMoveEvent(self, event: typing.Optional[QgsLayoutViewMouseEvent]) -> None: ...


class QgsLocatorWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def eventFilter(self, obj: typing.Optional[QtCore.QObject], event: typing.Optional[QtCore.QEvent]) -> bool: ...
    configTriggered: typing.ClassVar[QtCore.pyqtSignal]
    def invalidateResults(self) -> None: ...
    def search(self, string: typing.Optional[str]) -> None: ...
    def setPlaceholderText(self, text: typing.Optional[str]) -> None: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def locator(self) -> typing.Optional[_core.QgsLocator]: ...


class QgsMeshLayerProperties(QgsLayerPropertiesDialog):

    def __init__(self, lyr: typing.Optional[_core.QgsMapLayer], canvas: typing.Optional[QgsMapCanvas], parent: typing.Optional[QtWidgets.QWidget] = ..., a3: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def rollback(self) -> None: ...
    def apply(self) -> None: ...
    def syncToLayer(self) -> None: ...
    def saveStyleAs(self) -> None: ...
    def loadStyle(self) -> None: ...
    def saveDefaultStyle(self) -> None: ...


class QgsNumericFormatSelectorWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def format(self) -> typing.Optional[_core.QgsNumericFormat]: ...
    def setFormat(self, format: typing.Optional[_core.QgsNumericFormat]) -> None: ...


class QgsNumericFormatWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def format(self) -> typing.Optional[_core.QgsNumericFormat]: ...
    def setFormat(self, format: typing.Optional[_core.QgsNumericFormat]) -> None: ...


class QgsBasicNumericFormatWidget(QgsNumericFormatWidget):

    def __init__(self, format: typing.Optional[_core.QgsNumericFormat], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def format(self) -> typing.Optional[_core.QgsNumericFormat]: ...
    def setFormat(self, format: typing.Optional[_core.QgsNumericFormat]) -> None: ...


class QgsBearingNumericFormatWidget(QgsNumericFormatWidget):

    def __init__(self, format: typing.Optional[_core.QgsNumericFormat], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def format(self) -> typing.Optional[_core.QgsNumericFormat]: ...
    def setFormat(self, format: typing.Optional[_core.QgsNumericFormat]) -> None: ...


class QgsBearingNumericFormatDialog(QtWidgets.QDialog):

    def __init__(self, format: typing.Optional[_core.QgsNumericFormat], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def format(self) -> typing.Optional[_core.QgsBearingNumericFormat]: ...


class QgsGeographicCoordinateNumericFormatWidget(QgsNumericFormatWidget):

    def __init__(self, format: typing.Optional[_core.QgsNumericFormat], hidePrecisionControl: bool = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def format(self) -> typing.Optional[_core.QgsNumericFormat]: ...
    def setFormat(self, format: typing.Optional[_core.QgsNumericFormat]) -> None: ...


class QgsGeographicCoordinateNumericFormatDialog(QtWidgets.QDialog):

    def __init__(self, format: typing.Optional[_core.QgsNumericFormat], hidePrecisionControl: bool = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def format(self) -> typing.Optional[_core.QgsGeographicCoordinateNumericFormat]: ...


class QgsCurrencyNumericFormatWidget(QgsNumericFormatWidget):

    def __init__(self, format: typing.Optional[_core.QgsNumericFormat], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def format(self) -> typing.Optional[_core.QgsNumericFormat]: ...
    def setFormat(self, format: typing.Optional[_core.QgsNumericFormat]) -> None: ...


class QgsPercentageNumericFormatWidget(QgsNumericFormatWidget):

    def __init__(self, format: typing.Optional[_core.QgsNumericFormat], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def format(self) -> typing.Optional[_core.QgsNumericFormat]: ...
    def setFormat(self, format: typing.Optional[_core.QgsNumericFormat]) -> None: ...


class QgsScientificNumericFormatWidget(QgsNumericFormatWidget):

    def __init__(self, format: typing.Optional[_core.QgsNumericFormat], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def format(self) -> typing.Optional[_core.QgsNumericFormat]: ...
    def setFormat(self, format: typing.Optional[_core.QgsNumericFormat]) -> None: ...


class QgsFractionNumericFormatWidget(QgsNumericFormatWidget):

    def __init__(self, format: typing.Optional[_core.QgsNumericFormat], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def format(self) -> typing.Optional[_core.QgsNumericFormat]: ...
    def setFormat(self, format: typing.Optional[_core.QgsNumericFormat]) -> None: ...


class QgsNumericFormatConfigurationWidgetFactory(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsNumericFormatConfigurationWidgetFactory') -> None: ...

    def create(self, format: typing.Optional[_core.QgsNumericFormat]) -> typing.Optional[QgsNumericFormatWidget]: ...


class QgsNumericFormatGuiRegistry(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsNumericFormatGuiRegistry') -> None: ...

    def formatConfigurationWidget(self, format: typing.Optional[_core.QgsNumericFormat]) -> typing.Optional[QgsNumericFormatWidget]: ...
    def removeFormatConfigurationWidgetFactory(self, id: typing.Optional[str]) -> None: ...
    def addFormatConfigurationWidgetFactory(self, id: typing.Optional[str], factory: typing.Optional[QgsNumericFormatConfigurationWidgetFactory]) -> None: ...


class QgsVectorLayerSaveAsDialog(QtWidgets.QDialog):

    class Option(int):
        Symbology = ... # type: QgsVectorLayerSaveAsDialog.Option
        DestinationCrs = ... # type: QgsVectorLayerSaveAsDialog.Option
        Fields = ... # type: QgsVectorLayerSaveAsDialog.Option
        AddToCanvas = ... # type: QgsVectorLayerSaveAsDialog.Option
        SelectedOnly = ... # type: QgsVectorLayerSaveAsDialog.Option
        GeometryType = ... # type: QgsVectorLayerSaveAsDialog.Option
        Extent = ... # type: QgsVectorLayerSaveAsDialog.Option
        Metadata = ... # type: QgsVectorLayerSaveAsDialog.Option
        AllOptions = ... # type: QgsVectorLayerSaveAsDialog.Option

    class Options(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsVectorLayerSaveAsDialog.Options', 'QgsVectorLayerSaveAsDialog.Option']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsVectorLayerSaveAsDialog.Options', 'QgsVectorLayerSaveAsDialog.Option']) -> 'QgsVectorLayerSaveAsDialog.Options': ...
        def __xor__(self, f: typing.Union['QgsVectorLayerSaveAsDialog.Options', 'QgsVectorLayerSaveAsDialog.Option']) -> 'QgsVectorLayerSaveAsDialog.Options': ...
        def __ior__(self, f: typing.Union['QgsVectorLayerSaveAsDialog.Options', 'QgsVectorLayerSaveAsDialog.Option']) -> 'QgsVectorLayerSaveAsDialog.Options': ...
        def __or__(self, f: typing.Union['QgsVectorLayerSaveAsDialog.Options', 'QgsVectorLayerSaveAsDialog.Option']) -> 'QgsVectorLayerSaveAsDialog.Options': ...
        def __iand__(self, f: typing.Union['QgsVectorLayerSaveAsDialog.Options', 'QgsVectorLayerSaveAsDialog.Option']) -> 'QgsVectorLayerSaveAsDialog.Options': ...
        def __and__(self, f: typing.Union['QgsVectorLayerSaveAsDialog.Options', 'QgsVectorLayerSaveAsDialog.Option']) -> 'QgsVectorLayerSaveAsDialog.Options': ...
        def __invert__(self) -> 'QgsVectorLayerSaveAsDialog.Options': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], options: typing.Union['QgsVectorLayerSaveAsDialog.Options', 'QgsVectorLayerSaveAsDialog.Option'] = ..., parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def accept(self) -> None: ...
    def creationActionOnExistingFile(self) -> _core.QgsVectorFileWriter.ActionOnExistingFile: ...
    def setIncludeZ(self, checked: bool) -> None: ...
    def includeZ(self) -> bool: ...
    def setForceMulti(self, checked: bool) -> None: ...
    def forceMulti(self) -> bool: ...
    def automaticGeometryType(self) -> bool: ...
    def geometryType(self) -> _core.Qgis.WkbType: ...
    def persistMetadata(self) -> bool: ...
    def onlySelected(self) -> bool: ...
    def setOnlySelected(self, onlySelected: bool) -> None: ...
    def filterExtent(self) -> _core.QgsRectangle: ...
    def hasFilterExtent(self) -> bool: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def scale(self) -> float: ...
    def symbologyExport(self) -> _core.Qgis.FeatureSymbologyExport: ...
    def setAddToCanvas(self, checked: bool) -> None: ...
    def addToCanvas(self) -> bool: ...
    def attributesExportNames(self) -> typing.List[str]: ...
    def attributesAsDisplayedValues(self) -> typing.List[int]: ...
    def selectedAttributes(self) -> typing.List[int]: ...
    def crs(self) -> _core.QgsCoordinateReferenceSystem: ...
    def layerOptions(self) -> typing.List[str]: ...
    def datasourceOptions(self) -> typing.List[str]: ...
    def layerName(self) -> str: ...
    def fileName(self) -> str: ...
    def encoding(self) -> str: ...
    def format(self) -> str: ...


class QgsPlotCanvasItem(QtWidgets.QGraphicsItem):

    def __init__(self, canvas: typing.Optional[QgsPlotCanvas]) -> None: ...

    @typing.overload
    def paint(self, painter: typing.Optional[QtGui.QPainter]) -> None: ...
    @typing.overload
    def paint(self, painter: typing.Optional[QtGui.QPainter], option: typing.Optional[QtWidgets.QStyleOptionGraphicsItem], widget: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsPlotMouseEvent(QtGui.QMouseEvent):

    @typing.overload
    def __init__(self, canvas: typing.Optional[QgsPlotCanvas], event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    @typing.overload
    def __init__(self, canvas: typing.Optional[QgsPlotCanvas], type: QtCore.QEvent.Type, pos: QtCore.QPoint, button: QtCore.Qt.MouseButton = ..., buttons: typing.Union[QtCore.Qt.MouseButtons, QtCore.Qt.MouseButton] = ..., modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier] = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsPlotMouseEvent') -> None: ...

    def isSnapped(self) -> bool: ...
    def snappedPoint(self) -> _core.QgsPointXY: ...
    def mapPoint(self) -> _core.QgsPoint: ...


class QgsPlotRubberBand(QtCore.QObject):

    def __init__(self, canvas: typing.Optional[QgsPlotCanvas] = ...) -> None: ...

    def updateRect(self, start: typing.Union[QtCore.QPointF, QtCore.QPoint], position: typing.Union[QtCore.QPointF, QtCore.QPoint], constrainSquare: bool, fromCenter: bool) -> QtCore.QRectF: ...
    def setPen(self, pen: typing.Union[QtGui.QPen, typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]]) -> None: ...
    def pen(self) -> QtGui.QPen: ...
    def setBrush(self, brush: typing.Union[QtGui.QBrush, typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], QtGui.QGradient]) -> None: ...
    def brush(self) -> QtGui.QBrush: ...
    def canvas(self) -> typing.Optional[QgsPlotCanvas]: ...
    def finish(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint] = ..., modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier] = ...) -> QtCore.QRectF: ...
    def update(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint], modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier]) -> None: ...
    def start(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint], modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier]) -> None: ...


class QgsPlotRectangularRubberBand(QgsPlotRubberBand):

    def __init__(self, canvas: typing.Optional[QgsPlotCanvas] = ...) -> None: ...

    def finish(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint] = ..., modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier] = ...) -> QtCore.QRectF: ...
    def update(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint], modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier]) -> None: ...
    def start(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint], modifiers: typing.Union[QtCore.Qt.KeyboardModifiers, QtCore.Qt.KeyboardModifier]) -> None: ...


class QgsPlotTool(QtCore.QObject):

    def __init__(self, canvas: typing.Optional[QgsPlotCanvas], name: typing.Optional[str]) -> None: ...

    @staticmethod
    def constrainPointToRect(point: typing.Union[QtCore.QPointF, QtCore.QPoint], rect: QtCore.QRectF) -> QtCore.QPointF: ...
    def isClickAndDrag(self, startViewPoint: QtCore.QPoint, endViewPoint: QtCore.QPoint) -> bool: ...
    def toCanvasCoordinates(self, point: _core.QgsPoint) -> _core.QgsPointXY: ...
    def toMapCoordinates(self, point: _core.QgsPointXY) -> _core.QgsPoint: ...
    deactivated: typing.ClassVar[QtCore.pyqtSignal]
    activated: typing.ClassVar[QtCore.pyqtSignal]
    def populateContextMenuWithEvent(self, menu: typing.Optional[QtWidgets.QMenu], event: typing.Optional[QgsPlotMouseEvent]) -> bool: ...
    def setCursor(self, cursor: typing.Union[QtGui.QCursor, QtCore.Qt.CursorShape]) -> None: ...
    def action(self) -> typing.Optional[QtWidgets.QAction]: ...
    def setAction(self, action: typing.Optional[QtWidgets.QAction]) -> None: ...
    def canvas(self) -> typing.Optional[QgsPlotCanvas]: ...
    def deactivate(self) -> None: ...
    def activate(self) -> None: ...
    def isActive(self) -> bool: ...
    def canvasToolTipEvent(self, event: typing.Optional[QtGui.QHelpEvent]) -> bool: ...
    def gestureEvent(self, event: typing.Optional[QtWidgets.QGestureEvent]) -> bool: ...
    def keyReleaseEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def wheelEvent(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def plotReleaseEvent(self, event: typing.Optional[QgsPlotMouseEvent]) -> None: ...
    def plotPressEvent(self, event: typing.Optional[QgsPlotMouseEvent]) -> None: ...
    def plotDoubleClickEvent(self, event: typing.Optional[QgsPlotMouseEvent]) -> None: ...
    def plotMoveEvent(self, event: typing.Optional[QgsPlotMouseEvent]) -> None: ...
    def toolName(self) -> str: ...
    def flags(self) -> _core.Qgis.PlotToolFlags: ...


class QgsPlotToolPan(QgsPlotTool):

    def __init__(self, canvas: typing.Optional[QgsPlotCanvas]) -> None: ...

    def deactivate(self) -> None: ...
    def plotReleaseEvent(self, event: typing.Optional[QgsPlotMouseEvent]) -> None: ...
    def plotPressEvent(self, event: typing.Optional[QgsPlotMouseEvent]) -> None: ...
    def plotMoveEvent(self, event: typing.Optional[QgsPlotMouseEvent]) -> None: ...
    def flags(self) -> _core.Qgis.PlotToolFlags: ...


class QgsPlotToolZoom(QgsPlotTool):

    def __init__(self, canvas: typing.Optional[QgsPlotCanvas]) -> None: ...

    def deactivate(self) -> None: ...
    def keyReleaseEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def plotReleaseEvent(self, event: typing.Optional[QgsPlotMouseEvent]) -> None: ...
    def plotMoveEvent(self, event: typing.Optional[QgsPlotMouseEvent]) -> None: ...
    def plotPressEvent(self, event: typing.Optional[QgsPlotMouseEvent]) -> None: ...


class QgsPlotToolTemporaryKeyPan(QgsPlotTool):

    def __init__(self, canvas: typing.Optional[QgsPlotCanvas]) -> None: ...

    def activate(self) -> None: ...
    def keyReleaseEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def plotMoveEvent(self, event: typing.Optional[QgsPlotMouseEvent]) -> None: ...


class QgsPlotToolTemporaryMousePan(QgsPlotTool):

    def __init__(self, canvas: typing.Optional[QgsPlotCanvas]) -> None: ...

    def activate(self) -> None: ...
    def plotReleaseEvent(self, event: typing.Optional[QgsPlotMouseEvent]) -> None: ...
    def plotMoveEvent(self, event: typing.Optional[QgsPlotMouseEvent]) -> None: ...


class QgsPlotToolTemporaryKeyZoom(QgsPlotToolZoom):

    def __init__(self, canvas: typing.Optional[QgsPlotCanvas]) -> None: ...

    def activate(self) -> None: ...
    def keyReleaseEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def plotReleaseEvent(self, event: typing.Optional[QgsPlotMouseEvent]) -> None: ...


class QgsPointCloudRendererWidget(QgsPanelWidget):

    def __init__(self, layer: typing.Optional[_core.QgsPointCloudLayer], style: typing.Optional[_core.QgsStyle]) -> None: ...

    def layer(self) -> typing.Optional[_core.QgsPointCloudLayer]: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsPointCloudRenderer]: ...


class QgsPointCloudRendererPropertiesWidget(QgsMapLayerConfigWidget):

    def __init__(self, layer: typing.Optional[_core.QgsPointCloudLayer], style: typing.Optional[_core.QgsStyle], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def apply(self) -> None: ...
    def setDockMode(self, dockMode: bool) -> None: ...
    def syncToLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...


class QgsAggregateMappingModel(QtCore.QAbstractTableModel):

    class ColumnDataIndex(int):
        SourceExpression = ... # type: QgsAggregateMappingModel.ColumnDataIndex
        Aggregate = ... # type: QgsAggregateMappingModel.ColumnDataIndex
        Delimiter = ... # type: QgsAggregateMappingModel.ColumnDataIndex
        DestinationName = ... # type: QgsAggregateMappingModel.ColumnDataIndex
        DestinationType = ... # type: QgsAggregateMappingModel.ColumnDataIndex
        DestinationLength = ... # type: QgsAggregateMappingModel.ColumnDataIndex
        DestinationPrecision = ... # type: QgsAggregateMappingModel.ColumnDataIndex

    class Aggregate(PyQt5.sip.wrapper):

        aggregate = ... # type: typing.Optional[str]
        delimiter = ... # type: typing.Optional[str]
        field = ... # type: _core.QgsField
        source = ... # type: typing.Optional[str]

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsAggregateMappingModel.Aggregate') -> None: ...

    def __init__(self, sourceFields: _core.QgsFields = ..., parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def setData(self, index: QtCore.QModelIndex, value: typing.Any, role: int) -> bool: ...
    def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlags: ...
    def headerData(self, section: int, orientation: QtCore.Qt.Orientation, role: int) -> typing.Any: ...
    def data(self, index: QtCore.QModelIndex, role: int) -> typing.Any: ...
    def columnCount(self, parent: QtCore.QModelIndex = ...) -> int: ...
    def rowCount(self, parent: QtCore.QModelIndex = ...) -> int: ...
    def setBaseExpressionContextGenerator(self, generator: typing.Optional[_core.QgsExpressionContextGenerator]) -> None: ...
    def contextGenerator(self) -> typing.Optional[_core.QgsExpressionContextGenerator]: ...
    def setSourceFields(self, sourceFields: _core.QgsFields) -> None: ...
    def moveDown(self, index: QtCore.QModelIndex) -> bool: ...
    def moveUp(self, index: QtCore.QModelIndex) -> bool: ...
    def removeField(self, index: QtCore.QModelIndex) -> bool: ...
    def appendField(self, field: _core.QgsField, source: typing.Optional[str] = ..., aggregate: typing.Optional[str] = ...) -> None: ...
    def setMapping(self, mapping: typing.Iterable['QgsAggregateMappingModel.Aggregate']) -> None: ...
    def mapping(self) -> typing.List['QgsAggregateMappingModel.Aggregate']: ...
    def sourceFields(self) -> _core.QgsFields: ...


class QgsAggregateMappingWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., sourceFields: _core.QgsFields = ...) -> None: ...

    def moveSelectedFieldsDown(self) -> bool: ...
    def moveSelectedFieldsUp(self) -> bool: ...
    def removeSelectedFields(self) -> bool: ...
    def appendField(self, field: _core.QgsField, source: typing.Optional[str] = ..., aggregate: typing.Optional[str] = ...) -> None: ...
    changed: typing.ClassVar[QtCore.pyqtSignal]
    def registerExpressionContextGenerator(self, generator: typing.Optional[_core.QgsExpressionContextGenerator]) -> None: ...
    def scrollTo(self, index: QtCore.QModelIndex) -> None: ...
    def sourceLayer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def setSourceLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def setSourceFields(self, sourceFields: _core.QgsFields) -> None: ...
    def selectionModel(self) -> typing.Optional[QtCore.QItemSelectionModel]: ...
    def setMapping(self, mapping: typing.Iterable[QgsAggregateMappingModel.Aggregate]) -> None: ...
    def mapping(self) -> typing.List[QgsAggregateMappingModel.Aggregate]: ...
    def model(self) -> typing.Optional[QgsAggregateMappingModel]: ...


class QgsProcessingAlgorithmConfigurationWidget(QtWidgets.QWidget, _core.QgsExpressionContextGenerator):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def registerProcessingContextGenerator(self, generator: typing.Optional['QgsProcessingContextGenerator']) -> None: ...
    def algorithm(self) -> typing.Optional[_core.QgsProcessingAlgorithm]: ...
    def setAlgorithm(self, algorithm: typing.Optional[_core.QgsProcessingAlgorithm]) -> None: ...
    def widgetContext(self) -> 'QgsProcessingParameterWidgetContext': ...
    def setWidgetContext(self, context: 'QgsProcessingParameterWidgetContext') -> None: ...
    def setConfiguration(self, configuration: typing.Dict[str, typing.Any]) -> None: ...
    def configuration(self) -> typing.Dict[str, typing.Any]: ...


class QgsProcessingAlgorithmConfigurationWidgetFactory(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsProcessingAlgorithmConfigurationWidgetFactory') -> None: ...

    def canCreateFor(self, algorithm: typing.Optional[_core.QgsProcessingAlgorithm]) -> bool: ...
    def create(self, algorithm: typing.Optional[_core.QgsProcessingAlgorithm]) -> typing.Optional[QgsProcessingAlgorithmConfigurationWidget]: ...


class QgsProcessingParametersGenerator(PyQt5.sip.wrapper):

    class Flag(int):
        SkipDefaultValueParameters = ... # type: QgsProcessingParametersGenerator.Flag

    class Flags(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsProcessingParametersGenerator.Flags', 'QgsProcessingParametersGenerator.Flag']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsProcessingParametersGenerator.Flags', 'QgsProcessingParametersGenerator.Flag']) -> 'QgsProcessingParametersGenerator.Flags': ...
        def __xor__(self, f: typing.Union['QgsProcessingParametersGenerator.Flags', 'QgsProcessingParametersGenerator.Flag']) -> 'QgsProcessingParametersGenerator.Flags': ...
        def __ior__(self, f: typing.Union['QgsProcessingParametersGenerator.Flags', 'QgsProcessingParametersGenerator.Flag']) -> 'QgsProcessingParametersGenerator.Flags': ...
        def __or__(self, f: typing.Union['QgsProcessingParametersGenerator.Flags', 'QgsProcessingParametersGenerator.Flag']) -> 'QgsProcessingParametersGenerator.Flags': ...
        def __iand__(self, f: typing.Union['QgsProcessingParametersGenerator.Flags', 'QgsProcessingParametersGenerator.Flag']) -> 'QgsProcessingParametersGenerator.Flags': ...
        def __and__(self, f: typing.Union['QgsProcessingParametersGenerator.Flags', 'QgsProcessingParametersGenerator.Flag']) -> 'QgsProcessingParametersGenerator.Flags': ...
        def __invert__(self) -> 'QgsProcessingParametersGenerator.Flags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsProcessingParametersGenerator') -> None: ...

    def createProcessingParameters(self, flags: typing.Union['QgsProcessingParametersGenerator.Flags', 'QgsProcessingParametersGenerator.Flag'] = ...) -> typing.Dict[str, typing.Any]: ...


class QgsProcessingContextGenerator(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsProcessingContextGenerator') -> None: ...

    def processingContext(self) -> typing.Optional[_core.QgsProcessingContext]: ...


class QgsProcessingAlgorithmDialogBase(QtWidgets.QDialog, QgsProcessingParametersGenerator, QgsProcessingContextGenerator):

    class DialogMode(int):
        Single = ... # type: QgsProcessingAlgorithmDialogBase.DialogMode
        Batch = ... # type: QgsProcessingAlgorithmDialogBase.DialogMode

    class LogFormat(int):
        FormatPlainText = ... # type: QgsProcessingAlgorithmDialogBase.LogFormat
        FormatHtml = ... # type: QgsProcessingAlgorithmDialogBase.LogFormat

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., mode: 'QgsProcessingAlgorithmDialogBase.DialogMode' = ...) -> None: ...

    def algExecuted(self, successful: bool, results: typing.Dict[str, typing.Any]) -> None: ...
    def runAlgorithm(self) -> None: ...
    def finished(self, successful: bool, result: typing.Dict[str, typing.Any], context: _core.QgsProcessingContext, feedback: typing.Optional[_core.QgsProcessingFeedback]) -> None: ...
    algorithmFinished: typing.ClassVar[QtCore.pyqtSignal]
    def applyContextOverrides(self, context: typing.Optional[_core.QgsProcessingContext]) -> None: ...
    def isFinalized(self) -> bool: ...
    @staticmethod
    def formatStringForLog(string: typing.Optional[str]) -> str: ...
    def setCurrentTask(self, task: typing.Optional[_core.QgsProcessingAlgRunnerTask]) -> None: ...
    def hideShortHelp(self) -> None: ...
    def messageBar(self) -> typing.Optional[QgsMessageBar]: ...
    def blockAdditionalControlsWhileRunning(self) -> None: ...
    def blockControlsWhileRunning(self) -> None: ...
    def updateRunButtonVisibility(self) -> None: ...
    def resetAdditionalGui(self) -> None: ...
    def resetGui(self) -> None: ...
    def setInfo(self, message: typing.Optional[str], isError: bool = ..., escapeHtml: bool = ..., isWarning: bool = ...) -> None: ...
    def setResults(self, results: typing.Dict[str, typing.Any]) -> None: ...
    def setExecutedAnyResult(self, executedAnyResult: bool) -> None: ...
    def setExecuted(self, executed: bool) -> None: ...
    def clearProgress(self) -> None: ...
    def tabWidget(self) -> typing.Optional[QtWidgets.QTabWidget]: ...
    def buttonBox(self) -> typing.Optional[QtWidgets.QDialogButtonBox]: ...
    def changeParametersButton(self) -> typing.Optional[QtWidgets.QPushButton]: ...
    def cancelButton(self) -> typing.Optional[QtWidgets.QPushButton]: ...
    def runButton(self) -> typing.Optional[QtWidgets.QPushButton]: ...
    def closeEvent(self, e: typing.Optional[QtGui.QCloseEvent]) -> None: ...
    def reject(self) -> None: ...
    def showParameters(self) -> None: ...
    def copyLogToClipboard(self) -> None: ...
    def saveLog(self) -> None: ...
    def clearLog(self) -> None: ...
    def createProgressDialog(self) -> typing.Optional[QtWidgets.QDialog]: ...
    def pushConsoleInfo(self, info: typing.Optional[str]) -> None: ...
    def setProgressText(self, text: typing.Optional[str]) -> None: ...
    def setPercentage(self, percent: float) -> None: ...
    def pushCommandInfo(self, info: typing.Optional[str]) -> None: ...
    def pushDebugInfo(self, message: typing.Optional[str]) -> None: ...
    def pushInfo(self, info: typing.Optional[str]) -> None: ...
    def pushWarning(self, warning: typing.Optional[str]) -> None: ...
    def reportError(self, error: typing.Optional[str], fatalError: bool) -> None: ...
    def setParameters(self, values: typing.Dict[str, typing.Any]) -> None: ...
    def setLogLevel(self, level: _core.QgsProcessingContext.LogLevel) -> None: ...
    def logLevel(self) -> _core.QgsProcessingContext.LogLevel: ...
    def saveLogToFile(self, path: typing.Optional[str], format: 'QgsProcessingAlgorithmDialogBase.LogFormat' = ...) -> None: ...
    def createFeedback(self) -> typing.Optional[_core.QgsProcessingFeedback]: ...
    def results(self) -> typing.Dict[str, typing.Any]: ...
    def wasExecuted(self) -> bool: ...
    def showLog(self) -> None: ...
    def mainWidget(self) -> typing.Optional[QgsPanelWidget]: ...
    def setMainWidget(self, widget: typing.Optional[QgsPanelWidget]) -> None: ...
    def algorithm(self) -> typing.Optional[_core.QgsProcessingAlgorithm]: ...
    def setAlgorithm(self, algorithm: typing.Optional[_core.QgsProcessingAlgorithm]) -> None: ...


class QgsProcessingBatchAlgorithmDialogBase(QgsProcessingAlgorithmDialogBase):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def createSummaryTable(self, results: typing.Iterable[typing.Dict[str, typing.Any]], errors: typing.Iterable[typing.Dict[str, typing.Any]]) -> None: ...
    def loadHtmlResults(self, results: typing.Dict[str, typing.Any], index: int) -> None: ...
    def handleAlgorithmResults(self, algorithm: typing.Optional[_core.QgsProcessingAlgorithm], context: _core.QgsProcessingContext, feedback: typing.Optional[_core.QgsProcessingFeedback], parameters: typing.Dict[str, typing.Any]) -> None: ...
    def createContext(self, feedback: typing.Optional[_core.QgsProcessingFeedback]) -> typing.Optional[_core.QgsProcessingContext]: ...
    def execute(self, parameters: typing.Iterable[typing.Dict[str, typing.Any]]) -> None: ...
    def isFinalized(self) -> bool: ...
    def algExecuted(self, successful: bool, results: typing.Dict[str, typing.Any]) -> None: ...
    def runAsSingle(self) -> None: ...
    def blockAdditionalControlsWhileRunning(self) -> None: ...
    def resetAdditionalGui(self) -> None: ...


class QgsProcessingGui(PyQt5.sip.wrapper):

    class WidgetType(int):
        Standard = ... # type: QgsProcessingGui.WidgetType
        Batch = ... # type: QgsProcessingGui.WidgetType
        Modeler = ... # type: QgsProcessingGui.WidgetType

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsProcessingGui') -> None: ...


class QgsProcessingGuiRegistry(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsProcessingGuiRegistry') -> None: ...

    def createParameterDefinitionWidget(self, type: typing.Optional[str], context: _core.QgsProcessingContext, widgetContext: 'QgsProcessingParameterWidgetContext', definition: typing.Optional[_core.QgsProcessingParameterDefinition] = ..., algorithm: typing.Optional[_core.QgsProcessingAlgorithm] = ...) -> typing.Optional['QgsProcessingAbstractParameterDefinitionWidget']: ...
    def createModelerParameterWidget(self, model: typing.Optional[_core.QgsProcessingModelAlgorithm], childId: typing.Optional[str], parameter: typing.Optional[_core.QgsProcessingParameterDefinition], context: _core.QgsProcessingContext) -> typing.Optional['QgsProcessingModelerParameterWidget']: ...
    def createParameterWidgetWrapper(self, parameter: typing.Optional[_core.QgsProcessingParameterDefinition], type: QgsProcessingGui.WidgetType) -> typing.Optional['QgsAbstractProcessingParameterWidgetWrapper']: ...
    def removeParameterWidgetFactory(self, factory: typing.Optional['QgsProcessingParameterWidgetFactoryInterface']) -> None: ...
    def addParameterWidgetFactory(self, factory: typing.Optional['QgsProcessingParameterWidgetFactoryInterface']) -> bool: ...
    def algorithmConfigurationWidget(self, algorithm: typing.Optional[_core.QgsProcessingAlgorithm]) -> typing.Optional[QgsProcessingAlgorithmConfigurationWidget]: ...
    def removeAlgorithmConfigurationWidgetFactory(self, factory: typing.Optional[QgsProcessingAlgorithmConfigurationWidgetFactory]) -> None: ...
    def addAlgorithmConfigurationWidgetFactory(self, factory: typing.Optional[QgsProcessingAlgorithmConfigurationWidgetFactory]) -> None: ...


class QgsProcessingHistoryProvider(QgsAbstractHistoryProvider):

    def __init__(self) -> None: ...

    createTest: typing.ClassVar[QtCore.pyqtSignal]
    executePython: typing.ClassVar[QtCore.pyqtSignal]
    def createNodeForEntry(self, entry: QgsHistoryEntry, context: QgsHistoryWidgetContext) -> typing.Optional[QgsHistoryEntryNode]: ...
    def portOldLog(self) -> None: ...
    def id(self) -> str: ...


class QgsProcessingHistoryWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def saveLog(self) -> None: ...
    def openHelp(self) -> None: ...
    def clearHistory(self) -> None: ...


class QgsProcessingHistoryDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsProcessingMapLayerComboBox(QtWidgets.QWidget):

    def __init__(self, parameter: typing.Optional[_core.QgsProcessingParameterDefinition], type: QgsProcessingGui.WidgetType = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def dropEvent(self, event: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def dragLeaveEvent(self, event: typing.Optional[QtGui.QDragLeaveEvent]) -> None: ...
    def dragEnterEvent(self, event: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    valueChanged: typing.ClassVar[QtCore.pyqtSignal]
    def isEditable(self) -> bool: ...
    def setEditable(self, editable: bool) -> None: ...
    def setWidgetContext(self, context: 'QgsProcessingParameterWidgetContext') -> None: ...
    def value(self) -> typing.Any: ...
    def setValue(self, value: typing.Any, context: _core.QgsProcessingContext) -> None: ...
    def currentText(self) -> str: ...
    def currentLayer(self) -> typing.Optional[_core.QgsMapLayer]: ...
    def setLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...


class QgsProcessingModelerParameterWidget(QtWidgets.QWidget, _core.QgsExpressionContextGenerator):

    def __init__(self, model: typing.Optional[_core.QgsProcessingModelAlgorithm], childId: typing.Optional[str], parameter: typing.Optional[_core.QgsProcessingParameterDefinition], context: _core.QgsProcessingContext, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setSourceType(self, type: _core.Qgis.ProcessingModelChildParameterSource) -> None: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def setDialog(self, dialog: typing.Optional[QtWidgets.QDialog]) -> None: ...
    def value(self) -> typing.Any: ...
    def modelOutputName(self) -> str: ...
    def isModelOutput(self) -> bool: ...
    def setToModelOutput(self, value: typing.Optional[str]) -> None: ...
    @typing.overload
    def setWidgetValue(self, value: _core.QgsProcessingModelChildParameterSource) -> None: ...
    @typing.overload
    def setWidgetValue(self, values: typing.Iterable[_core.QgsProcessingModelChildParameterSource]) -> None: ...
    def createLabel(self) -> typing.Optional[QtWidgets.QLabel]: ...
    def parameterDefinition(self) -> typing.Optional[_core.QgsProcessingParameterDefinition]: ...
    def setExpressionHelpText(self, text: typing.Optional[str]) -> None: ...
    def populateSources(self, compatibleParameterTypes: typing.Iterable[typing.Optional[str]], compatibleOutputTypes: typing.Iterable[typing.Optional[str]], compatibleDataTypes: typing.Iterable[int]) -> None: ...
    def registerProcessingContextGenerator(self, generator: typing.Optional[QgsProcessingContextGenerator]) -> None: ...
    def setWidgetContext(self, context: 'QgsProcessingParameterWidgetContext') -> None: ...


class QgsProcessingMultipleSelectionPanelWidget(QgsPanelWidget):

    def __init__(self, availableOptions: typing.Iterable[typing.Any] = ..., selectedOptions: typing.Iterable[typing.Any] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def dropEvent(self, event: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def dragEnterEvent(self, event: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    def listView(self) -> typing.Optional[QtWidgets.QListView]: ...
    def addOption(self, value: typing.Any, title: typing.Optional[str], selected: bool, updateExistingTitle: bool = ...) -> None: ...
    selectionChanged: typing.ClassVar[QtCore.pyqtSignal]
    acceptClicked: typing.ClassVar[QtCore.pyqtSignal]
    def buttonBox(self) -> typing.Optional[QtWidgets.QDialogButtonBox]: ...
    def selectedOptions(self) -> typing.List[typing.Any]: ...
    def setValueFormatter(self, a0: typing.Callable[..., None]) -> None: ...


class QgsProcessingMultipleSelectionDialog(QtWidgets.QDialog):

    def __init__(self, availableOptions: typing.Iterable[typing.Any] = ..., selectedOptions: typing.Iterable[typing.Any] = ..., parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def selectedOptions(self) -> typing.List[typing.Any]: ...
    def setValueFormatter(self, a0: typing.Callable[..., None]) -> None: ...


class QgsProcessingMultipleInputPanelWidget(QgsProcessingMultipleSelectionPanelWidget):

    def __init__(self, parameter: typing.Optional[_core.QgsProcessingParameterMultipleLayers], selectedOptions: typing.Iterable[typing.Any], modelSources: typing.Iterable[_core.QgsProcessingModelChildParameterSource], model: typing.Optional[_core.QgsProcessingModelAlgorithm] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def dropEvent(self, event: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def dragEnterEvent(self, event: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    def setProject(self, project: typing.Optional[_core.QgsProject]) -> None: ...


class QgsProcessingMultipleInputDialog(QtWidgets.QDialog):

    def __init__(self, parameter: typing.Optional[_core.QgsProcessingParameterMultipleLayers], selectedOptions: typing.Iterable[typing.Any], modelSources: typing.Iterable[_core.QgsProcessingModelChildParameterSource], model: typing.Optional[_core.QgsProcessingModelAlgorithm] = ..., parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def setProject(self, project: typing.Optional[_core.QgsProject]) -> None: ...
    def selectedOptions(self) -> typing.List[typing.Any]: ...


class QgsProcessingLayerOutputDestinationWidget(QtWidgets.QWidget):

    def __init__(self, parameter: typing.Optional[_core.QgsProcessingDestinationParameter], defaultSelection: bool, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def dropEvent(self, event: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def dragLeaveEvent(self, event: typing.Optional[QtGui.QDragLeaveEvent]) -> None: ...
    def dragEnterEvent(self, event: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...
    destinationChanged: typing.ClassVar[QtCore.pyqtSignal]
    skipOutputChanged: typing.ClassVar[QtCore.pyqtSignal]
    def openAfterRunning(self) -> bool: ...
    def addOpenAfterRunningOption(self) -> None: ...
    def registerProcessingParametersGenerator(self, generator: typing.Optional[QgsProcessingParametersGenerator]) -> None: ...
    def setContext(self, context: typing.Optional[_core.QgsProcessingContext]) -> None: ...
    def setWidgetContext(self, context: 'QgsProcessingParameterWidgetContext') -> None: ...
    def value(self) -> typing.Any: ...
    def setValue(self, value: typing.Any) -> None: ...
    def outputIsSkipped(self) -> bool: ...


class QgsProcessingAbstractParameterDefinitionWidget(QtWidgets.QWidget, _core.QgsExpressionContextGenerator):

    def __init__(self, context: _core.QgsProcessingContext, widgetContext: 'QgsProcessingParameterWidgetContext', definition: typing.Optional[_core.QgsProcessingParameterDefinition] = ..., algorithm: typing.Optional[_core.QgsProcessingAlgorithm] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def registerProcessingContextGenerator(self, generator: typing.Optional[QgsProcessingContextGenerator]) -> None: ...
    def widgetContext(self) -> 'QgsProcessingParameterWidgetContext': ...
    def setWidgetContext(self, context: 'QgsProcessingParameterWidgetContext') -> None: ...
    def createParameter(self, name: typing.Optional[str], description: typing.Optional[str], flags: typing.Union[_core.QgsProcessingParameterDefinition.Flags, _core.QgsProcessingParameterDefinition.Flag]) -> typing.Optional[_core.QgsProcessingParameterDefinition]: ...


class QgsProcessingParameterDefinitionWidget(QtWidgets.QWidget):

    def __init__(self, type: typing.Optional[str], context: _core.QgsProcessingContext, widgetContext: 'QgsProcessingParameterWidgetContext', definition: typing.Optional[_core.QgsProcessingParameterDefinition] = ..., algorithm: typing.Optional[_core.QgsProcessingAlgorithm] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def registerProcessingContextGenerator(self, generator: typing.Optional[QgsProcessingContextGenerator]) -> None: ...
    def createParameter(self, name: typing.Optional[str] = ...) -> typing.Optional[_core.QgsProcessingParameterDefinition]: ...


class QgsProcessingParameterDefinitionDialog(QtWidgets.QDialog):

    def __init__(self, type: typing.Optional[str], context: _core.QgsProcessingContext, widgetContext: 'QgsProcessingParameterWidgetContext', definition: typing.Optional[_core.QgsProcessingParameterDefinition] = ..., algorithm: typing.Optional[_core.QgsProcessingAlgorithm] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def accept(self) -> None: ...
    def registerProcessingContextGenerator(self, generator: typing.Optional[QgsProcessingContextGenerator]) -> None: ...
    def switchToCommentTab(self) -> None: ...
    def commentColor(self) -> QtGui.QColor: ...
    def setCommentColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def comments(self) -> str: ...
    def setComments(self, comments: typing.Optional[str]) -> None: ...
    def createParameter(self, name: typing.Optional[str] = ...) -> typing.Optional[_core.QgsProcessingParameterDefinition]: ...


class QgsProcessingParametersWidget(QgsPanelWidget, QgsProcessingParametersGenerator):

    def __init__(self, algorithm: typing.Optional[_core.QgsProcessingAlgorithm], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def addExtraWidget(self, widget: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def addOutputWidget(self, widget: typing.Optional[QtWidgets.QWidget], stretch: int = ...) -> None: ...
    def addOutputLabel(self, label: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def addParameterLabel(self, parameter: typing.Optional[_core.QgsProcessingParameterDefinition], label: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def addParameterWidget(self, parameter: typing.Optional[_core.QgsProcessingParameterDefinition], widget: typing.Optional[QtWidgets.QWidget], stretch: int = ...) -> None: ...
    def initWidgets(self) -> None: ...
    def algorithm(self) -> typing.Optional[_core.QgsProcessingAlgorithm]: ...


class QgsProcessingRecentAlgorithmLog(QtCore.QObject):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def push(self, id: typing.Optional[str]) -> None: ...
    def recentAlgorithmIds(self) -> typing.List[str]: ...


class QgsProcessingToolboxModelNode(QtCore.QObject):

    class NodeType(int):
        NodeProvider = ... # type: QgsProcessingToolboxModelNode.NodeType
        NodeGroup = ... # type: QgsProcessingToolboxModelNode.NodeType
        NodeAlgorithm = ... # type: QgsProcessingToolboxModelNode.NodeType
        NodeRecent = ... # type: QgsProcessingToolboxModelNode.NodeType

    def __init__(self) -> None: ...

    def deleteChildren(self) -> None: ...
    def addChildNode(self, node: typing.Optional['QgsProcessingToolboxModelNode']) -> None: ...
    def getChildGroupNode(self, id: typing.Optional[str]) -> typing.Optional['QgsProcessingToolboxModelGroupNode']: ...
    def takeChild(self, node: typing.Optional['QgsProcessingToolboxModelNode']) -> typing.Optional['QgsProcessingToolboxModelNode']: ...
    def children(self) -> typing.List['QgsProcessingToolboxModelNode']: ...
    def parent(self) -> typing.Optional['QgsProcessingToolboxModelNode']: ...
    def nodeType(self) -> 'QgsProcessingToolboxModelNode.NodeType': ...


class QgsProcessingToolboxModelRecentNode(QgsProcessingToolboxModelNode):

    def __init__(self) -> None: ...

    def nodeType(self) -> QgsProcessingToolboxModelNode.NodeType: ...


class QgsProcessingToolboxModelProviderNode(QgsProcessingToolboxModelNode):

    def __init__(self, provider: typing.Optional[_core.QgsProcessingProvider]) -> None: ...

    def providerId(self) -> str: ...
    def provider(self) -> typing.Optional[_core.QgsProcessingProvider]: ...
    def nodeType(self) -> QgsProcessingToolboxModelNode.NodeType: ...


class QgsProcessingToolboxModelGroupNode(QgsProcessingToolboxModelNode):

    def __init__(self, id: typing.Optional[str], name: typing.Optional[str]) -> None: ...

    def name(self) -> str: ...
    def id(self) -> str: ...
    def nodeType(self) -> QgsProcessingToolboxModelNode.NodeType: ...


class QgsProcessingToolboxModelAlgorithmNode(QgsProcessingToolboxModelNode):

    def __init__(self, algorithm: typing.Optional[_core.QgsProcessingAlgorithm]) -> None: ...

    def algorithm(self) -> typing.Optional[_core.QgsProcessingAlgorithm]: ...
    def nodeType(self) -> QgsProcessingToolboxModelNode.NodeType: ...


class QgsProcessingToolboxModel(QtCore.QAbstractItemModel):

    class Roles(int):
        RoleNodeType = ... # type: QgsProcessingToolboxModel.Roles
        RoleAlgorithmFlags = ... # type: QgsProcessingToolboxModel.Roles
        RoleAlgorithmId = ... # type: QgsProcessingToolboxModel.Roles
        RoleAlgorithmName = ... # type: QgsProcessingToolboxModel.Roles
        RoleAlgorithmShortDescription = ... # type: QgsProcessingToolboxModel.Roles
        RoleAlgorithmTags = ... # type: QgsProcessingToolboxModel.Roles
        RoleProviderFlags = ... # type: QgsProcessingToolboxModel.Roles

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ..., registry: typing.Optional[_core.QgsProcessingRegistry] = ..., recentLog: typing.Optional[QgsProcessingRecentAlgorithmLog] = ...) -> None: ...

    recentAlgorithmAdded: typing.ClassVar[QtCore.pyqtSignal]
    def indexOfParentTreeNode(self, parentNode: typing.Optional[QgsProcessingToolboxModelNode]) -> QtCore.QModelIndex: ...
    def indexForProvider(self, providerId: typing.Optional[str]) -> QtCore.QModelIndex: ...
    def isAlgorithm(self, index: QtCore.QModelIndex) -> bool: ...
    def algorithmForIndex(self, index: QtCore.QModelIndex) -> typing.Optional[_core.QgsProcessingAlgorithm]: ...
    def providerIdForIndex(self, index: QtCore.QModelIndex) -> str: ...
    def providerForIndex(self, index: QtCore.QModelIndex) -> typing.Optional[_core.QgsProcessingProvider]: ...
    def node2index(self, node: typing.Optional[QgsProcessingToolboxModelNode]) -> QtCore.QModelIndex: ...
    def index2node(self, index: QtCore.QModelIndex) -> typing.Optional[QgsProcessingToolboxModelNode]: ...
    def mimeData(self, indexes: typing.Iterable[QtCore.QModelIndex]) -> typing.Optional[QtCore.QMimeData]: ...
    def parent(self, index: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def index(self, row: int, column: int, parent: QtCore.QModelIndex = ...) -> QtCore.QModelIndex: ...
    def columnCount(self, a0: QtCore.QModelIndex = ...) -> int: ...
    def rowCount(self, parent: QtCore.QModelIndex = ...) -> int: ...
    def data(self, index: QtCore.QModelIndex, role: int = ...) -> typing.Any: ...
    def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlags: ...


class QgsProcessingToolboxProxyModel(QtCore.QSortFilterProxyModel):

    class Filter(int):
        FilterToolbox = ... # type: QgsProcessingToolboxProxyModel.Filter
        FilterModeler = ... # type: QgsProcessingToolboxProxyModel.Filter
        FilterInPlace = ... # type: QgsProcessingToolboxProxyModel.Filter
        FilterShowKnownIssues = ... # type: QgsProcessingToolboxProxyModel.Filter

    class Filters(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsProcessingToolboxProxyModel.Filters', 'QgsProcessingToolboxProxyModel.Filter']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsProcessingToolboxProxyModel.Filters', 'QgsProcessingToolboxProxyModel.Filter']) -> 'QgsProcessingToolboxProxyModel.Filters': ...
        def __xor__(self, f: typing.Union['QgsProcessingToolboxProxyModel.Filters', 'QgsProcessingToolboxProxyModel.Filter']) -> 'QgsProcessingToolboxProxyModel.Filters': ...
        def __ior__(self, f: typing.Union['QgsProcessingToolboxProxyModel.Filters', 'QgsProcessingToolboxProxyModel.Filter']) -> 'QgsProcessingToolboxProxyModel.Filters': ...
        def __or__(self, f: typing.Union['QgsProcessingToolboxProxyModel.Filters', 'QgsProcessingToolboxProxyModel.Filter']) -> 'QgsProcessingToolboxProxyModel.Filters': ...
        def __iand__(self, f: typing.Union['QgsProcessingToolboxProxyModel.Filters', 'QgsProcessingToolboxProxyModel.Filter']) -> 'QgsProcessingToolboxProxyModel.Filters': ...
        def __and__(self, f: typing.Union['QgsProcessingToolboxProxyModel.Filters', 'QgsProcessingToolboxProxyModel.Filter']) -> 'QgsProcessingToolboxProxyModel.Filters': ...
        def __invert__(self) -> 'QgsProcessingToolboxProxyModel.Filters': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ..., registry: typing.Optional[_core.QgsProcessingRegistry] = ..., recentLog: typing.Optional[QgsProcessingRecentAlgorithmLog] = ...) -> None: ...

    def data(self, index: QtCore.QModelIndex, role: int = ...) -> typing.Any: ...
    def lessThan(self, left: QtCore.QModelIndex, right: QtCore.QModelIndex) -> bool: ...
    def filterAcceptsRow(self, sourceRow: int, sourceParent: QtCore.QModelIndex) -> bool: ...
    def filterString(self) -> str: ...
    def setFilterString(self, filter: typing.Optional[str]) -> None: ...
    def setInPlaceLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def filters(self) -> 'QgsProcessingToolboxProxyModel.Filters': ...
    def setFilters(self, filters: typing.Union['QgsProcessingToolboxProxyModel.Filters', 'QgsProcessingToolboxProxyModel.Filter']) -> None: ...
    def toolboxModel(self) -> typing.Optional[QgsProcessingToolboxModel]: ...


class QgsProcessingToolboxTreeView(QtWidgets.QTreeView):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., registry: typing.Optional[_core.QgsProcessingRegistry] = ..., recentLog: typing.Optional[QgsProcessingRecentAlgorithmLog] = ...) -> None: ...

    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def setFilterString(self, filter: typing.Optional[str]) -> None: ...
    def setInPlaceLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def filters(self) -> QgsProcessingToolboxProxyModel.Filters: ...
    def setFilters(self, filters: typing.Union[QgsProcessingToolboxProxyModel.Filters, QgsProcessingToolboxProxyModel.Filter]) -> None: ...
    def selectedAlgorithm(self) -> typing.Optional[_core.QgsProcessingAlgorithm]: ...
    def algorithmForIndex(self, index: QtCore.QModelIndex) -> typing.Optional[_core.QgsProcessingAlgorithm]: ...
    def setToolboxProxyModel(self, model: typing.Optional[QgsProcessingToolboxProxyModel]) -> None: ...
    def setRegistry(self, registry: typing.Optional[_core.QgsProcessingRegistry], recentLog: typing.Optional[QgsProcessingRecentAlgorithmLog] = ...) -> None: ...


class QgsProcessingParameterWidgetContext(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsProcessingParameterWidgetContext') -> None: ...

    def setActiveLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    def activeLayer(self) -> typing.Optional[_core.QgsMapLayer]: ...
    def setModelChildAlgorithmId(self, id: typing.Optional[str]) -> None: ...
    def modelChildAlgorithmId(self) -> str: ...
    def setModel(self, model: typing.Optional[_core.QgsProcessingModelAlgorithm]) -> None: ...
    def model(self) -> typing.Optional[_core.QgsProcessingModelAlgorithm]: ...
    def project(self) -> typing.Optional[_core.QgsProject]: ...
    def setProject(self, project: typing.Optional[_core.QgsProject]) -> None: ...
    def browserModel(self) -> typing.Optional[QgsBrowserGuiModel]: ...
    def setBrowserModel(self, model: typing.Optional[QgsBrowserGuiModel]) -> None: ...
    def messageBar(self) -> typing.Optional[QgsMessageBar]: ...
    def setMessageBar(self, bar: typing.Optional[QgsMessageBar]) -> None: ...
    def mapCanvas(self) -> typing.Optional[QgsMapCanvas]: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...


class QgsAbstractProcessingParameterWidgetWrapper(QtCore.QObject, _core.QgsExpressionContextGenerator):

    def __init__(self, parameter: typing.Optional[_core.QgsProcessingParameterDefinition] = ..., type: QgsProcessingGui.WidgetType = ..., parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def linkedVectorLayer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def widgetValue(self) -> typing.Any: ...
    def setWidgetValue(self, value: typing.Any, context: _core.QgsProcessingContext) -> None: ...
    def createLabel(self) -> typing.Optional[QtWidgets.QLabel]: ...
    def createWidget(self) -> typing.Optional[QtWidgets.QWidget]: ...
    widgetValueHasChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setDialog(self, dialog: typing.Optional[QtWidgets.QDialog]) -> None: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def stretch(self) -> int: ...
    def postInitialize(self, wrappers: typing.Iterable['QgsAbstractProcessingParameterWidgetWrapper']) -> None: ...
    def registerProcessingParametersGenerator(self, generator: typing.Optional[QgsProcessingParametersGenerator]) -> None: ...
    def registerProcessingContextGenerator(self, generator: typing.Optional[QgsProcessingContextGenerator]) -> None: ...
    def customProperties(self) -> typing.Dict[str, typing.Any]: ...
    def parameterValue(self) -> typing.Any: ...
    def setParameterValue(self, value: typing.Any, context: _core.QgsProcessingContext) -> None: ...
    def parameterDefinition(self) -> typing.Optional[_core.QgsProcessingParameterDefinition]: ...
    def wrappedLabel(self) -> typing.Optional[QtWidgets.QLabel]: ...
    def wrappedWidget(self) -> typing.Optional[QtWidgets.QWidget]: ...
    def createWrappedLabel(self) -> typing.Optional[QtWidgets.QLabel]: ...
    def createWrappedWidget(self, context: _core.QgsProcessingContext) -> typing.Optional[QtWidgets.QWidget]: ...
    def widgetContext(self) -> QgsProcessingParameterWidgetContext: ...
    def setWidgetContext(self, context: QgsProcessingParameterWidgetContext) -> None: ...
    def type(self) -> QgsProcessingGui.WidgetType: ...
    @property
    def param(self) -> typing.Optional[_core.QgsProcessingParameterDefinition]: ...


class QgsProcessingParameterWidgetFactoryInterface(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsProcessingParameterWidgetFactoryInterface') -> None: ...

    def defaultModelSource(self, parameter: typing.Optional[_core.QgsProcessingParameterDefinition]) -> _core.Qgis.ProcessingModelChildParameterSource: ...
    def modelerExpressionFormatString(self) -> str: ...
    def compatibleDataTypes(self, parameter: typing.Optional[_core.QgsProcessingParameterDefinition]) -> typing.List[int]: ...
    def compatibleOutputTypes(self) -> typing.List[str]: ...
    def compatibleParameterTypes(self) -> typing.List[str]: ...
    def createParameterDefinitionWidget(self, context: _core.QgsProcessingContext, widgetContext: QgsProcessingParameterWidgetContext, definition: typing.Optional[_core.QgsProcessingParameterDefinition] = ..., algorithm: typing.Optional[_core.QgsProcessingAlgorithm] = ...) -> typing.Optional[QgsProcessingAbstractParameterDefinitionWidget]: ...
    def createModelerWidgetWrapper(self, model: typing.Optional[_core.QgsProcessingModelAlgorithm], childId: typing.Optional[str], parameter: typing.Optional[_core.QgsProcessingParameterDefinition], context: _core.QgsProcessingContext) -> typing.Optional[QgsProcessingModelerParameterWidget]: ...
    def createWidgetWrapper(self, parameter: typing.Optional[_core.QgsProcessingParameterDefinition], type: QgsProcessingGui.WidgetType) -> typing.Optional[QgsAbstractProcessingParameterWidgetWrapper]: ...
    def parameterType(self) -> str: ...


class QgsProcessingHiddenWidgetWrapper(QgsAbstractProcessingParameterWidgetWrapper):

    def __init__(self, parameter: typing.Optional[_core.QgsProcessingParameterDefinition] = ..., type: QgsProcessingGui.WidgetType = ..., parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def createLabel(self) -> typing.Optional[QtWidgets.QLabel]: ...
    def createWidget(self) -> typing.Optional[QtWidgets.QWidget]: ...
    def setLinkedVectorLayer(self, layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...
    def linkedVectorLayer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def widgetValue(self) -> typing.Any: ...
    def setWidgetValue(self, value: typing.Any, context: _core.QgsProcessingContext) -> None: ...


class QgsModelArrowItem(QtCore.QObject, QtWidgets.QGraphicsPathItem):

    class Marker(int):
        Circle = ... # type: QgsModelArrowItem.Marker
        ArrowHead = ... # type: QgsModelArrowItem.Marker

    @typing.overload
    def __init__(self, startItem: typing.Optional['QgsModelComponentGraphicItem'], startEdge: QtCore.Qt.Edge, startIndex: int, startIsOutgoing: bool, startMarker: 'QgsModelArrowItem.Marker', endItem: typing.Optional['QgsModelComponentGraphicItem'], endEdge: QtCore.Qt.Edge, endIndex: int, endIsIncoming: bool, endMarker: 'QgsModelArrowItem.Marker') -> None: ...
    @typing.overload
    def __init__(self, startItem: typing.Optional['QgsModelComponentGraphicItem'], startEdge: QtCore.Qt.Edge, startIndex: int, startMarker: 'QgsModelArrowItem.Marker', endItem: typing.Optional['QgsModelComponentGraphicItem'], endMarker: 'QgsModelArrowItem.Marker') -> None: ...
    @typing.overload
    def __init__(self, startItem: typing.Optional['QgsModelComponentGraphicItem'], startMarker: 'QgsModelArrowItem.Marker', endItem: typing.Optional['QgsModelComponentGraphicItem'], endEdge: QtCore.Qt.Edge, endIndex: int, endMarker: 'QgsModelArrowItem.Marker') -> None: ...
    @typing.overload
    def __init__(self, startItem: typing.Optional['QgsModelComponentGraphicItem'], startMarker: 'QgsModelArrowItem.Marker', endItem: typing.Optional['QgsModelComponentGraphicItem'], endMarker: 'QgsModelArrowItem.Marker') -> None: ...

    def updatePath(self) -> None: ...
    def setPenStyle(self, style: QtCore.Qt.PenStyle) -> None: ...
    def paint(self, painter: typing.Optional[QtGui.QPainter], option: typing.Optional[QtWidgets.QStyleOptionGraphicsItem], widget: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsModelComponentGraphicItem(QtWidgets.QGraphicsObject):

    class Flag(int):
        Unused = ... # type: QgsModelComponentGraphicItem.Flag

    class State(int):
        Normal = ... # type: QgsModelComponentGraphicItem.State
        Selected = ... # type: QgsModelComponentGraphicItem.State
        Hover = ... # type: QgsModelComponentGraphicItem.State

    class Flags(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsModelComponentGraphicItem.Flags', 'QgsModelComponentGraphicItem.Flag']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsModelComponentGraphicItem.Flags', 'QgsModelComponentGraphicItem.Flag']) -> 'QgsModelComponentGraphicItem.Flags': ...
        def __xor__(self, f: typing.Union['QgsModelComponentGraphicItem.Flags', 'QgsModelComponentGraphicItem.Flag']) -> 'QgsModelComponentGraphicItem.Flags': ...
        def __ior__(self, f: typing.Union['QgsModelComponentGraphicItem.Flags', 'QgsModelComponentGraphicItem.Flag']) -> 'QgsModelComponentGraphicItem.Flags': ...
        def __or__(self, f: typing.Union['QgsModelComponentGraphicItem.Flags', 'QgsModelComponentGraphicItem.Flag']) -> 'QgsModelComponentGraphicItem.Flags': ...
        def __iand__(self, f: typing.Union['QgsModelComponentGraphicItem.Flags', 'QgsModelComponentGraphicItem.Flag']) -> 'QgsModelComponentGraphicItem.Flags': ...
        def __and__(self, f: typing.Union['QgsModelComponentGraphicItem.Flags', 'QgsModelComponentGraphicItem.Flag']) -> 'QgsModelComponentGraphicItem.Flags': ...
        def __invert__(self) -> 'QgsModelComponentGraphicItem.Flags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, component: typing.Optional[_core.QgsProcessingModelComponent], model: typing.Optional[_core.QgsProcessingModelAlgorithm], parent: typing.Optional[QtWidgets.QGraphicsItem]) -> None: ...

    def updateButtonPositions(self) -> None: ...
    def updateStoredComponentPosition(self, pos: typing.Union[QtCore.QPointF, QtCore.QPoint], size: QtCore.QSizeF) -> None: ...
    def iconPixmap(self) -> QtGui.QPixmap: ...
    def iconPicture(self) -> QtGui.QPicture: ...
    def titleAlignment(self) -> QtCore.Qt.Alignment: ...
    def strokeStyle(self, state: 'QgsModelComponentGraphicItem.State') -> QtCore.Qt.PenStyle: ...
    def textColor(self, state: 'QgsModelComponentGraphicItem.State') -> QtGui.QColor: ...
    def strokeColor(self, state: 'QgsModelComponentGraphicItem.State') -> QtGui.QColor: ...
    def fillColor(self, state: 'QgsModelComponentGraphicItem.State') -> QtGui.QColor: ...
    def truncatedTextForItem(self, text: typing.Optional[str]) -> str: ...
    def editComponent(self) -> None: ...
    sizePositionChanged: typing.ClassVar[QtCore.pyqtSignal]
    updateArrowPaths: typing.ClassVar[QtCore.pyqtSignal]
    repaintArrows: typing.ClassVar[QtCore.pyqtSignal]
    changed: typing.ClassVar[QtCore.pyqtSignal]
    aboutToChange: typing.ClassVar[QtCore.pyqtSignal]
    requestModelRepaint: typing.ClassVar[QtCore.pyqtSignal]
    def deleteComponent(self) -> None: ...
    def canDeleteComponent(self) -> bool: ...
    def editComment(self) -> None: ...
    @typing.overload
    def calculateAutomaticLinkPoint(self, other: typing.Optional['QgsModelComponentGraphicItem']) -> typing.Tuple[QtCore.QPointF, QtCore.Qt.Edge]: ...
    @typing.overload
    def calculateAutomaticLinkPoint(self, point: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> typing.Tuple[QtCore.QPointF, QtCore.Qt.Edge]: ...
    def linkPoint(self, edge: QtCore.Qt.Edge, index: int, incoming: bool) -> QtCore.QPointF: ...
    def linkPointText(self, edge: QtCore.Qt.Edge, index: int) -> str: ...
    def linkPointCount(self, edge: QtCore.Qt.Edge) -> int: ...
    def state(self) -> 'QgsModelComponentGraphicItem.State': ...
    def setLabel(self, label: typing.Optional[str]) -> None: ...
    def label(self) -> str: ...
    def itemRect(self, storedRect: bool = ...) -> QtCore.QRectF: ...
    def paint(self, painter: typing.Optional[QtGui.QPainter], option: typing.Optional[QtWidgets.QStyleOptionGraphicsItem], widget: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    def contains(self, point: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> bool: ...
    def boundingRect(self) -> QtCore.QRectF: ...
    def itemChange(self, change: QtWidgets.QGraphicsItem.GraphicsItemChange, value: typing.Any) -> typing.Any: ...
    def hoverLeaveEvent(self, event: typing.Optional[QtWidgets.QGraphicsSceneHoverEvent]) -> None: ...
    def hoverMoveEvent(self, event: typing.Optional[QtWidgets.QGraphicsSceneHoverEvent]) -> None: ...
    def hoverEnterEvent(self, event: typing.Optional[QtWidgets.QGraphicsSceneHoverEvent]) -> None: ...
    def mouseDoubleClickEvent(self, event: typing.Optional[QtWidgets.QGraphicsSceneMouseEvent]) -> None: ...
    def setItemRect(self, rect: QtCore.QRectF) -> None: ...
    def previewItemMove(self, dx: float, dy: float) -> None: ...
    def moveComponentBy(self, dx: float, dy: float) -> None: ...
    def setFont(self, font: QtGui.QFont) -> None: ...
    def font(self) -> QtGui.QFont: ...
    def view(self) -> typing.Optional['QgsModelGraphicsView']: ...
    def model(self) -> typing.Optional[_core.QgsProcessingModelAlgorithm]: ...
    def component(self) -> typing.Optional[_core.QgsProcessingModelComponent]: ...
    def flags(self) -> 'QgsModelComponentGraphicItem.Flags': ...


class QgsModelParameterGraphicItem(QgsModelComponentGraphicItem):

    def __init__(self, parameter: typing.Optional[_core.QgsProcessingModelParameter], model: typing.Optional[_core.QgsProcessingModelAlgorithm], parent: typing.Optional[QtWidgets.QGraphicsItem]) -> None: ...

    def deleteComponent(self) -> None: ...
    def updateStoredComponentPosition(self, pos: typing.Union[QtCore.QPointF, QtCore.QPoint], size: QtCore.QSizeF) -> None: ...
    def iconPicture(self) -> QtGui.QPicture: ...
    def textColor(self, state: QgsModelComponentGraphicItem.State) -> QtGui.QColor: ...
    def strokeColor(self, state: QgsModelComponentGraphicItem.State) -> QtGui.QColor: ...
    def fillColor(self, state: QgsModelComponentGraphicItem.State) -> QtGui.QColor: ...
    def canDeleteComponent(self) -> bool: ...
    def contextMenuEvent(self, event: typing.Optional[QtWidgets.QGraphicsSceneContextMenuEvent]) -> None: ...


class QgsModelChildAlgorithmGraphicItem(QgsModelComponentGraphicItem):

    def __init__(self, child: typing.Optional[_core.QgsProcessingModelChildAlgorithm], model: typing.Optional[_core.QgsProcessingModelAlgorithm], parent: typing.Optional[QtWidgets.QGraphicsItem]) -> None: ...

    def deleteComponent(self) -> None: ...
    def updateStoredComponentPosition(self, pos: typing.Union[QtCore.QPointF, QtCore.QPoint], size: QtCore.QSizeF) -> None: ...
    def linkPointText(self, edge: QtCore.Qt.Edge, index: int) -> str: ...
    def linkPointCount(self, edge: QtCore.Qt.Edge) -> int: ...
    def iconPicture(self) -> QtGui.QPicture: ...
    def iconPixmap(self) -> QtGui.QPixmap: ...
    def textColor(self, state: QgsModelComponentGraphicItem.State) -> QtGui.QColor: ...
    def strokeColor(self, state: QgsModelComponentGraphicItem.State) -> QtGui.QColor: ...
    def fillColor(self, state: QgsModelComponentGraphicItem.State) -> QtGui.QColor: ...
    def setInputs(self, inputs: typing.Dict[str, typing.Any]) -> None: ...
    def setResults(self, results: typing.Dict[str, typing.Any]) -> None: ...
    def canDeleteComponent(self) -> bool: ...
    def contextMenuEvent(self, event: typing.Optional[QtWidgets.QGraphicsSceneContextMenuEvent]) -> None: ...


class QgsModelOutputGraphicItem(QgsModelComponentGraphicItem):

    def __init__(self, output: typing.Optional[_core.QgsProcessingModelOutput], model: typing.Optional[_core.QgsProcessingModelAlgorithm], parent: typing.Optional[QtWidgets.QGraphicsItem]) -> None: ...

    def deleteComponent(self) -> None: ...
    def updateStoredComponentPosition(self, pos: typing.Union[QtCore.QPointF, QtCore.QPoint], size: QtCore.QSizeF) -> None: ...
    def iconPicture(self) -> QtGui.QPicture: ...
    def textColor(self, state: QgsModelComponentGraphicItem.State) -> QtGui.QColor: ...
    def strokeColor(self, state: QgsModelComponentGraphicItem.State) -> QtGui.QColor: ...
    def fillColor(self, state: QgsModelComponentGraphicItem.State) -> QtGui.QColor: ...
    def canDeleteComponent(self) -> bool: ...


class QgsModelCommentGraphicItem(QgsModelComponentGraphicItem):

    def __init__(self, comment: typing.Optional[_core.QgsProcessingModelComment], parentItem: typing.Optional[QgsModelComponentGraphicItem], model: typing.Optional[_core.QgsProcessingModelAlgorithm], parent: typing.Optional[QtWidgets.QGraphicsItem]) -> None: ...

    def editComponent(self) -> None: ...
    def deleteComponent(self) -> None: ...
    def updateStoredComponentPosition(self, pos: typing.Union[QtCore.QPointF, QtCore.QPoint], size: QtCore.QSizeF) -> None: ...
    def strokeStyle(self, state: QgsModelComponentGraphicItem.State) -> QtCore.Qt.PenStyle: ...
    def textColor(self, state: QgsModelComponentGraphicItem.State) -> QtGui.QColor: ...
    def strokeColor(self, state: QgsModelComponentGraphicItem.State) -> QtGui.QColor: ...
    def fillColor(self, state: QgsModelComponentGraphicItem.State) -> QtGui.QColor: ...
    def parentComponentItem(self) -> typing.Optional[QgsModelComponentGraphicItem]: ...
    def canDeleteComponent(self) -> bool: ...
    def contextMenuEvent(self, event: typing.Optional[QtWidgets.QGraphicsSceneContextMenuEvent]) -> None: ...


class QgsModelGroupBoxGraphicItem(QgsModelComponentGraphicItem):

    def __init__(self, box: typing.Optional[_core.QgsProcessingModelGroupBox], model: typing.Optional[_core.QgsProcessingModelAlgorithm], parent: typing.Optional[QtWidgets.QGraphicsItem]) -> None: ...

    def editComponent(self) -> None: ...
    def deleteComponent(self) -> None: ...
    def updateStoredComponentPosition(self, pos: typing.Union[QtCore.QPointF, QtCore.QPoint], size: QtCore.QSizeF) -> None: ...
    def titleAlignment(self) -> QtCore.Qt.Alignment: ...
    def strokeStyle(self, state: QgsModelComponentGraphicItem.State) -> QtCore.Qt.PenStyle: ...
    def textColor(self, state: QgsModelComponentGraphicItem.State) -> QtGui.QColor: ...
    def strokeColor(self, state: QgsModelComponentGraphicItem.State) -> QtGui.QColor: ...
    def fillColor(self, state: QgsModelComponentGraphicItem.State) -> QtGui.QColor: ...
    def canDeleteComponent(self) -> bool: ...
    def contextMenuEvent(self, event: typing.Optional[QtWidgets.QGraphicsSceneContextMenuEvent]) -> None: ...


class QgsModelDesignerDialog(QtWidgets.QMainWindow):

    class SaveAction(int):
        SaveAsFile = ... # type: QgsModelDesignerDialog.SaveAction
        SaveInProject = ... # type: QgsModelDesignerDialog.SaveAction

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def setModelName(self, name: typing.Optional[str]) -> None: ...
    def setLastRunChildAlgorithmInputs(self, inputs: typing.Dict[str, typing.Any]) -> None: ...
    def setLastRunChildAlgorithmResults(self, results: typing.Dict[str, typing.Any]) -> None: ...
    def checkForUnsavedChanges(self) -> bool: ...
    def validateSave(self, action: 'QgsModelDesignerDialog.SaveAction') -> bool: ...
    def setDirty(self, dirty: bool) -> None: ...
    def view(self) -> typing.Optional[QtWidgets.QGraphicsView]: ...
    def messageBar(self) -> typing.Optional[QgsMessageBar]: ...
    def actionRun(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionSaveInProject(self) -> typing.Optional[QtWidgets.QAction]: ...
    def actionOpen(self) -> typing.Optional[QtWidgets.QAction]: ...
    def toolbar(self) -> typing.Optional[QtWidgets.QToolBar]: ...
    def saveModel(self, saveAs: bool = ...) -> bool: ...
    def exportAsScriptAlgorithm(self) -> None: ...
    def addInput(self, inputId: typing.Optional[str], pos: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> None: ...
    def addAlgorithm(self, algorithmId: typing.Optional[str], pos: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> None: ...
    def repaintModel(self, showControls: bool = ...) -> None: ...
    def activate(self) -> None: ...
    def setModelScene(self, scene: typing.Optional['QgsModelGraphicsScene']) -> None: ...
    def loadModel(self, path: typing.Optional[str]) -> None: ...
    def setModel(self, model: typing.Optional[_core.QgsProcessingModelAlgorithm]) -> None: ...
    def model(self) -> typing.Optional[_core.QgsProcessingModelAlgorithm]: ...
    def endUndoCommand(self) -> None: ...
    def beginUndoCommand(self, text: typing.Optional[str], id: int = ...) -> None: ...
    def closeEvent(self, event: typing.Optional[QtGui.QCloseEvent]) -> None: ...


class QgsModelChildDependenciesWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget], model: typing.Optional[_core.QgsProcessingModelAlgorithm], childId: typing.Optional[str]) -> None: ...

    def setValue(self, value: typing.Iterable[_core.QgsProcessingModelChildDependency]) -> None: ...
    def value(self) -> typing.List[_core.QgsProcessingModelChildDependency]: ...


class QgsModelDesignerFlatButtonGraphicItem(QtWidgets.QGraphicsObject):

    def __init__(self, parent: typing.Optional[QtWidgets.QGraphicsItem], picture: QtGui.QPicture, position: typing.Union[QtCore.QPointF, QtCore.QPoint], size: QtCore.QSizeF = ...) -> None: ...

    def setPicture(self, picture: QtGui.QPicture) -> None: ...
    clicked: typing.ClassVar[QtCore.pyqtSignal]
    def view(self) -> typing.Optional['QgsModelGraphicsView']: ...
    def setPosition(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtWidgets.QGraphicsSceneMouseEvent]) -> None: ...
    def hoverLeaveEvent(self, event: typing.Optional[QtWidgets.QGraphicsSceneHoverEvent]) -> None: ...
    def hoverEnterEvent(self, event: typing.Optional[QtWidgets.QGraphicsSceneHoverEvent]) -> None: ...
    def boundingRect(self) -> QtCore.QRectF: ...
    def paint(self, painter: typing.Optional[QtGui.QPainter], option: typing.Optional[QtWidgets.QStyleOptionGraphicsItem], widget: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsModelDesignerFoldButtonGraphicItem(QgsModelDesignerFlatButtonGraphicItem):

    def __init__(self, parent: typing.Optional[QtWidgets.QGraphicsItem], folded: bool, position: typing.Union[QtCore.QPointF, QtCore.QPoint], size: QtCore.QSizeF = ...) -> None: ...

    folded: typing.ClassVar[QtCore.pyqtSignal]
    def mousePressEvent(self, event: typing.Optional[QtWidgets.QGraphicsSceneMouseEvent]) -> None: ...


class QgsModelGraphicsScene(QtWidgets.QGraphicsScene):

    class Flag(int):
        FlagHideControls = ... # type: QgsModelGraphicsScene.Flag
        FlagHideComments = ... # type: QgsModelGraphicsScene.Flag

    class ZValues(int):
        GroupBox = ... # type: QgsModelGraphicsScene.ZValues
        ArrowLink = ... # type: QgsModelGraphicsScene.ZValues
        ModelComponent = ... # type: QgsModelGraphicsScene.ZValues
        MouseHandles = ... # type: QgsModelGraphicsScene.ZValues
        RubberBand = ... # type: QgsModelGraphicsScene.ZValues
        ZSnapIndicator = ... # type: QgsModelGraphicsScene.ZValues

    class Flags(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsModelGraphicsScene.Flags', 'QgsModelGraphicsScene.Flag']) -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __ne__(self, other: object): ...
        def __eq__(self, other: object): ...
        def __ixor__(self, f: typing.Union['QgsModelGraphicsScene.Flags', 'QgsModelGraphicsScene.Flag']) -> 'QgsModelGraphicsScene.Flags': ...
        def __xor__(self, f: typing.Union['QgsModelGraphicsScene.Flags', 'QgsModelGraphicsScene.Flag']) -> 'QgsModelGraphicsScene.Flags': ...
        def __ior__(self, f: typing.Union['QgsModelGraphicsScene.Flags', 'QgsModelGraphicsScene.Flag']) -> 'QgsModelGraphicsScene.Flags': ...
        def __or__(self, f: typing.Union['QgsModelGraphicsScene.Flags', 'QgsModelGraphicsScene.Flag']) -> 'QgsModelGraphicsScene.Flags': ...
        def __iand__(self, f: typing.Union['QgsModelGraphicsScene.Flags', 'QgsModelGraphicsScene.Flag']) -> 'QgsModelGraphicsScene.Flags': ...
        def __and__(self, f: typing.Union['QgsModelGraphicsScene.Flags', 'QgsModelGraphicsScene.Flag']) -> 'QgsModelGraphicsScene.Flags': ...
        def __invert__(self) -> 'QgsModelGraphicsScene.Flags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def createGroupBoxGraphicItem(self, model: typing.Optional[_core.QgsProcessingModelAlgorithm], box: typing.Optional[_core.QgsProcessingModelGroupBox]) -> typing.Optional[QgsModelComponentGraphicItem]: ...
    def createCommentGraphicItem(self, model: typing.Optional[_core.QgsProcessingModelAlgorithm], comment: typing.Optional[_core.QgsProcessingModelComment], parentItem: typing.Optional[QgsModelComponentGraphicItem]) -> typing.Optional[QgsModelComponentGraphicItem]: ...
    def createOutputGraphicItem(self, model: typing.Optional[_core.QgsProcessingModelAlgorithm], output: typing.Optional[_core.QgsProcessingModelOutput]) -> typing.Optional[QgsModelComponentGraphicItem]: ...
    def createChildAlgGraphicItem(self, model: typing.Optional[_core.QgsProcessingModelAlgorithm], child: typing.Optional[_core.QgsProcessingModelChildAlgorithm]) -> typing.Optional[QgsModelChildAlgorithmGraphicItem]: ...
    def createParameterGraphicItem(self, model: typing.Optional[_core.QgsProcessingModelAlgorithm], param: typing.Optional[_core.QgsProcessingModelParameter]) -> typing.Optional[QgsModelComponentGraphicItem]: ...
    selectedItemChanged: typing.ClassVar[QtCore.pyqtSignal]
    componentChanged: typing.ClassVar[QtCore.pyqtSignal]
    componentAboutToChange: typing.ClassVar[QtCore.pyqtSignal]
    rebuildRequired: typing.ClassVar[QtCore.pyqtSignal]
    def showWarning(self, shortMessage: typing.Optional[str], title: typing.Optional[str], longMessage: typing.Optional[str], level: _core.Qgis.MessageLevel = ...) -> None: ...
    def setMessageBar(self, bar: typing.Optional[QgsMessageBar]) -> None: ...
    def messageBar(self) -> typing.Optional[QgsMessageBar]: ...
    def setChildAlgorithmInputs(self, inputs: typing.Dict[str, typing.Any]) -> None: ...
    def setChildAlgorithmResults(self, results: typing.Dict[str, typing.Any]) -> None: ...
    def setSelectedItem(self, item: typing.Optional[QgsModelComponentGraphicItem]) -> None: ...
    def deselectAll(self) -> None: ...
    def selectAll(self) -> None: ...
    def groupBoxItem(self, uuid: typing.Optional[str]) -> typing.Optional[QgsModelComponentGraphicItem]: ...
    def componentItemAt(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> typing.Optional[QgsModelComponentGraphicItem]: ...
    def selectedComponentItems(self) -> typing.List[QgsModelComponentGraphicItem]: ...
    def createItems(self, model: typing.Optional[_core.QgsProcessingModelAlgorithm], context: _core.QgsProcessingContext) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtWidgets.QGraphicsSceneMouseEvent]) -> None: ...
    def flags(self) -> 'QgsModelGraphicsScene.Flags': ...
    def setFlag(self, flag: 'QgsModelGraphicsScene.Flag', on: bool = ...) -> None: ...
    def setFlags(self, flags: typing.Union['QgsModelGraphicsScene.Flags', 'QgsModelGraphicsScene.Flag']) -> None: ...
    def setModel(self, model: typing.Optional[_core.QgsProcessingModelAlgorithm]) -> None: ...
    def model(self) -> typing.Optional[_core.QgsProcessingModelAlgorithm]: ...


class QgsModelGraphicsView(QtWidgets.QGraphicsView):

    class PasteMode(int):
        PasteModeCursor = ... # type: QgsModelGraphicsView.PasteMode
        PasteModeCenter = ... # type: QgsModelGraphicsView.PasteMode
        PasteModeInPlace = ... # type: QgsModelGraphicsView.PasteMode

    class ClipboardOperation(int):
        ClipboardCut = ... # type: QgsModelGraphicsView.ClipboardOperation
        ClipboardCopy = ... # type: QgsModelGraphicsView.ClipboardOperation

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    deleteSelectedItems: typing.ClassVar[QtCore.pyqtSignal]
    endCommand: typing.ClassVar[QtCore.pyqtSignal]
    beginCommand: typing.ClassVar[QtCore.pyqtSignal]
    macroCommandEnded: typing.ClassVar[QtCore.pyqtSignal]
    macroCommandStarted: typing.ClassVar[QtCore.pyqtSignal]
    willBeDeleted: typing.ClassVar[QtCore.pyqtSignal]
    itemFocused: typing.ClassVar[QtCore.pyqtSignal]
    inputDropped: typing.ClassVar[QtCore.pyqtSignal]
    algorithmDropped: typing.ClassVar[QtCore.pyqtSignal]
    def snapSelected(self) -> None: ...
    def pasteItems(self, mode: 'QgsModelGraphicsView.PasteMode') -> None: ...
    def copyItems(self, items: typing.Iterable[QgsModelComponentGraphicItem], operation: 'QgsModelGraphicsView.ClipboardOperation') -> None: ...
    def copySelectedItems(self, operation: 'QgsModelGraphicsView.ClipboardOperation') -> None: ...
    def endMacroCommand(self) -> None: ...
    def startMacroCommand(self, text: typing.Optional[str]) -> None: ...
    def modelScene(self) -> typing.Optional[QgsModelGraphicsScene]: ...
    def setModelScene(self, scene: typing.Optional[QgsModelGraphicsScene]) -> None: ...
    def keyReleaseEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def mouseDoubleClickEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseReleaseEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def wheelEvent(self, event: typing.Optional[QtGui.QWheelEvent]) -> None: ...
    def dragMoveEvent(self, event: typing.Optional[QtGui.QDragMoveEvent]) -> None: ...
    def dropEvent(self, event: typing.Optional[QtGui.QDropEvent]) -> None: ...
    def dragEnterEvent(self, event: typing.Optional[QtGui.QDragEnterEvent]) -> None: ...


class QgsModelViewSnapMarker(QtWidgets.QGraphicsRectItem):

    def __init__(self) -> None: ...

    def paint(self, painter: typing.Optional[QtGui.QPainter], option: typing.Optional[QtWidgets.QStyleOptionGraphicsItem], widget: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsAbstractDbSourceSelect(QgsAbstractDataSourceWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., widgetMode: _core.QgsProviderRegistry.WidgetMode = ...) -> None: ...

    def treeviewDoubleClicked(self, index: QtCore.QModelIndex) -> None: ...
    def treeviewClicked(self, index: QtCore.QModelIndex) -> None: ...
    def setSql(self, index: QtCore.QModelIndex) -> None: ...
    def proxyModel(self) -> typing.Optional[QtCore.QSortFilterProxyModel]: ...
    def init(self, model: typing.Optional[_core.QgsAbstractDbTableModel], delegate: typing.Optional[QtWidgets.QItemDelegate] = ...) -> None: ...


class QgsRasterAttributeTableWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., rasterLayer: typing.Optional[_core.QgsRasterLayer] = ..., bandNumber: int = ...) -> None: ...

    def setDockMode(self, dockMode: bool) -> None: ...
    def setEditable(self, editable: bool, allowCancel: bool = ...) -> bool: ...
    def saveChanges(self) -> None: ...
    rendererChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setMessageBar(self, bar: typing.Optional[QgsMessageBar]) -> None: ...
    def isDirty(self) -> bool: ...
    def setRasterLayer(self, rasterLayer: typing.Optional[_core.QgsRasterLayer], bandNumber: int = ...) -> None: ...


class QgsRasterAttributeTableDialog(QtWidgets.QDialog):

    def __init__(self, rasterLayer: typing.Optional[_core.QgsRasterLayer], bandNumber: int = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def reject(self) -> None: ...


class QgsColorRampShaderWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def populateColormapTreeWidget(self, colorRampItems: typing.Iterable[_core.QgsColorRampShader.ColorRampItem]) -> None: ...
    def loadMinimumMaximumFromTree(self) -> None: ...
    def classify(self) -> None: ...
    classificationModeChanged: typing.ClassVar[QtCore.pyqtSignal]
    widgetChanged: typing.ClassVar[QtCore.pyqtSignal]
    minimumMaximumChangedFromTree: typing.ClassVar[QtCore.pyqtSignal]
    def setFromShader(self, colorRampShader: _core.QgsColorRampShader) -> None: ...
    def shader(self) -> _core.QgsColorRampShader: ...
    def maximum(self) -> float: ...
    def minimum(self) -> float: ...
    def setMinimumMaximum(self, minimum: float, maximum: float) -> None: ...
    def setMinimumMaximumAndClassify(self, minimum: float, maximum: float) -> None: ...
    def setExtent(self, extent: _core.QgsRectangle) -> None: ...
    def setRasterBand(self, band: int) -> None: ...
    def setRasterDataProvider(self, dp: typing.Optional[_core.QgsRasterDataProvider]) -> None: ...
    def initializeForUseWithRasterLayer(self) -> None: ...


class QgsRasterRendererWidget(QtWidgets.QWidget):

    def __init__(self, layer: typing.Optional[_core.QgsRasterLayer], extent: _core.QgsRectangle) -> None: ...

    widgetChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setContrastEnhancementAlgorithm(self, algorithm: _core.QgsContrastEnhancement.ContrastEnhancementAlgorithm) -> None: ...
    def contrastEnhancementAlgorithm(self) -> _core.QgsContrastEnhancement.ContrastEnhancementAlgorithm: ...
    def minMaxWidget(self) -> typing.Optional['QgsRasterMinMaxWidget']: ...
    def doComputations(self) -> None: ...
    def selectedBand(self, index: int = ...) -> int: ...
    def setStdDev(self, value: typing.Optional[str]) -> None: ...
    def stdDev(self) -> str: ...
    def setMax(self, value: typing.Optional[str], index: int = ...) -> None: ...
    def setMin(self, value: typing.Optional[str], index: int = ...) -> None: ...
    def max(self, index: int = ...) -> str: ...
    def min(self, index: int = ...) -> str: ...
    def mapCanvas(self) -> typing.Optional[QgsMapCanvas]: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def rasterLayer(self) -> typing.Optional[_core.QgsRasterLayer]: ...
    def setRasterLayer(self, layer: typing.Optional[_core.QgsRasterLayer]) -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsRasterRenderer]: ...


class QgsHillshadeRendererWidget(QgsRasterRendererWidget):

    def __init__(self, layer: typing.Optional[_core.QgsRasterLayer], extent: _core.QgsRectangle = ...) -> None: ...

    def setMultiDirectional(self, isMultiDirectional: bool) -> None: ...
    def setZFactor(self, zfactor: float) -> None: ...
    def setAzimuth(self, azimuth: float) -> None: ...
    def setAltitude(self, altitude: float) -> None: ...
    def multiDirectional(self) -> bool: ...
    def zFactor(self) -> float: ...
    def altitude(self) -> float: ...
    def azimuth(self) -> float: ...
    def setFromRenderer(self, renderer: typing.Optional[_core.QgsRasterRenderer]) -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsRasterRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsRasterLayer], extent: _core.QgsRectangle) -> typing.Optional[QgsRasterRendererWidget]: ...


class QgsMultiBandColorRendererWidget(QgsRasterRendererWidget):

    def __init__(self, layer: typing.Optional[_core.QgsRasterLayer], extent: _core.QgsRectangle = ...) -> None: ...

    def loadMinMax(self, bandNo: int, min: float, max: float) -> None: ...
    def minMaxWidget(self) -> typing.Optional['QgsRasterMinMaxWidget']: ...
    def doComputations(self) -> None: ...
    def setContrastEnhancementAlgorithm(self, algorithm: _core.QgsContrastEnhancement.ContrastEnhancementAlgorithm) -> None: ...
    def contrastEnhancementAlgorithm(self) -> _core.QgsContrastEnhancement.ContrastEnhancementAlgorithm: ...
    def selectedBand(self, index: int = ...) -> int: ...
    def setMax(self, value: typing.Optional[str], index: int = ...) -> None: ...
    def setMin(self, value: typing.Optional[str], index: int = ...) -> None: ...
    def max(self, index: int = ...) -> str: ...
    def min(self, index: int = ...) -> str: ...
    def setFromRenderer(self, r: typing.Optional[_core.QgsRasterRenderer]) -> None: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsRasterRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsRasterLayer], extent: _core.QgsRectangle) -> typing.Optional[QgsRasterRendererWidget]: ...


class QgsPalettedRendererWidget(QgsRasterRendererWidget):

    def __init__(self, layer: typing.Optional[_core.QgsRasterLayer], extent: _core.QgsRectangle = ...) -> None: ...

    def setFromRenderer(self, r: typing.Optional[_core.QgsRasterRenderer]) -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsRasterRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsRasterLayer], extent: _core.QgsRectangle) -> typing.Optional[QgsRasterRendererWidget]: ...


class QgsRasterAttributeTableModel(QtCore.QAbstractTableModel):

    def __init__(self, rat: typing.Optional[_core.QgsRasterAttributeTable], parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlags: ...
    def headerData(self, section: int, orientation: QtCore.Qt.Orientation, role: int) -> typing.Any: ...
    def setData(self, index: QtCore.QModelIndex, value: typing.Any, role: int) -> bool: ...
    def data(self, index: QtCore.QModelIndex, role: int) -> typing.Any: ...
    def columnCount(self, parent: QtCore.QModelIndex) -> int: ...
    def rowCount(self, parent: QtCore.QModelIndex) -> int: ...
    def removeRow(self, position: int) -> typing.Tuple[bool, typing.Optional[str]]: ...
    def insertRamp(self, position: int) -> typing.Tuple[bool, typing.Optional[str]]: ...
    def insertColor(self, position: int) -> typing.Tuple[bool, typing.Optional[str]]: ...
    def insertRow(self, position: int, rowData: typing.Iterable[typing.Any]) -> typing.Tuple[bool, typing.Optional[str]]: ...
    def removeColorOrRamp(self) -> typing.Tuple[bool, typing.Optional[str]]: ...
    def removeField(self, position: int) -> typing.Tuple[bool, typing.Optional[str]]: ...
    def insertField(self, position: int, name: typing.Optional[str], usage: _core.Qgis.RasterAttributeTableFieldUsage, type: QtCore.QVariant.Type) -> typing.Tuple[bool, typing.Optional[str]]: ...
    def isDirty(self) -> bool: ...
    def isValid(self) -> typing.Tuple[bool, typing.Optional[str]]: ...
    def headerTooltip(self, section: int) -> str: ...
    def headerNames(self) -> typing.List[str]: ...
    def hasRamp(self) -> bool: ...
    def hasColor(self) -> bool: ...
    def setEditable(self, editable: bool) -> None: ...
    def editable(self) -> bool: ...


class QgsRasterBandComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    bandChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setBand(self, band: int) -> None: ...
    def setLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    @staticmethod
    def displayBandName(provider: typing.Optional[_core.QgsRasterDataProvider], band: int) -> str: ...
    def setShowNotSetOption(self, show: bool, string: typing.Optional[str] = ...) -> None: ...
    def isShowingNotSetOption(self) -> bool: ...
    def currentBand(self) -> int: ...
    def layer(self) -> typing.Optional[_core.QgsRasterLayer]: ...


class QgsRasterContourRendererWidget(QgsRasterRendererWidget):

    def __init__(self, layer: typing.Optional[_core.QgsRasterLayer], extent: _core.QgsRectangle = ...) -> None: ...

    def renderer(self) -> typing.Optional[_core.QgsRasterRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsRasterLayer], extent: _core.QgsRectangle) -> typing.Optional[QgsRasterRendererWidget]: ...


class QgsRasterHistogramWidget(QgsMapLayerConfigWidget):

    def __init__(self, layer: typing.Optional[_core.QgsRasterLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def apply(self) -> None: ...
    def refreshHistogram(self) -> None: ...
    def setSelectedBand(self, index: int) -> None: ...
    def histoAction(self, actionName: typing.Optional[str], actionFlag: bool = ...) -> None: ...
    def computeHistogram(self, forceComputeFlag: bool) -> bool: ...
    def setActive(self, activeFlag: bool) -> None: ...
    def setRendererWidget(self, name: typing.Optional[str], rendererWidget: typing.Optional[QgsRasterRendererWidget] = ...) -> None: ...
    def histoSaveAsImage(self, filename: typing.Optional[str], width: int = ..., height: int = ..., quality: int = ...) -> bool: ...


class QgsRasterMinMaxWidget(QtWidgets.QWidget):

    def __init__(self, layer: typing.Optional[_core.QgsRasterLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    load: typing.ClassVar[QtCore.pyqtSignal]
    widgetChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setCollapsed(self, b: bool) -> None: ...
    def isCollapsed(self) -> bool: ...
    def userHasSetManualMinMaxValues(self) -> None: ...
    def doComputations(self) -> None: ...
    def hideUpdatedExtent(self) -> None: ...
    def minMaxOrigin(self) -> _core.QgsRasterMinMaxOrigin: ...
    def setFromMinMaxOrigin(self, a0: _core.QgsRasterMinMaxOrigin) -> None: ...
    def sampleSize(self) -> int: ...
    def extent(self) -> _core.QgsRectangle: ...
    def setBands(self, bands: typing.Iterable[int]) -> None: ...
    def mapCanvas(self) -> typing.Optional[QgsMapCanvas]: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def setExtent(self, extent: _core.QgsRectangle) -> None: ...


class QgsRasterTransparencyWidget(QgsMapLayerConfigWidget):

    def __init__(self, layer: typing.Optional[_core.QgsRasterLayer], canvas: typing.Optional[QgsMapCanvas], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def apply(self) -> None: ...
    def syncToLayer(self) -> None: ...
    def pixelSelectorTool(self) -> typing.Optional[QgsMapToolEmitPoint]: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...


class QgsRendererRasterPropertiesWidget(QgsMapLayerConfigWidget):

    def __init__(self, layer: typing.Optional[_core.QgsMapLayer], canvas: typing.Optional[QgsMapCanvas], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def syncToLayer(self, layer: typing.Optional[_core.QgsRasterLayer]) -> None: ...
    def apply(self) -> None: ...
    def rendererChanged(self) -> None: ...
    def currentRenderWidget(self) -> typing.Optional[QgsRasterRendererWidget]: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...


class QgsSingleBandGrayRendererWidget(QgsRasterRendererWidget):

    def __init__(self, layer: typing.Optional[_core.QgsRasterLayer], extent: _core.QgsRectangle = ...) -> None: ...

    def loadMinMax(self, bandNo: int, min: float, max: float) -> None: ...
    def minMaxWidget(self) -> typing.Optional[QgsRasterMinMaxWidget]: ...
    def doComputations(self) -> None: ...
    def setContrastEnhancementAlgorithm(self, algorithm: _core.QgsContrastEnhancement.ContrastEnhancementAlgorithm) -> None: ...
    def contrastEnhancementAlgorithm(self) -> _core.QgsContrastEnhancement.ContrastEnhancementAlgorithm: ...
    def selectedBand(self, index: int = ...) -> int: ...
    def setMax(self, value: typing.Optional[str], index: int = ...) -> None: ...
    def setMin(self, value: typing.Optional[str], index: int = ...) -> None: ...
    def max(self, index: int = ...) -> str: ...
    def min(self, index: int = ...) -> str: ...
    def setFromRenderer(self, r: typing.Optional[_core.QgsRasterRenderer]) -> None: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsRasterRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsRasterLayer], extent: _core.QgsRectangle) -> typing.Optional[QgsRasterRendererWidget]: ...


class QgsSingleBandPseudoColorRendererWidget(QgsRasterRendererWidget):

    def __init__(self, layer: typing.Optional[_core.QgsRasterLayer], extent: _core.QgsRectangle = ...) -> None: ...

    def loadMinMaxFromTree(self, min: float, max: float) -> None: ...
    def loadMinMax(self, bandNo: int, min: float, max: float) -> None: ...
    def selectedBand(self, index: int = ...) -> int: ...
    def setMax(self, value: typing.Optional[str], index: int = ...) -> None: ...
    def setMin(self, value: typing.Optional[str], index: int = ...) -> None: ...
    def max(self, index: int = ...) -> str: ...
    def min(self, index: int = ...) -> str: ...
    def setFromRenderer(self, r: typing.Optional[_core.QgsRasterRenderer]) -> None: ...
    def minMaxWidget(self) -> typing.Optional[QgsRasterMinMaxWidget]: ...
    def doComputations(self) -> None: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsRasterRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsRasterLayer], extent: _core.QgsRectangle) -> typing.Optional[QgsRasterRendererWidget]: ...


class QgsRasterLayerProperties(QgsLayerPropertiesDialog):

    def __init__(self, lyr: typing.Optional[_core.QgsMapLayer], canvas: typing.Optional[QgsMapCanvas], parent: typing.Optional[QtWidgets.QWidget] = ..., a3: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def rollback(self) -> None: ...
    def apply(self) -> None: ...
    def optionsStackedWidget_CurrentChanged(self, index: int) -> None: ...
    def saveDefaultStyle(self) -> None: ...
    def eventFilter(self, obj: typing.Optional[QtCore.QObject], ev: typing.Optional[QtCore.QEvent]) -> bool: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def addPropertiesPageFactory(self, factory: typing.Optional[QgsMapLayerConfigWidgetFactory]) -> None: ...


class QgsRasterLayerTemporalPropertiesWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., layer: typing.Optional[_core.QgsRasterLayer] = ...) -> None: ...

    def addWidget(self, widget: typing.Optional[QgsMapLayerConfigWidget]) -> None: ...
    def syncToLayer(self) -> None: ...
    def saveTemporalProperties(self) -> None: ...


class QgsFieldCalculator(QtWidgets.QDialog):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def accept(self) -> None: ...
    def changedAttributeId(self) -> int: ...


class QgsVectorLayerProperties(QgsLayerPropertiesDialog):

    def __init__(self, canvas: typing.Optional[QgsMapCanvas], messageBar: typing.Optional[QgsMessageBar], lyr: typing.Optional[_core.QgsVectorLayer] = ..., parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def rollback(self) -> None: ...
    def apply(self) -> None: ...
    def syncToLayer(self) -> None: ...
    def optionsStackedWidget_CurrentChanged(self, index: int) -> None: ...
    def eventFilter(self, obj: typing.Optional[QtCore.QObject], ev: typing.Optional[QtCore.QEvent]) -> bool: ...


class CharacterWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def paintEvent(self, event: typing.Optional[QtGui.QPaintEvent]) -> None: ...
    def mousePressEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def mouseMoveEvent(self, event: typing.Optional[QtGui.QMouseEvent]) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    characterSelected: typing.ClassVar[QtCore.pyqtSignal]
    def clearCharacter(self) -> None: ...
    def setCharacter(self, character: str) -> None: ...
    def setColumns(self, columns: int) -> None: ...
    def updateFontMerging(self, enable: bool) -> None: ...
    def setFontStyle(self, fontStyle: typing.Optional[str]) -> None: ...
    def setFontSize(self, fontSize: float) -> None: ...
    def setFont(self, font: QtGui.QFont) -> None: ...
    def font(self) -> QtGui.QFont: ...
    def character(self) -> str: ...
    def squareSize(self) -> int: ...
    def columns(self) -> int: ...
    def sizeHint(self) -> QtCore.QSize: ...


class QgsRendererWidget(QgsPanelWidget):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle]) -> None: ...

    def pasteSymbolToSelection(self) -> None: ...
    def paste(self) -> None: ...
    def copy(self) -> None: ...
    def changeSymbolAngle(self) -> None: ...
    def changeSymbolSize(self) -> None: ...
    def changeSymbolWidth(self) -> None: ...
    def changeSymbolUnit(self) -> None: ...
    def changeSymbolOpacity(self) -> None: ...
    def changeSymbolColor(self) -> None: ...
    def contextMenuViewCategories(self, p: QtCore.QPoint) -> None: ...
    def setSymbolLevels(self, levels: typing.Iterable[_core.QgsLegendSymbolItem], enabled: bool) -> None: ...
    def createDataDefinedSizeLegendWidget(self, symbol: typing.Optional[_core.QgsMarkerSymbol], ddsLegend: typing.Optional[_core.QgsDataDefinedSizeLegend]) -> typing.Optional['QgsDataDefinedSizeLegendWidget']: ...
    def refreshSymbolView(self) -> None: ...
    def selectedSymbols(self) -> typing.List[_core.QgsSymbol]: ...
    symbolLevelsChanged: typing.ClassVar[QtCore.pyqtSignal]
    layerVariablesChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setDockMode(self, dockMode: bool) -> None: ...
    def applyChanges(self) -> None: ...
    def vectorLayer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def showSymbolLevelsDialog(self, r: typing.Optional[_core.QgsFeatureRenderer]) -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsFeatureRenderer]: ...


class Qgs25DRendererWidget(QgsRendererWidget):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> None: ...

    def renderer(self) -> typing.Optional[_core.QgsFeatureRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> typing.Optional[QgsRendererWidget]: ...


class QgsSymbolLayerWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget], vl: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...

    def updateDataDefinedProperty(self) -> None: ...
    symbolChanged: typing.ClassVar[QtCore.pyqtSignal]
    changed: typing.ClassVar[QtCore.pyqtSignal]
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def registerDataDefinedButton(self, button: typing.Optional[QgsPropertyOverrideButton], key: _core.QgsSymbolLayer.Property) -> None: ...
    def vectorLayer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...


class QgsArrowSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsBrushStyleComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def iconForBrush(self, style: QtCore.Qt.BrushStyle) -> QtGui.QIcon: ...
    def setBrushStyle(self, style: QtCore.Qt.BrushStyle) -> None: ...
    def brushStyle(self) -> QtCore.Qt.BrushStyle: ...


class QgsCategorizedSymbolRendererWidget(QgsRendererWidget):

    class CustomRoles(int):
        ValueRole = ... # type: QgsCategorizedSymbolRendererWidget.CustomRoles

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> None: ...

    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def refreshSymbolView(self) -> None: ...
    def selectedCategoryList(self) -> typing.List[_core.QgsRendererCategory]: ...
    def selectedSymbols(self) -> typing.List[_core.QgsSymbol]: ...
    def applyChangeToSymbol(self) -> None: ...
    def changeCategorySymbol(self) -> None: ...
    def changeSelectedSymbols(self) -> None: ...
    def selectedCategories(self) -> typing.List[int]: ...
    def currentCategoryRow(self) -> int: ...
    def populateCategories(self) -> None: ...
    def updateUiFromRenderer(self) -> None: ...
    def pasteSymbolToSelection(self) -> None: ...
    def setSymbolLevels(self, levels: typing.Iterable[_core.QgsLegendSymbolItem], enabled: bool) -> None: ...
    def matchToSymbolsFromXml(self) -> None: ...
    def matchToSymbolsFromLibrary(self) -> None: ...
    def rowsMoved(self) -> None: ...
    def showSymbolLevels(self) -> None: ...
    def deleteAllCategories(self) -> None: ...
    def deleteCategories(self) -> None: ...
    def applyColorRamp(self) -> None: ...
    def addCategories(self) -> None: ...
    def addCategory(self) -> None: ...
    def categoriesDoubleClicked(self, idx: QtCore.QModelIndex) -> None: ...
    def categoryColumnChanged(self, field: typing.Optional[str]) -> None: ...
    def changeCategorizedSymbol(self) -> None: ...
    def matchToSymbols(self, style: typing.Optional[_core.QgsStyle]) -> int: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsFeatureRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> typing.Optional[QgsRendererWidget]: ...


class QgsCptCityColorRampDialog(QtWidgets.QDialog):

    def __init__(self, ramp: _core.QgsCptCityColorRamp, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def eventFilter(self, obj: typing.Optional[QtCore.QObject], event: typing.Optional[QtCore.QEvent]) -> bool: ...
    def buttonBox(self) -> typing.Optional[QtWidgets.QDialogButtonBox]: ...
    def saveAsGradientRamp(self) -> bool: ...
    def selectedName(self) -> str: ...
    def setRamp(self, ramp: _core.QgsCptCityColorRamp) -> None: ...
    def ramp(self) -> _core.QgsCptCityColorRamp: ...


class QgsDashSpaceWidget(QgsPanelWidget):

    def __init__(self, vectorPattern: typing.Iterable[float], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setUnit(self, unit: _core.Qgis.RenderUnit) -> None: ...
    def dashDotVector(self) -> typing.List[float]: ...


class QgsDashSpaceDialog(QtWidgets.QDialog):

    def __init__(self, v: typing.Iterable[float], parent: typing.Optional[QtWidgets.QWidget] = ..., f: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def setUnit(self, unit: _core.Qgis.RenderUnit) -> None: ...
    def dashDotVector(self) -> typing.List[float]: ...


class QgsDataDefinedSizeLegendWidget(QgsPanelWidget):

    def __init__(self, ddsLegend: typing.Optional[_core.QgsDataDefinedSizeLegend], ddSize: _core.QgsProperty, overrideSymbol: typing.Optional[_core.QgsMarkerSymbol], canvas: typing.Optional[QgsMapCanvas] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def dataDefinedSizeLegend(self) -> typing.Optional[_core.QgsDataDefinedSizeLegend]: ...


class QgsEllipseSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsEmbeddedSymbolRendererWidget(QgsRendererWidget, _core.QgsExpressionContextGenerator):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> None: ...

    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsFeatureRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> typing.Optional[QgsRendererWidget]: ...


class QgsGraduatedHistogramWidget(QgsHistogramWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def drawHistogram(self) -> None: ...
    rangesModified: typing.ClassVar[QtCore.pyqtSignal]
    def setRenderer(self, renderer: typing.Optional[_core.QgsGraduatedSymbolRenderer]) -> None: ...


class QgsGraduatedSymbolRendererWidget(QgsRendererWidget):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> None: ...

    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def refreshSymbolView(self) -> None: ...
    def findSymbolForRange(self, lowerBound: float, upperBound: float, ranges: typing.Iterable[_core.QgsRendererRange]) -> typing.Optional[_core.QgsSymbol]: ...
    def selectedSymbols(self) -> typing.List[_core.QgsSymbol]: ...
    def applyChangeToSymbol(self) -> None: ...
    def changeSelectedSymbols(self) -> None: ...
    def changeRange(self, rangeIdx: int) -> None: ...
    def changeRangeSymbol(self, rangeIdx: int) -> None: ...
    def selectedRanges(self) -> typing.List[_core.QgsRendererRange]: ...
    def selectedClasses(self) -> typing.List[int]: ...
    def rowsOrdered(self) -> bool: ...
    def disconnectUpdateHandlers(self) -> None: ...
    def connectUpdateHandlers(self) -> None: ...
    def updateUiFromRenderer(self, updateCount: bool = ...) -> None: ...
    def pasteSymbolToSelection(self) -> None: ...
    def setSymbolLevels(self, levels: typing.Iterable[_core.QgsLegendSymbolItem], enabled: bool) -> None: ...
    def refreshRanges(self, reset: bool) -> None: ...
    def modelDataChanged(self) -> None: ...
    def rowsMoved(self) -> None: ...
    def showSymbolLevels(self) -> None: ...
    def labelFormatChanged(self) -> None: ...
    def toggleBoundariesLink(self, linked: bool) -> None: ...
    def deleteAllClasses(self) -> None: ...
    def deleteClasses(self) -> None: ...
    def addClass(self) -> None: ...
    def changeCurrentValue(self, item: typing.Optional[QtGui.QStandardItem]) -> None: ...
    def rangesClicked(self, idx: QtCore.QModelIndex) -> None: ...
    def rangesDoubleClicked(self, idx: QtCore.QModelIndex) -> None: ...
    def reapplySizes(self) -> None: ...
    def reapplyColorRamp(self) -> None: ...
    def classifyGraduated(self) -> None: ...
    def graduatedColumnChanged(self, field: typing.Optional[str]) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsFeatureRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> typing.Optional[QgsRendererWidget]: ...


class QgsHeatmapRendererWidget(QgsRendererWidget):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> None: ...

    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsFeatureRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> typing.Optional[QgsRendererWidget]: ...


class QgsInterpolatedLineSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsInvertedPolygonRendererWidget(QgsRendererWidget):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> None: ...

    def setDockMode(self, dockMode: bool) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsFeatureRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> typing.Optional[QgsRendererWidget]: ...


class QgsLayerPropertiesWidget(QgsPanelWidget, _core.QgsExpressionContextGenerator):

    def __init__(self, layer: typing.Optional[_core.QgsSymbolLayer], symbol: typing.Optional[_core.QgsSymbol], vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def registerDataDefinedButton(self, button: typing.Optional[QgsPropertyOverrideButton], key: _core.QgsSymbolLayer.Property) -> None: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def updateSymbolLayerWidget(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    def populateLayerTypes(self) -> None: ...
    changeLayer: typing.ClassVar[QtCore.pyqtSignal]
    changed: typing.ClassVar[QtCore.pyqtSignal]
    def emitSignalChanged(self) -> None: ...
    def layerTypeChanged(self) -> None: ...
    def setDockMode(self, dockMode: bool) -> None: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...


class QgsMergedFeatureRendererWidget(QgsRendererWidget):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> None: ...

    def setDockMode(self, dockMode: bool) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsFeatureRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> typing.Optional[QgsRendererWidget]: ...


class QgsNullSymbolRendererWidget(QgsRendererWidget):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> None: ...

    def renderer(self) -> typing.Optional[_core.QgsFeatureRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> typing.Optional[QgsRendererWidget]: ...


class QgsMaskMarkerSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsPenStyleComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def iconForPen(self, style: QtCore.Qt.PenStyle) -> QtGui.QIcon: ...
    def setPenStyle(self, style: QtCore.Qt.PenStyle) -> None: ...
    def penStyle(self) -> QtCore.Qt.PenStyle: ...


class QgsPenJoinStyleComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setPenJoinStyle(self, style: QtCore.Qt.PenJoinStyle) -> None: ...
    def penJoinStyle(self) -> QtCore.Qt.PenJoinStyle: ...


class QgsPenCapStyleComboBox(QtWidgets.QComboBox):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setPenCapStyle(self, style: QtCore.Qt.PenCapStyle) -> None: ...
    def penCapStyle(self) -> QtCore.Qt.PenCapStyle: ...


class QgsPointClusterRendererWidget(QgsRendererWidget, _core.QgsExpressionContextGenerator):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> None: ...

    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsFeatureRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> typing.Optional[QgsRendererWidget]: ...


class QgsPointDisplacementRendererWidget(QgsRendererWidget, _core.QgsExpressionContextGenerator):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> None: ...

    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsFeatureRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> typing.Optional[QgsRendererWidget]: ...


class QgsRendererPropertiesDialog(QtWidgets.QDialog):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], embedded: bool = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def connectValueChanged(self, widgets: typing.Iterable[QtWidgets.QWidget], slot: typing.Optional[str]) -> None: ...
    def openPanel(self, panel: typing.Optional[QgsPanelWidget]) -> None: ...
    def onOK(self) -> None: ...
    def apply(self) -> None: ...
    def rendererChanged(self) -> None: ...
    showPanel: typing.ClassVar[QtCore.pyqtSignal]
    widgetChanged: typing.ClassVar[QtCore.pyqtSignal]
    layerVariablesChanged: typing.ClassVar[QtCore.pyqtSignal]
    def setDockMode(self, dockMode: bool) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...


class QgsDataDefinedValueDialog(QtWidgets.QDialog):

    def __init__(self, symbolList: typing.Iterable[_core.QgsSymbol], layer: typing.Optional[_core.QgsVectorLayer], label: typing.Optional[str]) -> None: ...

    def init(self, propertyKey: int) -> None: ...
    def dataDefinedChanged(self) -> None: ...
    def vectorLayer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...


class QgsDataDefinedSizeDialog(QgsDataDefinedValueDialog):

    def __init__(self, symbolList: typing.Iterable[_core.QgsSymbol], layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...

    def setDataDefined(self, symbol: typing.Optional[_core.QgsSymbol], dd: _core.QgsProperty) -> None: ...
    def value(self, symbol: typing.Optional[_core.QgsSymbol]) -> float: ...
    def symbolDataDefined(self, symbol: typing.Optional[_core.QgsSymbol]) -> _core.QgsProperty: ...


class QgsDataDefinedRotationDialog(QgsDataDefinedValueDialog):

    def __init__(self, symbolList: typing.Iterable[_core.QgsSymbol], layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...

    def setDataDefined(self, symbol: typing.Optional[_core.QgsSymbol], dd: _core.QgsProperty) -> None: ...
    def value(self, symbol: typing.Optional[_core.QgsSymbol]) -> float: ...
    def symbolDataDefined(self, symbol: typing.Optional[_core.QgsSymbol]) -> _core.QgsProperty: ...


class QgsDataDefinedWidthDialog(QgsDataDefinedValueDialog):

    def __init__(self, symbolList: typing.Iterable[_core.QgsSymbol], layer: typing.Optional[_core.QgsVectorLayer]) -> None: ...

    def setDataDefined(self, symbol: typing.Optional[_core.QgsSymbol], dd: _core.QgsProperty) -> None: ...
    def value(self, symbol: typing.Optional[_core.QgsSymbol]) -> float: ...
    def symbolDataDefined(self, symbol: typing.Optional[_core.QgsSymbol]) -> _core.QgsProperty: ...


class QgsRuleBasedRendererModel(QtCore.QAbstractItemModel):

    def __init__(self, renderer: typing.Optional[_core.QgsRuleBasedRenderer], parent: typing.Optional[QtCore.QObject], screen: typing.Optional[QtGui.QScreen] = ...) -> None: ...

    def clearFeatureCounts(self) -> None: ...
    def finishedAddingRules(self) -> None: ...
    def willAddRules(self, parent: QtCore.QModelIndex, count: int) -> None: ...
    def setSymbol(self, index: QtCore.QModelIndex, symbol: typing.Optional[_core.QgsSymbol]) -> None: ...
    def removeRule(self, index: QtCore.QModelIndex) -> None: ...
    @typing.overload
    def updateRule(self, parent: QtCore.QModelIndex, row: int) -> None: ...
    @typing.overload
    def updateRule(self, index: QtCore.QModelIndex) -> None: ...
    def insertRule(self, parent: QtCore.QModelIndex, before: int, newrule: typing.Optional[_core.QgsRuleBasedRenderer.Rule]) -> None: ...
    def ruleForIndex(self, index: QtCore.QModelIndex) -> typing.Optional[_core.QgsRuleBasedRenderer.Rule]: ...
    def removeRows(self, row: int, count: int, parent: QtCore.QModelIndex = ...) -> bool: ...
    def dropMimeData(self, data: typing.Optional[QtCore.QMimeData], action: QtCore.Qt.DropAction, row: int, column: int, parent: QtCore.QModelIndex) -> bool: ...
    def mimeData(self, indexes: typing.Iterable[QtCore.QModelIndex]) -> typing.Optional[QtCore.QMimeData]: ...
    def mimeTypes(self) -> typing.List[str]: ...
    def supportedDropActions(self) -> QtCore.Qt.DropActions: ...
    def setData(self, index: QtCore.QModelIndex, value: typing.Any, role: int = ...) -> bool: ...
    def parent(self, index: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def index(self, row: int, column: int, parent: QtCore.QModelIndex = ...) -> QtCore.QModelIndex: ...
    def columnCount(self, a0: QtCore.QModelIndex = ...) -> int: ...
    def rowCount(self, parent: QtCore.QModelIndex = ...) -> int: ...
    def headerData(self, section: int, orientation: QtCore.Qt.Orientation, role: int = ...) -> typing.Any: ...
    def data(self, index: QtCore.QModelIndex, role: int = ...) -> typing.Any: ...
    def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlags: ...


class QgsRuleBasedRendererWidget(QgsRendererWidget):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> None: ...

    def pasteSymbolToSelection(self) -> None: ...
    def paste(self) -> None: ...
    def copy(self) -> None: ...
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def refreshSymbolView(self) -> None: ...
    def selectedRules(self) -> typing.List[_core.QgsRuleBasedRenderer.Rule]: ...
    def selectedSymbols(self) -> typing.List[_core.QgsSymbol]: ...
    def currentRule(self) -> typing.Optional[_core.QgsRuleBasedRenderer.Rule]: ...
    def setSymbolLevels(self, levels: typing.Iterable[_core.QgsLegendSymbolItem], enabled: bool) -> None: ...
    def refineRuleScalesGui(self, index: typing.Iterable[QtCore.QModelIndex]) -> None: ...
    def refineRuleRangesGui(self) -> None: ...
    def refineRuleCategoriesGui(self) -> None: ...
    def refineRule(self, type: int) -> None: ...
    def restoreSectionWidths(self) -> None: ...
    def saveSectionWidth(self, section: int, oldSize: int, newSize: int) -> None: ...
    def selectedRulesChanged(self) -> None: ...
    def currentRuleChanged(self, current: QtCore.QModelIndex = ..., previous: QtCore.QModelIndex = ...) -> None: ...
    def setRenderingOrder(self) -> None: ...
    def refineRuleRanges(self) -> None: ...
    def refineRuleCategories(self) -> None: ...
    def refineRuleScales(self) -> None: ...
    def clearFeatureCounts(self) -> None: ...
    def countFeatures(self) -> None: ...
    def removeRule(self) -> None: ...
    @typing.overload
    def editRule(self) -> None: ...
    @typing.overload
    def editRule(self, index: QtCore.QModelIndex) -> None: ...
    def addRule(self) -> None: ...
    def setDockMode(self, dockMode: bool) -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsFeatureRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> typing.Optional[QgsRendererWidget]: ...


class QgsRendererRulePropsWidget(QgsPanelWidget):

    def __init__(self, rule: typing.Optional[_core.QgsRuleBasedRenderer.Rule], layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], parent: typing.Optional[QtWidgets.QWidget] = ..., context: 'QgsSymbolWidgetContext' = ...) -> None: ...

    def setDockMode(self, dockMode: bool) -> None: ...
    def apply(self) -> None: ...
    def buildExpression(self) -> None: ...
    def testFilter(self) -> None: ...
    def rule(self) -> typing.Optional[_core.QgsRuleBasedRenderer.Rule]: ...


class QgsRendererRulePropsDialog(QtWidgets.QDialog):

    def __init__(self, rule: typing.Optional[_core.QgsRuleBasedRenderer.Rule], layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], parent: typing.Optional[QtWidgets.QWidget] = ..., context: 'QgsSymbolWidgetContext' = ...) -> None: ...

    def accept(self) -> None: ...
    def buildExpression(self) -> None: ...
    def testFilter(self) -> None: ...
    def rule(self) -> typing.Optional[_core.QgsRuleBasedRenderer.Rule]: ...


class QgsSingleSymbolRendererWidget(QgsRendererWidget):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> None: ...

    def setSymbolLevels(self, levels: typing.Iterable[_core.QgsLegendSymbolItem], enabled: bool) -> None: ...
    def setDockMode(self, dockMode: bool) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsFeatureRenderer]: ...
    @staticmethod
    def create(layer: typing.Optional[_core.QgsVectorLayer], style: typing.Optional[_core.QgsStyle], renderer: typing.Optional[_core.QgsFeatureRenderer]) -> typing.Optional[QgsRendererWidget]: ...


class QgsSmartGroupCondition(QtWidgets.QWidget):

    def __init__(self, id: int, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    removed: typing.ClassVar[QtCore.pyqtSignal]
    def destruct(self) -> None: ...
    def hideRemoveButton(self, hide: bool) -> None: ...
    def setParameter(self, param: typing.Optional[str]) -> None: ...
    def setConstraint(self, constraint: typing.Optional[str]) -> None: ...
    def parameter(self) -> str: ...
    def constraint(self) -> str: ...


class QgsSmartGroupEditorDialog(QtWidgets.QDialog):

    def __init__(self, style: typing.Optional[_core.QgsStyle], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def removeCondition(self, a0: int) -> None: ...
    def addCondition(self) -> None: ...
    def setSmartgroupName(self, a0: typing.Optional[str]) -> None: ...
    def setOperator(self, a0: typing.Optional[str]) -> None: ...
    def conditionOperator(self) -> str: ...
    def smartgroupName(self) -> str: ...


class QgsStyleExportImportDialog(QtWidgets.QDialog):

    class Mode(int):
        Export = ... # type: QgsStyleExportImportDialog.Mode
        Import = ... # type: QgsStyleExportImportDialog.Mode

    def __init__(self, style: typing.Optional[_core.QgsStyle], parent: typing.Optional[QtWidgets.QWidget] = ..., mode: 'QgsStyleExportImportDialog.Mode' = ...) -> None: ...

    def importTypeChanged(self, a0: int) -> None: ...
    def deselectSmartgroup(self, groupName: typing.Optional[str]) -> None: ...
    def selectSmartgroup(self, groupName: typing.Optional[str]) -> None: ...
    def deselectTag(self, tagName: typing.Optional[str]) -> None: ...
    def selectTag(self, tagName: typing.Optional[str]) -> None: ...
    def deselectFavorites(self) -> None: ...
    def selectFavorites(self) -> None: ...
    def clearSelection(self) -> None: ...
    def selectAll(self) -> None: ...
    def selectByGroup(self) -> None: ...
    def doExportImport(self) -> None: ...
    def deselectSymbols(self, symbolNames: typing.Iterable[typing.Optional[str]]) -> None: ...
    def selectSymbols(self, symbolNames: typing.Iterable[typing.Optional[str]]) -> None: ...
    def setImportFilePath(self, path: typing.Optional[str]) -> None: ...


class QgsStyleGroupSelectionDialog(QtWidgets.QDialog):

    def __init__(self, style: typing.Optional[_core.QgsStyle], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    favoritesSelected: typing.ClassVar[QtCore.pyqtSignal]
    favoritesDeselected: typing.ClassVar[QtCore.pyqtSignal]
    allSelected: typing.ClassVar[QtCore.pyqtSignal]
    allDeselected: typing.ClassVar[QtCore.pyqtSignal]
    smartgroupDeselected: typing.ClassVar[QtCore.pyqtSignal]
    smartgroupSelected: typing.ClassVar[QtCore.pyqtSignal]
    tagDeselected: typing.ClassVar[QtCore.pyqtSignal]
    tagSelected: typing.ClassVar[QtCore.pyqtSignal]
    def setBold(self, item: typing.Optional[QtGui.QStandardItem]) -> None: ...


class QgsStyleManagerDialog(QtWidgets.QDialog):

    @typing.overload
    def __init__(self, style: typing.Optional[_core.QgsStyle], parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., readOnly: bool = ...) -> None: ...
    @typing.overload
    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def setBold(self, a0: typing.Optional[QtGui.QStandardItem]) -> None: ...
    def enableItemsForGroupingMode(self, a0: bool) -> None: ...
    def enableGroupInputs(self, a0: bool) -> None: ...
    def enableSymbolInputs(self, a0: bool) -> None: ...
    def removeColorRamp(self) -> bool: ...
    def removeSymbol(self) -> bool: ...
    def editColorRamp(self) -> bool: ...
    def editSymbol(self) -> bool: ...
    def addSymbol(self, symbolType: int = ...) -> bool: ...
    def currentItemName(self) -> str: ...
    def currentItemType(self) -> int: ...
    def populateColorRamps(self, colorRamps: typing.Iterable[typing.Optional[str]], checkable: bool = ...) -> None: ...
    def populateSymbols(self, symbolNames: typing.Iterable[typing.Optional[str]], checkable: bool = ...) -> None: ...
    def setSymbolsChecked(self, a0: typing.Iterable[typing.Optional[str]]) -> None: ...
    def populateGroups(self) -> None: ...
    def populateTypes(self) -> None: ...
    def detagSelectedSymbols(self) -> None: ...
    def tagSelectedSymbols(self, newTag: bool = ...) -> None: ...
    def removeFavoriteSelectedSymbols(self) -> None: ...
    def addFavoriteSelectedSymbols(self) -> None: ...
    def addColorRamp(self, type: typing.Optional[str] = ...) -> bool: ...
    def listitemsContextMenu(self, a0: QtCore.QPoint) -> None: ...
    def grouptreeContextMenu(self, a0: QtCore.QPoint) -> None: ...
    def selectedSymbolsChanged(self, selected: QtCore.QItemSelection, deselected: QtCore.QItemSelection) -> None: ...
    def symbolSelected(self, a0: QtCore.QModelIndex) -> None: ...
    def filterSymbols(self, filter: typing.Optional[str]) -> None: ...
    def regrouped(self, a0: typing.Optional[QtGui.QStandardItem]) -> None: ...
    def editSmartgroupAction(self) -> None: ...
    def tagSymbolsAction(self) -> None: ...
    def removeGroup(self) -> None: ...
    def addSmartgroup(self) -> int: ...
    def addTag(self) -> int: ...
    def groupRenamed(self, item: typing.Optional[QtGui.QStandardItem]) -> None: ...
    def groupChanged(self, a0: QtCore.QModelIndex) -> None: ...
    def itemChanged(self, item: typing.Optional[QtGui.QStandardItem]) -> None: ...
    def showHelp(self) -> None: ...
    def onClose(self) -> None: ...
    def onFinished(self) -> None: ...
    def populateList(self) -> None: ...
    def importItems(self) -> None: ...
    def exportItems(self) -> None: ...
    def exportSelectedItemsImages(self, dir: typing.Optional[str], format: typing.Optional[str], size: QtCore.QSize) -> None: ...
    def exportItemsPNG(self) -> None: ...
    def exportItemsSVG(self) -> None: ...
    def removeItem(self) -> None: ...
    def editItem(self) -> None: ...
    def addItem(self) -> None: ...
    def activate(self) -> None: ...
    def setBaseStyleName(self, name: typing.Optional[str]) -> None: ...
    def setSmartGroupsVisible(self, show: bool) -> None: ...
    def setFavoritesGroupVisible(self, show: bool) -> None: ...
    @staticmethod
    def addColorRampStatic(parent: typing.Optional[QtWidgets.QWidget], style: typing.Optional[_core.QgsStyle], RampType: typing.Optional[str] = ...) -> str: ...


class QgsStyleSaveDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., type: _core.QgsStyle.StyleEntity = ...) -> None: ...

    def destinationStyle(self) -> typing.Optional[_core.QgsStyle]: ...
    def selectedType(self) -> _core.QgsStyle.StyleEntity: ...
    def isFavorite(self) -> bool: ...
    def tags(self) -> str: ...
    def setDefaultTags(self, tags: typing.Optional[str]) -> None: ...
    def name(self) -> str: ...


class QgsSvgSelectorFilterModel(QtCore.QSortFilterProxyModel):

    def __init__(self, parent: typing.Optional[QtCore.QObject], path: typing.Optional[str] = ..., iconSize: int = ...) -> None: ...


class QgsSvgSelectorListModel(QtCore.QAbstractListModel):

    @typing.overload
    def __init__(self, parent: typing.Optional[QtCore.QObject], iconSize: int = ...) -> None: ...
    @typing.overload
    def __init__(self, parent: typing.Optional[QtCore.QObject], path: typing.Optional[str], iconSize: int = ...) -> None: ...

    def data(self, index: QtCore.QModelIndex, role: int = ...) -> typing.Any: ...
    def rowCount(self, parent: QtCore.QModelIndex = ...) -> int: ...


class QgsSvgSelectorGroupsModel(QtGui.QStandardItemModel):

    def __init__(self, parent: typing.Optional[QtCore.QObject]) -> None: ...


class QgsSvgSelectorWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def populateList(self) -> None: ...
    svgParametersChanged: typing.ClassVar[QtCore.pyqtSignal]
    svgSelected: typing.ClassVar[QtCore.pyqtSignal]
    def setSvgParameters(self, parameters: typing.Dict[typing.Optional[str], _core.QgsProperty]) -> None: ...
    def setSvgPath(self, svgPath: typing.Optional[str]) -> None: ...
    def propertyOverrideToolButton(self) -> typing.Optional[QgsPropertyOverrideButton]: ...
    def browserVisible(self) -> bool: ...
    def setBrowserVisible(self, visible: bool) -> None: ...
    def allowParamerters(self) -> bool: ...
    def setAllowParameters(self, allow: bool) -> None: ...
    def sourceLineEdit(self) -> typing.Optional[QgsPictureSourceLineEditBase]: ...
    def currentSvgPath(self) -> str: ...
    def initParametersModel(self, generator: typing.Optional[_core.QgsExpressionContextGenerator], layer: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...


class QgsSvgSelectorDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., buttons: typing.Union[QtWidgets.QDialogButtonBox.StandardButtons, QtWidgets.QDialogButtonBox.StandardButton] = ..., orientation: QtCore.Qt.Orientation = ...) -> None: ...

    def svgSelector(self) -> typing.Optional[QgsSvgSelectorWidget]: ...


class QgsSymbolAnimationSettingsWidget(QgsPanelWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def animationSettings(self) -> _core.QgsSymbolAnimationSettings: ...
    def setAnimationSettings(self, settings: _core.QgsSymbolAnimationSettings) -> None: ...


class QgsSymbolAnimationSettingsDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., f: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def animationSettings(self) -> _core.QgsSymbolAnimationSettings: ...
    def setAnimationSettings(self, settings: _core.QgsSymbolAnimationSettings) -> None: ...


class QgsSimpleLineSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def resizeEvent(self, event: typing.Optional[QtGui.QResizeEvent]) -> None: ...
    def updatePatternIcon(self) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsSimpleMarkerSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setColorFill(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setColorStroke(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsSimpleFillSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setStrokeColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsFilledMarkerSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsGradientFillSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setGradientSpread(self, index: int) -> None: ...
    def setCoordinateMode(self, index: int) -> None: ...
    def setGradientType(self, index: int) -> None: ...
    def applyColorRamp(self) -> None: ...
    def setColor2(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsShapeburstFillSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setColor2(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsMarkerLineSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setOffsetAlongLine(self, val: float) -> None: ...
    def setInterval(self, val: float) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsHashedLineSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsSvgMarkerSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setGuiForSvg(self, layer: typing.Optional[_core.QgsSvgMarkerSymbolLayer], skipDefaultColors: bool = ...) -> None: ...
    def populateList(self) -> None: ...
    def setSvgParameters(self, parameters: typing.Dict[typing.Optional[str], _core.QgsProperty]) -> None: ...
    def setSvgPath(self, name: typing.Optional[str]) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsRasterMarkerSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsAnimatedMarkerSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsRasterFillSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsRasterLineSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsLineburstSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsSVGFillSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def updateParamGui(self, resetValues: bool = ...) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsLinePatternFillSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsPointPatternFillSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsRandomMarkerFillSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsFontMarkerSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setCharacterFromText(self, text: typing.Optional[str]) -> None: ...
    def setCharacter(self, chr: str) -> None: ...
    def setAngle(self, angle: float) -> None: ...
    def setSize(self, size: float) -> None: ...
    def setColorStroke(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setFontFamily(self, font: QtGui.QFont) -> None: ...
    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsCentroidFillSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsGeometryGeneratorSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsSymbolLevelsWidget(QgsPanelWidget):

    @typing.overload
    def __init__(self, renderer: typing.Optional[_core.QgsFeatureRenderer], usingSymbolLevels: bool, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    @typing.overload
    def __init__(self, symbols: typing.Iterable[_core.QgsLegendSymbolItem], usingSymbolLevels: bool, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def apply(self) -> None: ...
    def setForceOrderingEnabled(self, enabled: bool) -> None: ...
    def symbolLevels(self) -> typing.List[_core.QgsLegendSymbolItem]: ...
    def usingLevels(self) -> bool: ...


class QgsSymbolLevelsDialog(QtWidgets.QDialog):

    def __init__(self, renderer: typing.Optional[_core.QgsFeatureRenderer], usingSymbolLevels: bool, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolLevels(self) -> typing.List[_core.QgsLegendSymbolItem]: ...
    def usingLevels(self) -> bool: ...
    def setForceOrderingEnabled(self, enabled: bool) -> None: ...


class QgsSymbolSelectorWidget(QgsPanelWidget):

    def __init__(self, symbol: typing.Optional[_core.QgsSymbol], style: typing.Optional[_core.QgsStyle], vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    symbolModified: typing.ClassVar[QtCore.pyqtSignal]
    def changeLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    def symbolChanged(self) -> None: ...
    def updatePreview(self) -> None: ...
    def updateLayerPreview(self) -> None: ...
    def layerChanged(self) -> None: ...
    def duplicateLayer(self) -> None: ...
    def lockLayer(self) -> None: ...
    def removeLayer(self) -> None: ...
    def addLayer(self) -> None: ...
    def moveLayerUp(self) -> None: ...
    def moveLayerDown(self) -> None: ...
    def symbol(self) -> typing.Optional[_core.QgsSymbol]: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def advancedMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...


class QgsSymbolSelectorDialog(QtWidgets.QDialog):

    def __init__(self, symbol: typing.Optional[_core.QgsSymbol], style: typing.Optional[_core.QgsStyle], vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ..., embedded: bool = ...) -> None: ...

    symbolModified: typing.ClassVar[QtCore.pyqtSignal]
    def keyPressEvent(self, e: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def changeLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    def symbolChanged(self) -> None: ...
    def updatePreview(self) -> None: ...
    def updateLayerPreview(self) -> None: ...
    def layerChanged(self) -> None: ...
    def duplicateLayer(self) -> None: ...
    def lockLayer(self) -> None: ...
    def removeLayer(self) -> None: ...
    def addLayer(self) -> None: ...
    def moveLayerUp(self) -> None: ...
    def moveLayerDown(self) -> None: ...
    def buttonBox(self) -> typing.Optional[QtWidgets.QDialogButtonBox]: ...
    def symbol(self) -> typing.Optional[_core.QgsSymbol]: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def advancedMenu(self) -> typing.Optional[QtWidgets.QMenu]: ...


class QgsSymbolsListWidget(QtWidgets.QWidget):

    def __init__(self, symbol: typing.Optional[_core.QgsSymbol], style: typing.Optional[_core.QgsStyle], menu: typing.Optional[QtWidgets.QMenu], parent: typing.Optional[QtWidgets.QWidget], layer: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def updateDataDefinedLineWidth(self) -> None: ...
    def updateDataDefinedMarkerAngle(self) -> None: ...
    def updateDataDefinedMarkerSize(self) -> None: ...
    def clipFeaturesToggled(self, checked: bool) -> None: ...
    def setLineWidth(self, width: float) -> None: ...
    def setMarkerSize(self, size: float) -> None: ...
    def setMarkerAngle(self, angle: float) -> None: ...
    def setSymbolColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def layer(self) -> typing.Optional[_core.QgsVectorLayer]: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...


class QgsSymbolWidgetContext(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, other: 'QgsSymbolWidgetContext') -> None: ...

    def setSymbolType(self, type: _core.Qgis.SymbolType) -> None: ...
    def symbolType(self) -> _core.Qgis.SymbolType: ...
    def globalProjectAtlasMapLayerScopes(self, layer: typing.Optional[_core.QgsMapLayer]) -> typing.List[_core.QgsExpressionContextScope]: ...
    def additionalExpressionContextScopes(self) -> typing.List[_core.QgsExpressionContextScope]: ...
    def setAdditionalExpressionContextScopes(self, scopes: typing.Iterable[_core.QgsExpressionContextScope]) -> None: ...
    def expressionContext(self) -> typing.Optional[_core.QgsExpressionContext]: ...
    def setExpressionContext(self, context: typing.Optional[_core.QgsExpressionContext]) -> None: ...
    def messageBar(self) -> typing.Optional[QgsMessageBar]: ...
    def setMessageBar(self, bar: typing.Optional[QgsMessageBar]) -> None: ...
    def mapCanvas(self) -> typing.Optional[QgsMapCanvas]: ...
    def setMapCanvas(self, canvas: typing.Optional[QgsMapCanvas]) -> None: ...


class QgsVectorFieldSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: typing.Optional[_core.QgsVectorLayer], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolLayer(self) -> typing.Optional[_core.QgsSymbolLayer]: ...
    def setSymbolLayer(self, layer: typing.Optional[_core.QgsSymbolLayer]) -> None: ...
    @staticmethod
    def create(vl: typing.Optional[_core.QgsVectorLayer]) -> typing.Optional[QgsSymbolLayerWidget]: ...


class QgsSensorAbstractGuiMetadata(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self, type: typing.Optional[str], visibleName: typing.Optional[str]) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsSensorAbstractGuiMetadata') -> None: ...

    def createSensor(self, parent: typing.Optional[QtCore.QObject]) -> typing.Optional[_core.QgsAbstractSensor]: ...
    def createSensorWidget(self, sensor: typing.Optional[_core.QgsAbstractSensor]) -> typing.Optional['QgsAbstractSensorWidget']: ...
    def creationIcon(self) -> QtGui.QIcon: ...
    def visibleName(self) -> str: ...
    def type(self) -> str: ...


class QgsSensorGuiRegistry(QtCore.QObject):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    sensorAdded: typing.ClassVar[QtCore.pyqtSignal]
    def sensorTypes(self) -> typing.Dict[str, str]: ...
    def createSensorWidget(self, sensor: typing.Optional[_core.QgsAbstractSensor]) -> typing.Optional['QgsAbstractSensorWidget']: ...
    def createSensor(self, type: typing.Optional[str], parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[_core.QgsAbstractSensor]: ...
    def addSensorGuiMetadata(self, metadata: typing.Optional[QgsSensorAbstractGuiMetadata]) -> bool: ...
    def sensorMetadata(self, type: typing.Optional[str]) -> typing.Optional[QgsSensorAbstractGuiMetadata]: ...
    def populate(self) -> bool: ...


class QgsAbstractSensorWidget(QtWidgets.QWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    changed: typing.ClassVar[QtCore.pyqtSignal]
    def setSensor(self, sensor: typing.Optional[_core.QgsAbstractSensor]) -> bool: ...
    def updateSensor(self, sensor: typing.Optional[_core.QgsAbstractSensor]) -> bool: ...
    def createSensor(self) -> typing.Optional[_core.QgsAbstractSensor]: ...


class QgsSettingsEditorWidgetWrapper(QtCore.QObject):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def configureEditorPrivate(self, editor: typing.Optional[QtWidgets.QWidget], setting: typing.Optional[_core.QgsSettingsEntryBase]) -> bool: ...
    def createEditorPrivate(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QtWidgets.QWidget]: ...
    def setWidgetFromVariant(self, value: typing.Any) -> None: ...
    def variantValueFromWidget(self) -> typing.Any: ...
    def setSettingFromWidget(self) -> bool: ...
    def setWidgetFromSetting(self) -> bool: ...
    def configureEditor(self, editor: typing.Optional[QtWidgets.QWidget], setting: typing.Optional[_core.QgsSettingsEntryBase], dynamicKeyPartList: typing.Iterable[typing.Optional[str]] = ...) -> bool: ...
    def createEditor(self, setting: typing.Optional[_core.QgsSettingsEntryBase], dynamicKeyPartList: typing.Iterable[typing.Optional[str]] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QtWidgets.QWidget]: ...
    def createWrapper(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional['QgsSettingsEditorWidgetWrapper']: ...
    def id(self) -> str: ...
    @staticmethod
    def fromWidget(widget: typing.Optional[QtWidgets.QWidget]) -> typing.Optional['QgsSettingsEditorWidgetWrapper']: ...


class QgsSettingsEditorWidgetWrapperTemplateQgsSettingsEntryStringQLineEditQStringBase(QgsSettingsEditorWidgetWrapper):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def configureEditorPrivateImplementation(self) -> None: ...
    def configureEditorPrivate(self, editor: typing.Optional[QtWidgets.QWidget], setting: typing.Optional[_core.QgsSettingsEntryBase]) -> bool: ...
    def createEditorPrivate(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QtWidgets.QWidget]: ...
    def createWrapper(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QgsSettingsEditorWidgetWrapper]: ...
    def setting(self) -> typing.Optional[_core.QgsSettingsEntryString]: ...
    def editor(self) -> typing.Optional[QtWidgets.QLineEdit]: ...
    def valueFromWidget(self) -> str: ...
    def variantValueFromWidget(self) -> typing.Any: ...
    def setWidgetValue(self, value: typing.Optional[str]) -> bool: ...
    def setWidgetFromVariant(self, value: typing.Any) -> None: ...
    def setSettingFromWidget(self) -> bool: ...
    def setWidgetFromSetting(self) -> bool: ...
    def id(self) -> str: ...


class QgsSettingsStringEditorWidgetWrapper(QgsSettingsEditorWidgetWrapperTemplateQgsSettingsEntryStringQLineEditQStringBase):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def setWidgetValue(self, value: typing.Optional[str]) -> bool: ...
    def valueFromWidget(self) -> str: ...
    def setSettingFromWidget(self) -> bool: ...
    def id(self) -> str: ...
    def createWrapper(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QgsSettingsEditorWidgetWrapper]: ...


class QgsSettingsEditorWidgetWrapperTemplateQgsSettingsEntryBoolQCheckBoxboolBase(QgsSettingsEditorWidgetWrapper):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def configureEditorPrivateImplementation(self) -> None: ...
    def configureEditorPrivate(self, editor: typing.Optional[QtWidgets.QWidget], setting: typing.Optional[_core.QgsSettingsEntryBase]) -> bool: ...
    def createEditorPrivate(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QtWidgets.QWidget]: ...
    def createWrapper(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QgsSettingsEditorWidgetWrapper]: ...
    def setting(self) -> typing.Optional[_core.QgsSettingsEntryBool]: ...
    def editor(self) -> typing.Optional[QtWidgets.QCheckBox]: ...
    def valueFromWidget(self) -> bool: ...
    def variantValueFromWidget(self) -> typing.Any: ...
    def setWidgetValue(self, value: bool) -> bool: ...
    def setWidgetFromVariant(self, value: typing.Any) -> None: ...
    def setSettingFromWidget(self) -> bool: ...
    def setWidgetFromSetting(self) -> bool: ...
    def id(self) -> str: ...


class QgsSettingsBoolEditorWidgetWrapper(QgsSettingsEditorWidgetWrapperTemplateQgsSettingsEntryBoolQCheckBoxboolBase):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def setWidgetValue(self, value: bool) -> bool: ...
    def valueFromWidget(self) -> bool: ...
    def setSettingFromWidget(self) -> bool: ...
    def id(self) -> str: ...
    def createWrapper(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QgsSettingsEditorWidgetWrapper]: ...


class QgsSettingsEditorWidgetWrapperTemplateQgsSettingsEntryIntegerQSpinBoxintBase(QgsSettingsEditorWidgetWrapper):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def configureEditorPrivateImplementation(self) -> None: ...
    def configureEditorPrivate(self, editor: typing.Optional[QtWidgets.QWidget], setting: typing.Optional[_core.QgsSettingsEntryBase]) -> bool: ...
    def createEditorPrivate(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QtWidgets.QWidget]: ...
    def createWrapper(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QgsSettingsEditorWidgetWrapper]: ...
    def setting(self) -> typing.Optional[_core.QgsSettingsEntryInteger]: ...
    def editor(self) -> typing.Optional[QtWidgets.QSpinBox]: ...
    def valueFromWidget(self) -> int: ...
    def variantValueFromWidget(self) -> typing.Any: ...
    def setWidgetValue(self, value: int) -> bool: ...
    def setWidgetFromVariant(self, value: typing.Any) -> None: ...
    def setSettingFromWidget(self) -> bool: ...
    def setWidgetFromSetting(self) -> bool: ...
    def id(self) -> str: ...


class QgsSettingsIntegerEditorWidgetWrapper(QgsSettingsEditorWidgetWrapperTemplateQgsSettingsEntryIntegerQSpinBoxintBase):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def setWidgetValue(self, value: int) -> bool: ...
    def valueFromWidget(self) -> int: ...
    def setSettingFromWidget(self) -> bool: ...
    def id(self) -> str: ...
    def createWrapper(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QgsSettingsEditorWidgetWrapper]: ...


class QgsSettingsEditorWidgetWrapperTemplateQgsSettingsEntryDoubleQDoubleSpinBoxdoubleBase(QgsSettingsEditorWidgetWrapper):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def configureEditorPrivateImplementation(self) -> None: ...
    def configureEditorPrivate(self, editor: typing.Optional[QtWidgets.QWidget], setting: typing.Optional[_core.QgsSettingsEntryBase]) -> bool: ...
    def createEditorPrivate(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QtWidgets.QWidget]: ...
    def createWrapper(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QgsSettingsEditorWidgetWrapper]: ...
    def setting(self) -> typing.Optional[_core.QgsSettingsEntryDouble]: ...
    def editor(self) -> typing.Optional[QtWidgets.QDoubleSpinBox]: ...
    def valueFromWidget(self) -> float: ...
    def variantValueFromWidget(self) -> typing.Any: ...
    def setWidgetValue(self, value: float) -> bool: ...
    def setWidgetFromVariant(self, value: typing.Any) -> None: ...
    def setSettingFromWidget(self) -> bool: ...
    def setWidgetFromSetting(self) -> bool: ...
    def id(self) -> str: ...


class QgsSettingsDoubleEditorWidgetWrapper(QgsSettingsEditorWidgetWrapperTemplateQgsSettingsEntryDoubleQDoubleSpinBoxdoubleBase):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def setWidgetValue(self, value: float) -> bool: ...
    def valueFromWidget(self) -> float: ...
    def setSettingFromWidget(self) -> bool: ...
    def id(self) -> str: ...
    def createWrapper(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QgsSettingsEditorWidgetWrapper]: ...


class QgsSettingsEditorWidgetWrapperTemplateQgsSettingsEntryColorQgsColorButtonQColorBase(QgsSettingsEditorWidgetWrapper):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def configureEditorPrivateImplementation(self) -> None: ...
    def configureEditorPrivate(self, editor: typing.Optional[QtWidgets.QWidget], setting: typing.Optional[_core.QgsSettingsEntryBase]) -> bool: ...
    def createEditorPrivate(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QtWidgets.QWidget]: ...
    def createWrapper(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QgsSettingsEditorWidgetWrapper]: ...
    def setting(self) -> typing.Optional[_core.QgsSettingsEntryColor]: ...
    def editor(self) -> typing.Optional[QgsColorButton]: ...
    def valueFromWidget(self) -> QtGui.QColor: ...
    def variantValueFromWidget(self) -> typing.Any: ...
    def setWidgetValue(self, value: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> bool: ...
    def setWidgetFromVariant(self, value: typing.Any) -> None: ...
    def setSettingFromWidget(self) -> bool: ...
    def setWidgetFromSetting(self) -> bool: ...
    def id(self) -> str: ...


class QgsSettingsColorEditorWidgetWrapper(QgsSettingsEditorWidgetWrapperTemplateQgsSettingsEntryColorQgsColorButtonQColorBase):

    def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def configureEditorPrivateImplementation(self) -> None: ...
    def setWidgetValue(self, value: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> bool: ...
    def valueFromWidget(self) -> QtGui.QColor: ...
    def setSettingFromWidget(self) -> bool: ...
    def id(self) -> str: ...
    def createWrapper(self, parent: typing.Optional[QtCore.QObject] = ...) -> typing.Optional[QgsSettingsEditorWidgetWrapper]: ...


class QgsSettingsEditorWidgetRegistry(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsSettingsEditorWidgetRegistry') -> None: ...

    def createEditor(self, setting: typing.Optional[_core.QgsSettingsEntryBase], dynamicKeyPartList: typing.Iterable[typing.Optional[str]], parent: typing.Optional[QtWidgets.QWidget] = ...) -> typing.Optional[QtWidgets.QWidget]: ...
    def createWrapper(self, id: typing.Optional[str], parent: typing.Optional[QtCore.QObject]) -> typing.Optional[QgsSettingsEditorWidgetWrapper]: ...
    def addWrapper(self, wrapper: typing.Optional[QgsSettingsEditorWidgetWrapper]) -> bool: ...


class QgsSettingsRegistryGui(_core.QgsSettingsRegistry):

    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsSettingsRegistryGui') -> None: ...


class QgsSettingsTreeModel(QtCore.QAbstractItemModel):

    class Column(int):
        Name = ... # type: QgsSettingsTreeModel.Column
        Value = ... # type: QgsSettingsTreeModel.Column
        Description = ... # type: QgsSettingsTreeModel.Column

    def __init__(self, rootNode: typing.Optional[_core.QgsSettingsTreeNode] = ..., parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def setData(self, index: QtCore.QModelIndex, value: typing.Any, role: int) -> bool: ...
    def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlags: ...
    def headerData(self, section: int, orientation: QtCore.Qt.Orientation, role: int) -> typing.Any: ...
    def data(self, index: QtCore.QModelIndex, role: int) -> typing.Any: ...
    def columnCount(self, parent: QtCore.QModelIndex) -> int: ...
    def rowCount(self, parent: QtCore.QModelIndex) -> int: ...
    def parent(self, child: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def index(self, row: int, column: int, parent: QtCore.QModelIndex) -> QtCore.QModelIndex: ...
    def applyChanges(self) -> None: ...


class QgsSettingsTreeProxyModel(QtCore.QSortFilterProxyModel):

    def __init__(self, rootNode: typing.Optional[_core.QgsSettingsTreeNode] = ..., parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def filterAcceptsRow(self, source_row: int, source_parent: QtCore.QModelIndex) -> bool: ...
    def setFilterText(self, filterText: typing.Optional[str] = ...) -> None: ...
    def applyChanges(self) -> None: ...


class QgsSettingsTreeWidget(QtWidgets.QWidget, QgsOptionsDialogHighlightWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def reset(self) -> None: ...
    def highlightText(self, text: typing.Optional[str]) -> bool: ...
    def searchText(self, text: typing.Optional[str]) -> bool: ...
    def applyChanges(self) -> None: ...


class QgsTableEditorDialog(QtWidgets.QMainWindow):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def closeEvent(self, a0: typing.Optional[QtGui.QCloseEvent]) -> None: ...
    includeHeaderChanged: typing.ClassVar[QtCore.pyqtSignal]
    tableChanged: typing.ClassVar[QtCore.pyqtSignal]
    def registerExpressionContextGenerator(self, generator: typing.Optional[_core.QgsExpressionContextGenerator]) -> None: ...
    def setTableHeaders(self, headers: typing.Iterable[typing.Any]) -> None: ...
    def tableHeaders(self) -> typing.List[typing.Any]: ...
    def setIncludeTableHeader(self, included: bool) -> None: ...
    def includeTableHeader(self) -> bool: ...
    def setTableColumnWidth(self, column: int, width: float) -> None: ...
    def setTableRowHeight(self, row: int, height: float) -> None: ...
    def tableColumnWidth(self, column: int) -> float: ...
    def tableRowHeight(self, row: int) -> float: ...
    def tableContents(self) -> typing.Any: ...
    def setTableContentsFromClipboard(self) -> bool: ...
    def setTableContents(self, contents: typing.Any) -> None: ...


class QgsTableEditorWidget(QtWidgets.QTableWidget):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    activeCellChanged: typing.ClassVar[QtCore.pyqtSignal]
    tableChanged: typing.ClassVar[QtCore.pyqtSignal]
    def keyPressEvent(self, event: typing.Optional[QtGui.QKeyEvent]) -> None: ...
    def setTableHeaders(self, headers: typing.Iterable[typing.Any]) -> None: ...
    def setIncludeTableHeader(self, included: bool) -> None: ...
    def setSelectionColumnWidth(self, height: float) -> None: ...
    def setSelectionRowHeight(self, height: float) -> None: ...
    def setSelectionTextFormat(self, format: _core.QgsTextFormat) -> None: ...
    def setSelectionCellProperty(self, property: _core.QgsProperty) -> None: ...
    def setSelectionVerticalAlignment(self, alignment: typing.Union[QtCore.Qt.Alignment, QtCore.Qt.AlignmentFlag]) -> None: ...
    def setSelectionHorizontalAlignment(self, alignment: typing.Union[QtCore.Qt.Alignment, QtCore.Qt.AlignmentFlag]) -> None: ...
    def setSelectionBackgroundColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def setSelectionForegroundColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def clearSelectedCells(self) -> None: ...
    def expandColumnSelection(self) -> None: ...
    def expandRowSelection(self) -> None: ...
    def deleteColumns(self) -> None: ...
    def deleteRows(self) -> None: ...
    def insertColumnsAfter(self) -> None: ...
    def insertColumnsBefore(self) -> None: ...
    def insertRowsAbove(self) -> None: ...
    def insertRowsBelow(self) -> None: ...
    def isHeaderCellSelected(self) -> bool: ...
    def tableHeaders(self) -> typing.List[typing.Any]: ...
    def columnsAssociatedWithSelection(self) -> typing.List[int]: ...
    def rowsAssociatedWithSelection(self) -> typing.List[int]: ...
    def setTableColumnWidth(self, column: int, width: float) -> None: ...
    def setTableRowHeight(self, row: int, height: float) -> None: ...
    def tableColumnWidth(self, column: int) -> float: ...
    def tableRowHeight(self, row: int) -> float: ...
    def selectionColumnWidth(self) -> float: ...
    def selectionRowHeight(self) -> float: ...
    def selectionTextFormat(self) -> _core.QgsTextFormat: ...
    def selectionCellProperty(self) -> _core.QgsProperty: ...
    def selectionVerticalAlignment(self) -> QtCore.Qt.Alignment: ...
    def selectionHorizontalAlignment(self) -> QtCore.Qt.Alignment: ...
    def selectionBackgroundColor(self) -> QtGui.QColor: ...
    def selectionForegroundColor(self) -> QtGui.QColor: ...
    def hasMixedSelectionNumericFormat(self) -> bool: ...
    def selectionNumericFormat(self) -> typing.Optional[_core.QgsNumericFormat]: ...
    def setSelectionNumericFormat(self, format: typing.Optional[_core.QgsNumericFormat]) -> None: ...
    def tableContents(self) -> typing.Any: ...
    def setTableContents(self, contents: typing.Any) -> None: ...


class QgsTiledSceneRendererPropertiesWidget(QgsMapLayerConfigWidget):

    def __init__(self, layer: typing.Optional[_core.QgsTiledSceneLayer], style: typing.Optional[_core.QgsStyle], parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def apply(self) -> None: ...
    def setDockMode(self, dockMode: bool) -> None: ...
    def syncToLayer(self, layer: typing.Optional[_core.QgsMapLayer]) -> None: ...
    def setContext(self, context: QgsSymbolWidgetContext) -> None: ...


class QgsTiledSceneRendererWidget(QgsPanelWidget):

    def __init__(self, layer: typing.Optional[_core.QgsTiledSceneLayer], style: typing.Optional[_core.QgsStyle]) -> None: ...

    def layer(self) -> typing.Optional[_core.QgsTiledSceneLayer]: ...
    def context(self) -> QgsSymbolWidgetContext: ...
    def setContext(self, context: QgsSymbolWidgetContext) -> None: ...
    def renderer(self) -> typing.Optional[_core.QgsTiledSceneRenderer]: ...


class QgsVectorTileLayerProperties(QgsLayerPropertiesDialog):

    def __init__(self, lyr: typing.Optional[_core.QgsVectorTileLayer], canvas: typing.Optional[QgsMapCanvas], messageBar: typing.Optional[QgsMessageBar], parent: typing.Optional[QtWidgets.QWidget] = ..., a4: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def saveStyleAs(self) -> None: ...
    def loadStyle(self) -> None: ...
    def saveDefaultStyle(self) -> None: ...


class QgsQmlWidgetWrapper(QgsWidgetWrapper):

    def __init__(self, layer: typing.Optional[_core.QgsVectorLayer], editor: typing.Optional[QtWidgets.QWidget], parent: typing.Optional[QtWidgets.QWidget]) -> None: ...

    def setFeature(self, feature: _core.QgsFeature) -> None: ...
    def setQmlCode(self, qmlCode: typing.Optional[str]) -> None: ...
    def reinitWidget(self) -> None: ...
    def initWidget(self, editor: typing.Optional[QtWidgets.QWidget]) -> None: ...
    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget]) -> typing.Optional[QtWidgets.QWidget]: ...
    def valid(self) -> bool: ...
