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


import typing

import PyQt5.sip

from PyQt5 import Qsci
from PyQt5 import QtXml
from PyQt5 import QtGui
from PyQt5 import QtCore
from qgis import _core

# 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[..., None], 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: ...

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


class Qgs3DSymbolWidget(QtWidgets.QWidget):

    def __init__(self, parent: QtWidgets.QWidget) -> None: ...

    def changed(self) -> None: ...
    def symbolType(self) -> str: ...
    def symbol(self) -> _core.QgsAbstract3DSymbol: ...
    def setSymbol(self, symbol: _core.QgsAbstract3DSymbol, layer: _core.QgsVectorLayer) -> None: ...


class Qgs3DSymbolDialog(QtWidgets.QDialog):

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

    def buttonBox(self) -> QtWidgets.QDialogButtonBox: ...
    def symbol(self) -> _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) -> QtWidgets.QPushButton: ...
    def setupButtons(self, buttonBox: QtWidgets.QDialogButtonBox) -> None: ...
    def browserModel(self) -> _core.QgsBrowserModel: ...
    def widgetMode(self) -> _core.QgsProviderRegistry.WidgetMode: ...
    def pushMessage(self, title: str, message: str, level: _core.Qgis.MessageLevel = ...) -> None: ...
    def enableButtons(self, enable: bool) -> None: ...
    def progressMessage(self, message: str) -> None: ...
    def progress(self, a0: int, a1: int) -> None: ...
    def replaceVectorLayer(self, oldId: str, source: str, name: str, provider: str) -> None: ...
    def addVectorLayers(self, layerList: typing.Iterable[str], encoding: str, dataSourceType: str) -> None: ...
    def addPointCloudLayer(self, url: str, baseName: str, providerKey: str) -> None: ...
    def addVectorTileLayer(self, url: str, baseName: str) -> None: ...
    def addMeshLayer(self, url: str, baseName: str, providerKey: str) -> None: ...
    def addVectorLayer(self, uri: str, layerName: str, providerKey: str = ...) -> None: ...
    def addRasterLayers(self, layersList: typing.Iterable[str]) -> None: ...
    def addRasterLayer(self, rasterLayerPath: str, baseName: str, providerKey: str) -> None: ...
    def addDatabaseLayers(self, paths: typing.Iterable[str], providerKey: str) -> None: ...
    def connectionsChanged(self) -> None: ...
    def reset(self) -> None: ...
    def addButtonClicked(self) -> None: ...
    def refresh(self) -> None: ...
    def setMapCanvas(self, mapCanvas: 'QgsMapCanvas') -> None: ...
    def mapCanvas(self) -> 'QgsMapCanvas': ...
    def setBrowserModel(self, model: _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: 'QgsMapTool', action: QtWidgets.QAction) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsAbstractMapToolHandler') -> None: ...

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


class QgsActionMenu(QtWidgets.QMenu):

    class ActionType(int):
        Invalid = ... # type: QgsActionMenu.ActionType
        MapLayerAction = ... # type: QgsActionMenu.ActionType
        AttributeAction = ... # type: QgsActionMenu.ActionType

    class ActionData(PyQt5.sip.wrapper):

        actionData = ... # type: typing.Any
        actionType = ... # type: 'QgsActionMenu.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: _core.QgsMapLayer) -> None: ...
        @typing.overload
        def __init__(self, action: 'QgsMapLayerAction', featureId: int, mapLayer: _core.QgsMapLayer) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsActionMenu.ActionData') -> None: ...

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

    def reinit(self) -> None: ...
    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: ...


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: str, parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def openedStateChanged(self, wasOpened: bool) -> None: ...
    def opened(self) -> None: ...
    def closedStateChanged(self, wasClosed: bool) -> None: ...
    def closed(self) -> None: ...
    def showEvent(self, event: QtGui.QShowEvent) -> None: ...
    def closeEvent(self, a0: QtGui.QCloseEvent) -> None: ...
    def toggleUserVisible(self) -> None: ...
    def setUserVisible(self, visible: bool) -> None: ...
    def toggleVisibilityAction(self) -> QtWidgets.QAction: ...
    def setToggleVisibilityAction(self, action: 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: ...
        @typing.overload
        def __init__(self, a0: 'QgsAdvancedDigitizingDockWidget.CadCapacities') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        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: QtWidgets.QLineEdit, lockerButton: QtWidgets.QToolButton, relativeButton: typing.Optional[QtWidgets.QToolButton] = ..., repeatingLockButton: typing.Optional[QtWidgets.QToolButton] = ...) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsAdvancedDigitizingDockWidget.CadConstraint') -> None: ...

        def setPrecision(self, precision: int) -> None: ...
        def precision(self) -> int: ...
        def toggleRelative(self) -> None: ...
        def toggleLocked(self) -> None: ...
        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) -> 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: 'QgsMapCanvas', parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def focusOnDistanceRequested(self) -> None: ...
    def focusOnAngleRequested(self) -> None: ...
    def focusOnMRequested(self) -> None: ...
    def focusOnZRequested(self) -> None: ...
    def focusOnYRequested(self) -> None: ...
    def focusOnXRequested(self) -> None: ...
    def enabledChangedDistance(self, enabled: bool) -> None: ...
    def enabledChangedAngle(self, enabled: bool) -> None: ...
    def enabledChangedM(self, enabled: bool) -> None: ...
    def enabledChangedZ(self, enabled: bool) -> None: ...
    def enabledChangedY(self, enabled: bool) -> None: ...
    def enabledChangedX(self, enabled: bool) -> None: ...
    def softLockXyChanged(self, locked: bool) -> None: ...
    def softLockLineExtensionChanged(self, locked: bool) -> None: ...
    def relativeAngleChanged(self, relative: bool) -> None: ...
    def relativeMChanged(self, relative: bool) -> None: ...
    def relativeZChanged(self, relative: bool) -> None: ...
    def relativeYChanged(self, relative: bool) -> None: ...
    def relativeXChanged(self, relative: bool) -> None: ...
    def lockDistanceChanged(self, locked: bool) -> None: ...
    def lockAngleChanged(self, locked: bool) -> None: ...
    def lockMChanged(self, locked: bool) -> None: ...
    def lockZChanged(self, locked: bool) -> None: ...
    def lockYChanged(self, locked: bool) -> None: ...
    def lockXChanged(self, locked: bool) -> None: ...
    def valueDistanceChanged(self, value: str) -> None: ...
    def valueAngleChanged(self, value: str) -> None: ...
    def valueMChanged(self, value: str) -> None: ...
    def valueZChanged(self, value: str) -> None: ...
    def valueYChanged(self, value: str) -> None: ...
    def valueXChanged(self, value: str) -> None: ...
    def cadEnabledChanged(self, enabled: bool) -> None: ...
    def pointChanged(self, point: _core.QgsPointXY) -> None: ...
    def pointChangedV2(self, point: _core.QgsPoint) -> None: ...
    def popWarning(self) -> None: ...
    def pushWarning(self, message: str) -> None: ...
    def capacities(self) -> 'QgsAdvancedDigitizingDockWidget.CadCapacities': ...
    def getLineM(self) -> float: ...
    def getLineZ(self) -> float: ...
    def setDistance(self, value: str, mode: 'QgsAdvancedDigitizingDockWidget.WidgetSetMode') -> None: ...
    def setAngle(self, value: str, mode: 'QgsAdvancedDigitizingDockWidget.WidgetSetMode') -> None: ...
    def setM(self, value: str, mode: 'QgsAdvancedDigitizingDockWidget.WidgetSetMode') -> None: ...
    def setZ(self, value: str, mode: 'QgsAdvancedDigitizingDockWidget.WidgetSetMode') -> None: ...
    def setY(self, value: str, mode: 'QgsAdvancedDigitizingDockWidget.WidgetSetMode') -> None: ...
    def setX(self, value: str, mode: 'QgsAdvancedDigitizingDockWidget.WidgetSetMode') -> None: ...
    def updateCadPaintItem(self) -> None: ...
    def disable(self) -> None: ...
    def enable(self) -> None: ...
    def enableAction(self) -> QtWidgets.QAction: ...
    def snappedSegment(self) -> typing.List[_core.QgsPointXY]: ...
    def snappedToVertex(self) -> bool: ...
    def pointsCount(self) -> int: ...
    def penultimatePoint(self) -> typing.Tuple[_core.QgsPointXY, bool]: ...
    def penultimatePointV2(self) -> typing.Tuple[_core.QgsPoint, bool]: ...
    def previousPoint(self) -> typing.Tuple[_core.QgsPointXY, bool]: ...
    def previousPointV2(self) -> typing.Tuple[_core.QgsPoint, bool]: ...
    def currentPoint(self) -> typing.Tuple[_core.QgsPointXY, bool]: ...
    def currentPointLayerCoordinates(self, layer: _core.QgsMapLayer) -> _core.QgsPoint: ...
    def currentPointV2(self) -> typing.Tuple[_core.QgsPoint, bool]: ...
    def setPoints(self, points: typing.Iterable[_core.QgsPointXY]) -> 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) -> 'QgsAdvancedDigitizingDockWidget.CadConstraint': ...
    def lineExtensionSide(self) -> _core.Qgis.LineExtensionSide: ...
    def constraintLineExtension(self) -> 'QgsAdvancedDigitizingDockWidget.CadConstraint': ...
    def commonAngleConstraint(self) -> bool: ...
    def constraintM(self) -> 'QgsAdvancedDigitizingDockWidget.CadConstraint': ...
    def constraintZ(self) -> 'QgsAdvancedDigitizingDockWidget.CadConstraint': ...
    def constraintY(self) -> 'QgsAdvancedDigitizingDockWidget.CadConstraint': ...
    def constraintX(self) -> 'QgsAdvancedDigitizingDockWidget.CadConstraint': ...
    def constraintDistance(self) -> 'QgsAdvancedDigitizingDockWidget.CadConstraint': ...
    def constraintAngle(self) -> '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: QtGui.QKeyEvent) -> None: ...
    def clear(self) -> None: ...
    def releaseLocks(self, releaseRepeatingLocks: bool = ...) -> None: ...
    def alignToSegment(self, e: 'QgsMapMouseEvent', lockMode: 'QgsAdvancedDigitizingDockWidget.CadConstraint.LockMode' = ...) -> bool: ...
    def applyConstraints(self, e: 'QgsMapMouseEvent') -> bool: ...
    def canvasKeyPressEventFilter(self, e: QtGui.QKeyEvent) -> bool: ...


class QgsAdvancedDigitizingFloater(QtWidgets.QWidget):

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

    def setActive(self, active: bool) -> None: ...
    def active(self) -> bool: ...


class QgsAggregateToolButton(QtWidgets.QToolButton):

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

    def activeChanged(self) -> None: ...
    def aggregateChanged(self) -> None: ...
    def setAggregate(self, aggregate: 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: ...

    def changed(self) -> None: ...
    def customizeAlignmentDisplay(self, alignment: typing.Union[QtCore.Qt.Alignment, QtCore.Qt.AlignmentFlag], text: 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 QgsAttributeDialog(QtWidgets.QDialog):

    def __init__(self, vl: _core.QgsVectorLayer, thepFeature: _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 setExtraContextScope(self, extraScope: _core.QgsExpressionContextScope) -> None: ...
    def event(self, e: QtCore.QEvent) -> bool: ...
    def setEditCommandMessage(self, message: str) -> None: ...
    def setMode(self, mode: 'QgsAttributeEditorContext.Mode') -> None: ...
    def editable(self) -> bool: ...
    def feature(self) -> _core.QgsFeature: ...
    def attributeForm(self) -> 'QgsAttributeForm': ...
    def setHighlight(self, h: '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) -> 'QgsMessageBar': ...
    def setMainMessageBar(self, messageBar: '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) -> '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) -> _core.QgsVectorLayerTools: ...
    def setVectorLayerTools(self, vlTools: _core.QgsVectorLayerTools) -> None: ...
    def cadDockWidget(self) -> QgsAdvancedDigitizingDockWidget: ...
    def setCadDockWidget(self, cadDockWidget: QgsAdvancedDigitizingDockWidget) -> None: ...
    def mapCanvas(self) -> 'QgsMapCanvas': ...
    def setMapCanvas(self, mapCanvas: '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: _core.QgsVectorLayer, feature: _core.QgsFeature = ..., context: QgsAttributeEditorContext = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def needsGeometry(self) -> bool: ...
    def parentFormValueChanged(self, attribute: str, newValue: typing.Any) -> None: ...
    def refreshFeature(self) -> None: ...
    def resetSearch(self) -> None: ...
    def resetValues(self) -> None: ...
    def saveWithDetails(self) -> typing.Tuple[bool, str]: ...
    def save(self) -> bool: ...
    def setFeature(self, feature: _core.QgsFeature) -> None: ...
    def changeAttribute(self, field: str, value: typing.Any, hintText: str = ...) -> None: ...
    def openFilteredFeaturesAttributeTable(self, filter: str) -> None: ...
    def flashFeatures(self, filter: str) -> None: ...
    def zoomToFeatures(self, filter: str) -> None: ...
    def closed(self) -> None: ...
    def modeChanged(self, mode: QgsAttributeEditorContext.Mode) -> None: ...
    def filterExpressionSet(self, expression: str, type: 'QgsAttributeForm.FilterType') -> None: ...
    def featureSaved(self, feature: _core.QgsFeature) -> None: ...
    def widgetValueChanged(self, attribute: str, value: typing.Any, attributeChanged: bool) -> None: ...
    def attributeChanged(self, attribute: str, value: typing.Any) -> None: ...
    def setExtraContextScope(self, extraScope: _core.QgsExpressionContextScope) -> None: ...
    def aggregateFilter(self) -> str: ...
    def setMessageBar(self, messageBar: 'QgsMessageBar') -> None: ...
    def setMultiEditFeatureIds(self, fids: typing.Any) -> None: ...
    def eventFilter(self, object: QtCore.QObject, event: QtCore.QEvent) -> bool: ...
    def setEditCommandMessage(self, message: str) -> None: ...
    def setMode(self, mode: QgsAttributeEditorContext.Mode) -> None: ...
    def mode(self) -> QgsAttributeEditorContext.Mode: ...
    def editable(self) -> bool: ...
    def layer(self) -> _core.QgsVectorLayer: ...
    def addInterface(self, iface: 'QgsAttributeFormInterface') -> None: ...
    def disconnectButtonBox(self) -> None: ...
    def showButtonBox(self) -> None: ...
    def hideButtonBox(self) -> None: ...
    def displayWarning(self, message: 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: 'QgsWidgetWrapper', form: QgsAttributeForm) -> 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: 'QgsSearchWidgetWrapper') -> None: ...
    def setSearchWidgetWrapper(self, wrapper: 'QgsSearchWidgetWrapper') -> None: ...
    def form(self) -> QgsAttributeForm: ...
    def layer(self) -> _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: 'QgsEditorWidgetWrapper', widgetType: str, form: QgsAttributeForm) -> None: ...

    def valuesChanged(self, value: typing.Any, additionalFieldValues: typing.Iterable[typing.Any]) -> None: ...
    def valueChanged(self, value: typing.Any) -> None: ...
    def changesCommitted(self) -> None: ...
    def setIsMixed(self, mixed: bool) -> None: ...
    def editorWidget(self) -> 'QgsEditorWidgetWrapper': ...
    def setConstraintResultVisible(self, editable: bool) -> None: ...
    def setConstraintStatus(self, constraint: str, description: str, err: 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: QgsAttributeForm) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsAttributeFormInterface') -> None: ...

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


class QgsAttributeFormRelationEditorWidget(QgsAttributeFormWidget):

    def __init__(self, wrapper: 'QgsRelationWidgetWrapper', form: 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: _core.QgsVectorLayer) -> None: ...

    def insertNull(self) -> bool: ...
    def valueMap(self) -> typing.Dict[str, typing.Any]: ...
    def setVectorLayer(self, layer: _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: str, browserModel: 'QgsBrowserGuiModel', parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def connectionsChanged(self) -> None: ...
    def handleDropUriList(self, a0: typing.Iterable[_core.QgsMimeDataUtils.Uri]) -> None: ...
    def openFile(self, fileName: str, fileTypeHint: str = ...) -> None: ...
    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: 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[str]) -> None: ...
    def messageBar(self) -> 'QgsMessageBar': ...
    def setMessageBar(self, bar: 'QgsMessageBar') -> None: ...
    @typing.overload
    def addFavoriteDirectory(self, favDir: str, name: str = ...) -> None: ...
    @typing.overload
    def addFavoriteDirectory(self) -> None: ...
    def browserWidget(self) -> 'QgsBrowserWidget': ...


class QgsPanelWidget(QtWidgets.QWidget):

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

    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def acceptPanel(self) -> None: ...
    def openPanel(self, panel: 'QgsPanelWidget') -> None: ...
    def widgetChanged(self) -> None: ...
    def showPanel(self, panel: 'QgsPanelWidget') -> None: ...
    def panelAccepted(self, panel: 'QgsPanelWidget') -> None: ...
    def menuButtonMenu(self) -> QtWidgets.QMenu: ...
    def menuButtonTooltip(self) -> str: ...
    @staticmethod
    def findParentPanel(widget: QtWidgets.QWidget) -> '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: 'QgsPanelWidget') -> None: ...
    def connectChildPanels(self, panels: typing.Iterable['QgsPanelWidget']) -> None: ...
    def panelTitle(self) -> str: ...
    def setPanelTitle(self, panelTitle: str) -> None: ...


class QgsBrowserWidget(QgsPanelWidget):

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

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


class QgsBrowserGuiModel(_core.QgsBrowserModel):

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

    def setMessageBar(self, bar: 'QgsMessageBar') -> None: ...
    def setData(self, index: QtCore.QModelIndex, value: typing.Any, role: int = ...) -> bool: ...
    def dropMimeData(self, data: 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: QtGui.QKeyEvent) -> None: ...
    def expandPath(self, path: str) -> None: ...
    def setSelectedItem(self, item: _core.QgsDataItem) -> bool: ...
    def setSettingsSection(self, section: str) -> None: ...
    def hasExpandedDescendant(self, index: QtCore.QModelIndex) -> bool: ...
    def hideEvent(self, e: QtGui.QHideEvent) -> None: ...
    def showEvent(self, e: QtGui.QShowEvent) -> None: ...
    def browserModel(self) -> QgsBrowserGuiModel: ...
    def setBrowserModel(self, model: QgsBrowserGuiModel) -> None: ...
    def setModel(self, model: QtCore.QAbstractItemModel) -> None: ...


class QgsBusyIndicatorDialog(QtWidgets.QDialog):

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

    def setMessage(self, message: 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: str, initialSelection: str = ...) -> typing.Tuple[str, 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: QtGui.QResizeEvent) -> None: ...
    def setCheckedItems(self, items: typing.Iterable[str]) -> None: ...
    def checkedItemsChanged(self, items: typing.Iterable[str]) -> None: ...
    def eventFilter(self, object: QtCore.QObject, event: 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: str, state: QtCore.Qt.CheckState, userData: typing.Any = ...) -> None: ...
    def setDefaultText(self, text: str) -> None: ...
    def defaultText(self) -> str: ...
    def setSeparator(self, separator: str) -> None: ...
    def separator(self) -> str: ...


class QgsGroupBoxCollapseButton(QtWidgets.QToolButton):

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

    def mouseReleaseEvent(self, event: 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: str, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def clearModifiers(self) -> None: ...
    def titleRect(self) -> QtCore.QRect: ...
    def updateStyle(self) -> None: ...
    def changeEvent(self, event: QtCore.QEvent) -> None: ...
    def mouseReleaseEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def showEvent(self, event: QtGui.QShowEvent) -> None: ...
    def collapseExpandFixes(self) -> None: ...
    def init(self) -> None: ...
    def setStyleSheet(self, style: str) -> None: ...
    def toggleCollapsed(self) -> None: ...
    def checkClicked(self, ckd: bool) -> None: ...
    def checkToggled(self, ckd: bool) -> None: ...
    def collapsedStateChanged(self, collapsed: bool) -> None: ...
    def scrollOnExpand(self) -> bool: ...
    def setScrollOnExpand(self, scroll: bool) -> None: ...
    def setSyncGroup(self, grp: 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: str, parent: typing.Optional[QtWidgets.QWidget] = ..., settings: typing.Optional[_core.QgsSettings] = ...) -> None: ...

    def saveKey(self) -> str: ...
    def showEvent(self, event: QtGui.QShowEvent) -> None: ...
    def init(self) -> None: ...
    def saveState(self) -> None: ...
    def loadState(self) -> None: ...
    def settingGroup(self) -> str: ...
    def setSettingGroup(self, group: 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: _core.QgsSettings) -> None: ...


class QgsColorBrewerColorRampWidget(QgsPanelWidget):

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

    def changed(self) -> None: ...
    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: ...

    def changed(self) -> None: ...
    def buttonBox(self) -> 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: str = ..., registry: typing.Optional[_core.QgsColorSchemeRegistry] = ...) -> None: ...

    def wheelEvent(self, event: QtGui.QWheelEvent) -> None: ...
    def dropEvent(self, e: QtGui.QDropEvent) -> None: ...
    def dragLeaveEvent(self, e: QtGui.QDragLeaveEvent) -> None: ...
    def dragEnterEvent(self, e: QtGui.QDragEnterEvent) -> None: ...
    def keyPressEvent(self, e: QtGui.QKeyEvent) -> None: ...
    def mouseReleaseEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, e: QtGui.QMouseEvent) -> None: ...
    @staticmethod
    def transparentBackground() -> QtGui.QPixmap: ...
    def resizeEvent(self, event: QtGui.QResizeEvent) -> None: ...
    def showEvent(self, e: QtGui.QShowEvent) -> None: ...
    def changeEvent(self, e: QtCore.QEvent) -> None: ...
    def event(self, e: QtCore.QEvent) -> bool: ...
    def unlinked(self) -> None: ...
    def cleared(self) -> None: ...
    def colorClicked(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def colorChanged(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    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: str) -> None: ...
    def colorSchemeRegistry(self) -> _core.QgsColorSchemeRegistry: ...
    def setColorSchemeRegistry(self, registry: _core.QgsColorSchemeRegistry) -> None: ...
    def context(self) -> str: ...
    def setContext(self, context: str) -> None: ...
    def noColorString(self) -> str: ...
    def isNull(self) -> bool: ...
    def showNull(self) -> bool: ...
    def setShowNull(self, showNull: bool, nullString: str = ...) -> None: ...
    def setNoColorString(self, noColorString: 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: 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: QtGui.QCloseEvent) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def currentColorChanged(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    @staticmethod
    def getColor(initialColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], parent: QtWidgets.QWidget, title: str = ..., allowOpacity: bool = ...) -> QtGui.QColor: ...
    def setAllowOpacity(self, allowOpacity: bool) -> None: ...
    def setTitle(self, title: str) -> None: ...
    def color(self) -> QtGui.QColor: ...


class QgsColorRampButton(QtWidgets.QToolButton):

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

    def mousePressEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def resizeEvent(self, event: QtGui.QResizeEvent) -> None: ...
    def showEvent(self, e: QtGui.QShowEvent) -> None: ...
    def changeEvent(self, e: QtCore.QEvent) -> None: ...
    def event(self, e: QtCore.QEvent) -> bool: ...
    def colorRampChanged(self) -> None: ...
    def setToNull(self) -> None: ...
    def setToDefaultColorRamp(self) -> None: ...
    def setButtonBackground(self, colorramp: typing.Optional[_core.QgsColorRamp] = ...) -> None: ...
    def setColorRampFromName(self, name: str = ...) -> None: ...
    def setRandomColorRamp(self) -> None: ...
    def setColorRamp(self, colorramp: _core.QgsColorRamp) -> None: ...
    def colorRampName(self) -> str: ...
    def setColorRampName(self, name: str) -> None: ...
    def showGradientOnly(self) -> bool: ...
    def setShowGradientOnly(self, gradientonly: bool) -> None: ...
    def context(self) -> str: ...
    def setContext(self, context: 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) -> _core.QgsColorRamp: ...
    def setDefaultColorRamp(self, colorramp: _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: str) -> None: ...
    def colorRamp(self) -> _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) -> QtWidgets.QDialogButtonBox: ...
    def settings(self) -> _core.QgsColorRampLegendNodeSettings: ...


class QgsColorSwatchDelegate(QtWidgets.QAbstractItemDelegate):

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

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


class QgsColorSchemeModel(QtCore.QAbstractItemModel):

    def __init__(self, scheme: _core.QgsColorScheme, context: 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: str = ..., allowDuplicate: bool = ...) -> None: ...
    def baseColor(self) -> QtGui.QColor: ...
    def context(self) -> str: ...
    def setScheme(self, scheme: _core.QgsColorScheme, context: str = ..., baseColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor] = ...) -> None: ...
    def colors(self) -> typing.List[typing.Tuple[QtGui.QColor, str]]: ...
    def dropMimeData(self, data: QtCore.QMimeData, action: QtCore.Qt.DropAction, row: int, column: int, parent: QtCore.QModelIndex) -> bool: ...
    def mimeData(self, indexes: typing.Iterable[QtCore.QModelIndex]) -> 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: str = ..., baseColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor] = ...) -> None: ...

    def mouseReleaseEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def colorSelected(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    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: str = ..., allowDuplicate: bool = ...) -> None: ...
    def removeSelection(self) -> None: ...
    def setScheme(self, scheme: _core.QgsColorScheme, context: str = ..., baseColor: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor] = ...) -> None: ...
    def scheme(self) -> _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: _core.QgsColorScheme, context: str = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def focusOutEvent(self, event: QtGui.QFocusEvent) -> None: ...
    def focusInEvent(self, event: QtGui.QFocusEvent) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def mouseReleaseEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def paintEvent(self, event: QtGui.QPaintEvent) -> None: ...
    def hovered(self) -> None: ...
    def colorChanged(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def refreshColors(self) -> None: ...
    def colors(self) -> 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: str) -> None: ...
    def context(self) -> str: ...
    def sizeHint(self) -> QtCore.QSize: ...
    def minimumSizeHint(self) -> QtCore.QSize: ...


class QgsColorSwatchGridAction(QtWidgets.QWidgetAction):

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

    def colorChanged(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def refreshColors(self) -> None: ...
    def dismissOnColorSelection(self) -> bool: ...
    def setDismissOnColorSelection(self, dismiss: bool) -> None: ...
    def setContext(self, context: 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: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def dropEvent(self, e: QtGui.QDropEvent) -> None: ...
    def dragEnterEvent(self, e: 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: ...
    def hovered(self) -> None: ...
    def colorChanged(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    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: QgsColorWidget, menu: typing.Optional[QtWidgets.QMenu] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def colorChanged(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    def dismissOnColorSelection(self) -> bool: ...
    def setDismissOnColorSelection(self, dismiss: bool) -> None: ...
    def colorWidget(self) -> QgsColorWidget: ...


class QgsColorWheel(QgsColorWidget):

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

    def mouseReleaseEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def resizeEvent(self, event: QtGui.QResizeEvent) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor], emitSignals: bool = ...) -> None: ...
    def paintEvent(self, event: 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: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def resizeEvent(self, event: 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: 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: QtGui.QKeyEvent) -> None: ...
    def mouseReleaseEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def wheelEvent(self, event: QtGui.QWheelEvent) -> None: ...
    def mouseMoveEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def valueChanged(self, value: int) -> None: ...
    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: 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: 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: QtGui.QMouseEvent) -> None: ...
    def mouseReleaseEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, e: 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: 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: QtGui.QKeyEvent) -> None: ...
    def mouseReleaseEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def hideEvent(self, e: 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: ...
    def currentColorChanged(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor]) -> None: ...
    @staticmethod
    def removeUserPalette(scheme: _core.QgsUserColorScheme, parent: QtWidgets.QWidget) -> bool: ...
    @staticmethod
    def createNewUserPalette(parent: QtWidgets.QWidget) -> _core.QgsUserColorScheme: ...
    @staticmethod
    def importUserPaletteFromFile(parent: QtWidgets.QWidget) -> _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: QtGui.QKeyEvent) -> None: ...
    def keyPressEvent(self, event: 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: QtGui.QShowEvent) -> None: ...
    def dropEvent(self, event: QtGui.QDropEvent) -> None: ...
    def moveCanvasContents(self, reset: bool = ...) -> None: ...
    def viewportEvent(self, event: QtCore.QEvent) -> bool: ...
    def dragEnterEvent(self, e: QtGui.QDragEnterEvent) -> None: ...
    def paintEvent(self, e: QtGui.QPaintEvent) -> None: ...
    def resizeEvent(self, e: QtGui.QResizeEvent) -> None: ...
    def wheelEvent(self, e: QtGui.QWheelEvent) -> None: ...
    def mouseReleaseEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mouseDoubleClickEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def keyReleaseEvent(self, e: QtGui.QKeyEvent) -> None: ...
    def keyPressEvent(self, e: QtGui.QKeyEvent) -> None: ...
    def event(self, e: QtCore.QEvent) -> bool: ...
    def contextMenuAboutToShow(self, menu: QtWidgets.QMenu, event: 'QgsMapMouseEvent') -> None: ...
    def zRangeChanged(self) -> None: ...
    def temporalRangeChanged(self) -> None: ...
    def tapAndHoldGestureOccurred(self, mapPoint: _core.QgsPointXY, gesture: QtWidgets.QTapAndHoldGesture) -> None: ...
    def panDistanceBearingChanged(self, distance: float, unit: _core.QgsUnitTypes.DistanceUnit, bearing: float) -> None: ...
    def renderErrorOccurred(self, error: str, layer: _core.QgsMapLayer) -> None: ...
    def messageEmitted(self, title: str, message: str, a2: _core.Qgis.MessageLevel = ...) -> None: ...
    def themeChanged(self, theme: str) -> None: ...
    def layerStyleOverridesChanged(self) -> None: ...
    def currentLayerChanged(self, layer: _core.QgsMapLayer) -> None: ...
    def transformContextChanged(self) -> None: ...
    def destinationCrsChanged(self) -> None: ...
    def zoomNextStatusChanged(self, a0: bool) -> None: ...
    def zoomLastStatusChanged(self, a0: bool) -> None: ...
    def selectionChanged(self, layer: _core.QgsMapLayer) -> None: ...
    def mapToolSet(self, newTool: 'QgsMapTool', oldTool: 'QgsMapTool') -> None: ...
    def keyReleased(self, e: QtGui.QKeyEvent) -> None: ...
    def keyPressed(self, e: QtGui.QKeyEvent) -> None: ...
    def layersChanged(self) -> None: ...
    def mapRefreshCanceled(self) -> None: ...
    def renderStarting(self) -> None: ...
    def mapCanvasRefreshed(self) -> None: ...
    def renderComplete(self, a0: QtGui.QPainter) -> None: ...
    def canvasColorChanged(self) -> None: ...
    def magnificationChanged(self, a0: float) -> None: ...
    def rotationChanged(self, a0: float) -> None: ...
    def extentsChanged(self) -> None: ...
    def scaleLockChanged(self, locked: bool) -> None: ...
    def scaleChanged(self, a0: float) -> None: ...
    def xyCoordinates(self, p: _core.QgsPointXY) -> None: ...
    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: str, QPixmap: typing.Optional[QtGui.QPixmap] = ..., a2: str = ...) -> None: ...
    def selectionChangedSlot(self) -> None: ...
    def redrawAllLayers(self) -> None: ...
    def refreshAllLayers(self) -> None: ...
    def refresh(self) -> None: ...
    def allowInteraction(self, interaction: 'QgsMapCanvasInteractionBlocker.Interaction') -> bool: ...
    def removeInteractionBlocker(self, blocker: 'QgsMapCanvasInteractionBlocker') -> None: ...
    def installInteractionBlocker(self, blocker: '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) -> _core.QgsExpressionContextScope: ...
    def expressionContextScope(self) -> _core.QgsExpressionContextScope: ...
    def setExpressionContextScope(self, scope: _core.QgsExpressionContextScope) -> None: ...
    def setSnappingUtils(self, utils: _core.QgsSnappingUtils) -> None: ...
    def snappingUtils(self) -> _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: 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) -> _core.QgsMapLayer: ...
    def isDrawing(self) -> bool: ...
    def getCoordinateTransform(self) -> _core.QgsMapToPixel: ...
    def theme(self) -> str: ...
    def setTheme(self, theme: str) -> None: ...
    def setLayerStyleOverrides(self, overrides: typing.Dict[str, str]) -> None: ...
    def layerStyleOverrides(self) -> typing.Dict[str, str]: ...
    def mapUnits(self) -> _core.QgsUnitTypes.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) -> _core.QgsMapLayer: ...
    @typing.overload
    def layer(self, id: str) -> _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) -> _core.QgsProject: ...
    def setProject(self, project: _core.QgsProject) -> None: ...
    def mapTool(self) -> 'QgsMapTool': ...
    def unsetMapTool(self, mapTool: 'QgsMapTool') -> None: ...
    def setMapTool(self, mapTool: '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: _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: _core.QgsVectorLayer, ids: typing.Any, alwaysRecenter: bool = ...) -> None: ...
    def zoomToFeatureIds(self, layer: _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 clearCache(self) -> None: ...
    def isCachingEnabled(self) -> bool: ...
    def setCachingEnabled(self, enabled: bool) -> None: ...
    def renderedItemResults(self, allowOutdatedResults: bool = ...) -> _core.QgsRenderedItemResults: ...
    def labelingResults(self, allowOutdatedResults: bool = ...) -> _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) -> _core.QgsTemporalController: ...
    def setTemporalController(self, controller: _core.QgsTemporalController) -> None: ...
    def mapSettings(self) -> _core.QgsMapSettings: ...
    def setCurrentLayer(self, layer: _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: 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: ...

    def operationDoubleClicked(self) -> None: ...
    def operationChanged(self) -> None: ...
    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: 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 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: str, stored: bool = ...) -> typing.Tuple[bool, str]: ...
    def request(self, realm: str, username: str, password: str, message: str = ...) -> typing.Tuple[bool, str, str]: ...


class QgsCrsDefinitionWidget(QtWidgets.QWidget):

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

    def crsChanged(self) -> None: ...
    def setDefinitionString(self, definition: 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: QtGui.QKeyEvent) -> None: ...
    def changed(self) -> None: ...
    def setMaxHistogramValueRange(self, maxValueRange: float) -> None: ...
    def setMinHistogramValueRange(self, minValueRange: float) -> None: ...
    def maxHistogramValueRange(self) -> float: ...
    def minHistogramValueRange(self) -> float: ...
    def setHistogramSource(self, layer: _core.QgsVectorLayer, expression: 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: QgsMapCanvas) -> bool: ...
    def canHandleCustomUriCanvasDrop(self, uri: _core.QgsMimeDataUtils.Uri, canvas: QgsMapCanvas) -> bool: ...
    def handleFileDrop(self, file: str) -> bool: ...
    def handleMimeDataV2(self, data: QtCore.QMimeData) -> bool: ...
    def handleMimeData(self, data: QtCore.QMimeData) -> None: ...
    def canHandleMimeData(self, data: 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: str) -> bool: ...


class QgsDatabaseSchemaComboBox(QtWidgets.QWidget):

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

    def schemaChanged(self, schema: str) -> None: ...
    def refreshSchemas(self) -> None: ...
    def setConnectionName(self, connection: str, provider: str = ...) -> None: ...
    def setSchema(self, schema: str) -> None: ...
    def comboBox(self) -> 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: str, connection: str, schema: str = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    @typing.overload
    def __init__(self, connection: _core.QgsAbstractDatabaseProviderConnection, schema: str = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def tableChanged(self, table: str, schema: str = ...) -> None: ...
    def refreshTables(self) -> None: ...
    def setSchema(self, schema: str) -> None: ...
    def setConnectionName(self, connection: str, provider: str = ...) -> None: ...
    def setTable(self, table: str, schema: str = ...) -> None: ...
    def comboBox(self) -> 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: QgsBrowserTreeView) -> None: ...
    def view(self) -> QgsBrowserTreeView: ...
    def setMessageBar(self, bar: 'QgsMessageBar') -> None: ...
    def messageBar(self) -> 'QgsMessageBar': ...


class QgsDataItemGuiProvider(PyQt5.sip.wrapper):

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

    @staticmethod
    def notify(title: str, message: str, context: QgsDataItemGuiContext, level: _core.Qgis.MessageLevel = ..., duration: int = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    def createParamWidget(self, item: _core.QgsDataItem, context: QgsDataItemGuiContext) -> QtWidgets.QWidget: ...
    def handleDrop(self, item: _core.QgsDataItem, context: QgsDataItemGuiContext, data: QtCore.QMimeData, action: QtCore.Qt.DropAction) -> bool: ...
    def acceptDrop(self, item: _core.QgsDataItem, context: QgsDataItemGuiContext) -> bool: ...
    def handleDoubleClick(self, item: _core.QgsDataItem, context: QgsDataItemGuiContext) -> bool: ...
    def deleteLayer(self, item: _core.QgsLayerItem, context: QgsDataItemGuiContext) -> bool: ...
    def rename(self, item: _core.QgsDataItem, name: str, context: QgsDataItemGuiContext) -> bool: ...
    def precedenceWhenPopulatingMenus(self) -> int: ...
    def populateContextMenu(self, item: _core.QgsDataItem, menu: 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: 'QgsProviderGuiRegistry') -> None: ...
    def removeProvider(self, provider: QgsDataItemGuiProvider) -> None: ...
    def addProvider(self, provider: QgsDataItemGuiProvider) -> None: ...
    def providers(self) -> typing.List[QgsDataItemGuiProvider]: ...


class QgsDataSourceSelectWidget(QgsPanelWidget):

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

    def itemTriggered(self, uri: _core.QgsMimeDataUtils.Uri) -> None: ...
    def selectionChanged(self) -> None: ...
    def validationChanged(self, isValid: bool) -> None: ...
    def showEvent(self, e: QtGui.QShowEvent) -> None: ...
    def setFilter(self) -> None: ...
    def setCaseSensitive(self, caseSensitive: bool) -> None: ...
    def setFilterSyntax(self, a0: QtWidgets.QAction) -> None: ...
    def showFilterWidget(self, visible: bool) -> None: ...
    def uri(self) -> _core.QgsMimeDataUtils.Uri: ...
    def expandPath(self, path: str) -> None: ...
    def setDescription(self, description: str) -> None: ...
    def setLayerTypeFilter(self, layerType: _core.QgsMapLayerType) -> None: ...


class QgsDataSourceSelectDialog(QtWidgets.QDialog):

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

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


class QgsNewDatabaseTableNameWidget(QgsPanelWidget):

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

    def accepted(self) -> None: ...
    def uriChanged(self, uri: str) -> None: ...
    def providerKeyChanged(self, providerKey: str) -> None: ...
    def tableNameChanged(self, tableName: str) -> None: ...
    def schemaNameChanged(self, schemaName: str) -> None: ...
    def validationChanged(self, isValid: bool) -> None: ...
    def showEvent(self, e: 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[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: str) -> None: ...
    def setDetail(self, detail: str) -> None: ...
    def setTitle(self, title: 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: 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: QtGui.QPaintEvent) -> None: ...
    def valueChanged(self, a0: typing.Any) -> None: ...
    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) -> QtWidgets.QDialogButtonBox: ...
    def layout(self) -> QtWidgets.QVBoxLayout: ...


class QgsDoubleValidator(QtGui.QRegularExpressionValidator):

    @typing.overload
    def __init__(self, parent: QtCore.QObject) -> None: ...
    @typing.overload
    def __init__(self, expression: QtCore.QRegularExpression, bottom: float, top: float, parent: QtCore.QObject) -> None: ...
    @typing.overload
    def __init__(self, bottom: float, top: float, parent: QtCore.QObject) -> None: ...
    @typing.overload
    def __init__(self, bottom: float, top: float, decimal: int, parent: QtCore.QObject) -> None: ...
    @typing.overload
    def __init__(self, decimal: int, parent: 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: str) -> float: ...
    def validate(self, input: str) -> QtGui.QValidator.State: ...
    def setMaxDecimals(self, maxDecimals: int) -> None: ...


class QgsEncodingFileDialog(QtWidgets.QFileDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., caption: str = ..., directory: str = ..., filter: str = ..., encoding: 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: str = ..., encoding: str = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def setEncoding(self, encoding: str) -> None: ...
    def encoding(self) -> str: ...


class QgsErrorDialog(QtWidgets.QDialog):

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

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


class QgsExpressionBuilderDialog(QtWidgets.QDialog):

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

    def reject(self) -> None: ...
    def accept(self) -> None: ...
    def done(self, r: int) -> None: ...
    def allowEvalErrorsChanged(self) -> None: ...
    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: str) -> None: ...
    def expectedOutputFormat(self) -> str: ...
    def expressionText(self) -> str: ...
    def setExpressionText(self, text: str) -> None: ...
    def expressionBuilder(self) -> 'QgsExpressionBuilderWidget': ...


class QgsExpressionStoreDialog(QtWidgets.QDialog):

    def __init__(self, label: str, expression: str, helpText: str, existingLabels: typing.Iterable[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: ...
        @typing.overload
        def __init__(self, a0: 'QgsExpressionBuilderWidget.Flags') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        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: QtGui.QShowEvent) -> None: ...
    def parserErrorChanged(self) -> None: ...
    def evalErrorChanged(self) -> None: ...
    def expressionParsed(self, isValid: bool) -> None: ...
    def findExpressions(self, label: 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: _core.QgsProject) -> None: ...
    def project(self) -> _core.QgsProject: ...
    def model(self) -> QtGui.QStandardItemModel: ...
    def updateFunctionFileList(self, path: str) -> None: ...
    def loadFunctionCode(self, code: str) -> None: ...
    def loadCodeFromFile(self, path: str) -> None: ...
    def saveFunctionFile(self, fileName: str) -> None: ...
    def newFunctionFile(self, fileName: str = ...) -> None: ...
    def removeFromUserExpressions(self, label: str) -> None: ...
    def saveToUserExpressions(self, label: str, expression: str, helpText: str) -> None: ...
    def loadUserExpressions(self) -> None: ...
    def expressionTree(self) -> 'QgsExpressionTreeView': ...
    def loadRecent(self, collection: str = ...) -> None: ...
    def saveToRecent(self, collection: str = ...) -> None: ...
    def isExpressionValid(self) -> bool: ...
    def setExpressionContext(self, context: _core.QgsExpressionContext) -> None: ...
    def expressionContext(self) -> _core.QgsExpressionContext: ...
    def setExpectedOutputFormat(self, expected: str) -> None: ...
    def expectedOutputFormat(self) -> str: ...
    def setExpressionText(self, expression: str) -> None: ...
    def expressionText(self) -> str: ...
    def setGeomCalculator(self, da: _core.QgsDistanceArea) -> None: ...
    def loadFieldsAndValues(self, fieldValues: typing.Dict[str, typing.Iterable[str]]) -> None: ...
    @typing.overload
    def loadFieldNames(self) -> None: ...
    @typing.overload
    def loadFieldNames(self, fields: _core.QgsFields) -> None: ...
    def layer(self) -> _core.QgsVectorLayer: ...
    def setLayer(self, layer: _core.QgsVectorLayer) -> None: ...
    def initWithFields(self, fields: _core.QgsFields, context: _core.QgsExpressionContext = ..., recentCollection: str = ..., flags: typing.Union['QgsExpressionBuilderWidget.Flags', 'QgsExpressionBuilderWidget.Flag'] = ...) -> None: ...
    def initWithLayer(self, layer: _core.QgsVectorLayer, context: _core.QgsExpressionContext = ..., recentCollection: str = ..., flags: typing.Union['QgsExpressionBuilderWidget.Flags', 'QgsExpressionBuilderWidget.Flag'] = ...) -> None: ...
    def init(self, context: _core.QgsExpressionContext = ..., recentCollection: 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: str) -> None: ...
    def addFields(self, fieldList: typing.Iterable[str]) -> None: ...


class QgsExpressionLineEdit(QtWidgets.QWidget):

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

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


class QgsExpressionPreviewWidget(QtWidgets.QWidget):

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

    def setCurrentFeature(self, feature: _core.QgsFeature) -> None: ...
    def toolTipChanged(self, toolTip: str) -> None: ...
    def parserErrorChanged(self) -> None: ...
    def evalErrorChanged(self) -> None: ...
    def expressionParsed(self, isValid: bool) -> None: ...
    def parserErrors(self) -> typing.List[_core.QgsExpression.ParserError]: ...
    def rootNode(self) -> _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: str) -> None: ...
    def setLayer(self, layer: _core.QgsVectorLayer) -> None: ...


class QgsExpressionSelectionDialog(QtWidgets.QDialog):

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

    def done(self, r: int) -> None: ...
    def closeEvent(self, closeEvent: QtGui.QCloseEvent) -> None: ...
    def setMapCanvas(self, canvas: QgsMapCanvas) -> None: ...
    def setMessageBar(self, messageBar: 'QgsMessageBar') -> None: ...
    def setGeomCalculator(self, da: _core.QgsDistanceArea) -> None: ...
    def expressionText(self) -> str: ...
    def setExpressionText(self, text: str) -> None: ...
    def expressionBuilder(self) -> 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: str, expressionText: str, helpText: str, itemType: 'QgsExpressionItem.ItemType' = ...) -> None: ...
    @typing.overload
    def __init__(self, label: str, expressionText: str, itemType: 'QgsExpressionItem.ItemType' = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsExpressionItem') -> None: ...

    def getItemType(self) -> 'QgsExpressionItem.ItemType': ...
    def setHelpText(self, helpText: 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: 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: QgsExpressionItem) -> QtWidgets.QMenu: ...

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

    def setSearchText(self, text: str) -> None: ...
    def currentExpressionItemChanged(self, item: QgsExpressionItem) -> None: ...
    def expressionItemDoubleClicked(self, text: str) -> None: ...
    def loadExpressionsFromJson(self, expressionsDocument: QtCore.QJsonDocument) -> None: ...
    def exportUserExpressions(self) -> QtCore.QJsonDocument: ...
    def findExpressions(self, label: str) -> typing.List[QgsExpressionItem]: ...
    def loadUserExpressions(self) -> None: ...
    def removeFromUserExpressions(self, label: str) -> None: ...
    def saveToUserExpressions(self, label: str, expression: str, helpText: str) -> None: ...
    def saveToRecent(self, expressionText: str, collection: str = ...) -> None: ...
    def loadRecent(self, collection: str = ...) -> None: ...
    def currentItem(self) -> QgsExpressionItem: ...
    def refresh(self) -> None: ...
    def setMenuProvider(self, provider: 'QgsExpressionTreeView.MenuProvider') -> None: ...
    def setProject(self, project: _core.QgsProject) -> None: ...
    def project(self) -> _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: _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: ...

    def extentChanged(self, r: _core.QgsRectangle) -> None: ...
    def setRatio(self, ratio: QtCore.QSize) -> None: ...
    def setOutputExtentFromDrawOnCanvas(self) -> None: ...
    def setOutputExtentFromLayer(self, layer: _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: QgsMapCanvas, drawOnCanvasOption: bool = ...) -> None: ...
    def titleBase(self) -> str: ...
    def setTitleBase(self, title: 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: QtGui.QDropEvent) -> None: ...
    def dragLeaveEvent(self, event: QtGui.QDragLeaveEvent) -> None: ...
    def dragEnterEvent(self, event: QtGui.QDragEnterEvent) -> None: ...
    def toggleDialogVisibility(self, visible: bool) -> None: ...
    def validationChanged(self, valid: bool) -> None: ...
    def extentChanged(self, r: _core.QgsRectangle) -> None: ...
    def clear(self) -> None: ...
    def setRatio(self, ratio: QtCore.QSize) -> None: ...
    def setOutputExtentFromDrawOnCanvas(self) -> None: ...
    def setOutputExtentFromLayer(self, layer: _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: str = ...) -> None: ...
    def isValid(self) -> bool: ...
    def extentLayerName(self) -> str: ...
    def ratio(self) -> QtCore.QSize: ...
    def setMapCanvas(self, canvas: 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

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

    def valueChanged(self, a0: str) -> None: ...
    def messageBar(self) -> 'QgsMessageBar': ...
    def setMessageBar(self, messageBar: 'QgsMessageBar') -> None: ...
    def storageAuthConfigId(self) -> str: ...
    def setStorageAuthConfigId(self, authCfg: str) -> None: ...
    def storageType(self) -> str: ...
    def setStorageType(self, storageType: str) -> None: ...
    def setDefaultRoot(self, defaultRoot: 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) -> '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: ...

    def showBrowserButtonsChanged(self) -> None: ...
    def fetchLimitChanged(self) -> None: ...
    def fetchGeometryChanged(self) -> None: ...
    def allowNullChanged(self) -> None: ...
    def featureChanged(self, feature: _core.QgsFeature) -> None: ...
    def filterExpressionChanged(self) -> None: ...
    def displayExpressionChanged(self) -> None: ...
    def layerChanged(self) -> None: ...
    def modelUpdated(self) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def focusOutEvent(self, event: 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: str) -> None: ...
    def nullIndex(self) -> int: ...
    def filterExpression(self) -> str: ...
    def setDisplayExpression(self, displayExpression: str) -> None: ...
    def displayExpression(self) -> str: ...
    def feature(self) -> _core.QgsFeature: ...
    def setFeature(self, featureId: int) -> None: ...
    def setLayer(self, layer: _core.QgsVectorLayer) -> None: ...
    def layer(self) -> _core.QgsVectorLayer: ...


class QgsFeatureListComboBox(QtWidgets.QComboBox):

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

    def currentFeatureChanged(self) -> None: ...
    def allowNullChanged(self) -> None: ...
    def identifierFieldChanged(self) -> None: ...
    def identifierValueChanged(self) -> None: ...
    def filterExpressionChanged(self) -> None: ...
    def displayExpressionChanged(self) -> None: ...
    def sourceLayerChanged(self) -> None: ...
    def modelUpdated(self) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def focusOutEvent(self, event: QtGui.QFocusEvent) -> None: ...
    def currentModelIndex(self) -> QtCore.QModelIndex: ...
    def setIdentifierFields(self, identifierFields: typing.Iterable[str]) -> None: ...
    def setIdentifierField(self, identifierField: str) -> None: ...
    def identifierFields(self) -> typing.List[str]: ...
    def identifierField(self) -> str: ...
    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: str) -> None: ...
    def nullIndex(self) -> int: ...
    def filterExpression(self) -> str: ...
    def setDisplayExpression(self, displayExpression: str) -> None: ...
    def displayExpression(self) -> str: ...
    def setCurrentFeature(self, feature: _core.QgsFeature) -> None: ...
    def setSourceLayer(self, sourceLayer: _core.QgsVectorLayer) -> None: ...
    def sourceLayer(self) -> _core.QgsVectorLayer: ...


class QgsFeatureSelectionDlg(QtWidgets.QDialog):

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

    def showEvent(self, event: QtGui.QShowEvent) -> None: ...
    def keyPressEvent(self, evt: 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: str) -> None: ...
    def setLayer(self, layer: _core.QgsMapLayer) -> None: ...
    def fieldChanged(self, fieldName: str) -> None: ...
    def fields(self) -> _core.QgsFields: ...
    def setFields(self, fields: _core.QgsFields) -> None: ...
    def layer(self) -> _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: ...

    def validityChanged(self, isValid: bool) -> None: ...
    def isValid(self) -> bool: ...
    def createFieldDomain(self) -> _core.QgsFieldDomain: ...
    def setFieldDomain(self, domain: _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) -> _core.QgsFieldDomain: ...
    def setFieldDomain(self, domain: _core.QgsFieldDomain) -> None: ...


class QgsFieldExpressionWidget(QtWidgets.QWidget):

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

    def eventFilter(self, watched: QtCore.QObject, event: QtCore.QEvent) -> bool: ...
    def changeEvent(self, event: QtCore.QEvent) -> None: ...
    def isExpressionValid(self, expressionStr: str) -> bool: ...
    def updateLineEditStyle(self, expression: str = ...) -> None: ...
    def currentFieldChanged(self) -> None: ...
    def expressionEditingFinished(self) -> None: ...
    def expressionEdited(self, expression: str) -> None: ...
    def editExpression(self) -> None: ...
    def setExpression(self, expression: str) -> None: ...
    def setFields(self, fields: _core.QgsFields) -> None: ...
    def setField(self, fieldName: str) -> None: ...
    def setRow(self, row: int) -> None: ...
    def setLayer(self, layer: _core.QgsMapLayer) -> None: ...
    def allowEvalErrorsChanged(self) -> None: ...
    @typing.overload
    def fieldChanged(self, fieldName: str) -> None: ...
    @typing.overload
    def fieldChanged(self, fieldName: str, isValid: bool) -> None: ...
    def setAllowEvalErrors(self, allowEvalErrors: bool) -> None: ...
    def allowEvalErrors(self) -> bool: ...
    def registerExpressionContextGenerator(self, generator: _core.QgsExpressionContextGenerator) -> None: ...
    def layer(self) -> _core.QgsVectorLayer: ...
    def expression(self) -> str: ...
    def asExpression(self) -> str: ...
    def currentText(self) -> str: ...
    def isExpression(self) -> bool: ...
    def isValidExpression(self, expressionError: typing.Optional[str] = ...) -> bool: ...
    def currentField(self) -> typing.Tuple[str, bool, 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: _core.QgsExpressionContextScope) -> None: ...
    def setExpressionDialogTitle(self, title: str) -> None: ...


class QgsFieldMappingWidget(QgsPanelWidget):

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

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

    class Field(PyQt5.sip.wrapper):

        expression = ... # type: str
        field = ... # type: _core.QgsField
        originalName = ... # type: 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[str, 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[str, str] = ...) -> None: ...
    def setBaseExpressionContextGenerator(self, generator: _core.QgsExpressionContextGenerator) -> None: ...
    def contextGenerator(self) -> _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: str = ...) -> None: ...
    def setFieldPropertyMap(self, map: typing.Dict[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: QtCore.QObject, field: _core.QgsField, defaultValue: str, dateFormat: str = ...) -> None: ...

    def dateFormat(self) -> str: ...
    def fixup(self, s: typing.Any) -> None: ...
    def validate(self, s: 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: str = ...) -> None: ...

    def mouseReleaseEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def focusInEvent(self, e: QtGui.QFocusEvent) -> None: ...
    def selectOnFocusChanged(self) -> None: ...
    def showSpinnerChanged(self) -> None: ...
    def valueChanged(self, value: str) -> None: ...
    def cleared(self) -> None: ...
    def restoreState(self) -> None: ...
    def storeState(self) -> None: ...
    def clearValue(self) -> None: ...
    def hasStateStored(self) -> bool: ...
    def event(self, event: 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: str) -> None: ...
    def defaultValue(self) -> str: ...
    def setDefaultValue(self, defaultValue: str) -> None: ...
    def showSearchIcon(self) -> bool: ...
    def setShowSearchIcon(self, visible: bool) -> None: ...
    def nullValue(self) -> str: ...
    def setNullValue(self, nullValue: 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: ...

    def attributeIndexChanged(self, index: int) -> None: ...
    def layerChanged(self, layer: _core.QgsVectorLayer) -> None: ...
    def attributeIndex(self) -> int: ...
    def setAttributeIndex(self, index: int) -> None: ...
    def layer(self) -> _core.QgsVectorLayer: ...
    def setLayer(self, layer: _core.QgsVectorLayer) -> None: ...


class QgsAbstractFileContentSourceLineEdit(QtWidgets.QWidget):

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

    def sourceChanged(self, source: str) -> None: ...
    def setSource(self, source: str) -> None: ...
    def setPropertyOverrideToolButtonVisible(self, visible: bool) -> None: ...
    def propertyOverrideToolButton(self) -> 'QgsPropertyOverrideButton': ...
    def setLastPathSettingsKey(self, key: str) -> None: ...
    def source(self) -> str: ...
    def messageBar(self) -> 'QgsMessageBar': ...
    def setMessageBar(self, bar: '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: str, authcfg: str = ...) -> None: ...

    def downloadProgress(self, bytesReceived: int, bytesTotal: int) -> None: ...
    def downloadError(self, errorMessages: typing.Iterable[str]) -> None: ...
    def downloadCanceled(self) -> None: ...
    def downloadExited(self) -> None: ...
    def downloadCompleted(self) -> None: ...


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 relativePath(self, filePath: str, removeRelative: bool) -> str: ...
    def toUrl(self, path: str) -> str: ...
    def setFilePaths(self, filePaths: typing.Iterable[str]) -> None: ...
    @staticmethod
    def isMultiFiles(path: str) -> bool: ...
    def setSelectedFileNames(self, fileNames: typing.Iterable[str]) -> None: ...
    def updateLayout(self) -> None: ...
    def fileChanged(self, path: str) -> None: ...
    def lineEdit(self) -> 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: 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: 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: str) -> None: ...
    def filter(self) -> str: ...
    def setDialogTitle(self, title: str) -> None: ...
    def dialogTitle(self) -> str: ...
    def setReadOnly(self, readOnly: bool) -> None: ...
    def setFilePath(self, path: str) -> None: ...
    @staticmethod
    def splitFilePaths(path: str) -> typing.List[str]: ...
    def filePath(self) -> str: ...


class QgsExternalStorageFileWidget(QgsFileWidget):

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

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


class QgsFindFilesByPatternWidget(QtWidgets.QWidget):

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

    def findComplete(self, files: typing.Iterable[str]) -> None: ...
    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: QtGui.QResizeEvent) -> None: ...
    def paintEvent(self, e: QtGui.QPaintEvent) -> None: ...
    def showEvent(self, e: QtGui.QShowEvent) -> None: ...
    def anchorWidgetPointChanged(self, point: 'QgsFloatingWidget.AnchorPoint') -> None: ...
    def anchorPointChanged(self, point: 'QgsFloatingWidget.AnchorPoint') -> None: ...
    def anchorWidgetChanged(self, widget: QtWidgets.QWidget) -> None: ...
    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) -> QtWidgets.QWidget: ...
    def setAnchorWidget(self, widget: QtWidgets.QWidget) -> None: ...


class QgsFocusWatcher(QtCore.QObject):

    def __init__(self, parent: QtCore.QObject) -> None: ...

    def focusOut(self) -> None: ...
    def focusIn(self) -> None: ...
    def focusChanged(self, focused: bool) -> None: ...
    def eventFilter(self, obj: QtCore.QObject, event: 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: str = ...) -> None: ...

    def wheelEvent(self, event: QtGui.QWheelEvent) -> None: ...
    def dropEvent(self, e: QtGui.QDropEvent) -> None: ...
    def dragLeaveEvent(self, e: QtGui.QDragLeaveEvent) -> None: ...
    def dragEnterEvent(self, e: QtGui.QDragEnterEvent) -> None: ...
    def mouseMoveEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def resizeEvent(self, event: QtGui.QResizeEvent) -> None: ...
    def showEvent(self, e: QtGui.QShowEvent) -> None: ...
    def changeEvent(self, e: QtCore.QEvent) -> None: ...
    def event(self, e: QtCore.QEvent) -> bool: ...
    def changed(self) -> None: ...
    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: str) -> None: ...
    def setShowNullFormat(self, show: bool) -> None: ...
    def registerExpressionContextGenerator(self, generator: _core.QgsExpressionContextGenerator) -> None: ...
    def setLayer(self, layer: _core.QgsVectorLayer) -> None: ...
    def layer(self) -> _core.QgsVectorLayer: ...
    def currentFont(self) -> QtGui.QFont: ...
    def textFormat(self) -> _core.QgsTextFormat: ...
    def messageBar(self) -> 'QgsMessageBar': ...
    def setMessageBar(self, bar: 'QgsMessageBar') -> None: ...
    def setMapCanvas(self, canvas: QgsMapCanvas) -> None: ...
    def mapCanvas(self) -> QgsMapCanvas: ...
    def dialogTitle(self) -> str: ...
    def setDialogTitle(self, title: 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() -> '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: str) -> None: ...
    def preferredFrameSize(self) -> QtCore.QSizeF: ...
    def minimumFrameSize(self) -> QtCore.QSizeF: ...
    def clone(self) -> 'QgsFormAnnotation': ...


class QgsGeocoderLocatorFilter(_core.QgsAbstractGeocoderLocatorFilter):

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

    def clone(self) -> _core.QgsLocatorFilter: ...


class QgsMapCanvasItem(QtWidgets.QGraphicsItem):

    def __init__(self, mapCanvas: 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: QtGui.QPainter, context: _core.QgsRenderContext) -> bool: ...
    def updateCanvas(self) -> None: ...
    @typing.overload
    def paint(self, painter: QtGui.QPainter) -> None: ...
    @typing.overload
    def paint(self, painter: QtGui.QPainter, option: QtWidgets.QStyleOptionGraphicsItem, widget: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


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: QgsMapCanvas, geomType: _core.QgsWkbTypes.GeometryType = ...) -> None: ...

    def setGeometryType(self, geometryType: _core.QgsWkbTypes.GeometryType) -> None: ...
    def geometryType(self) -> _core.QgsWkbTypes.GeometryType: ...
    def paint(self, painter: 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) -> _core.QgsAbstractGeometry: ...
    def setGeometry(self, geom: _core.QgsAbstractGeometry) -> 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: ...
    def changed(self) -> None: ...
    def buttonBox(self) -> 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: QtGui.QDropEvent) -> None: ...
    def dragEnterEvent(self, e: QtGui.QDragEnterEvent) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def mouseDoubleClickEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def selectedStopChanged(self, stop: _core.QgsGradientStop) -> None: ...
    def changed(self) -> 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: ...
    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: 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: str) -> None: ...
    def setGroupShortName(self, shortName: str) -> None: ...
    def setGroupTitle(self, title: 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: ...
        @typing.overload
        def __init__(self, a0: 'QgsGui.HigFlags') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __invert__(self) -> 'QgsGui.HigFlags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

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


class QgsHelp(PyQt5.sip.wrapper):

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

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


class QgsHighlight(QgsMapCanvasItem):

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

    def updateRect(self) -> None: ...
    def paint(self, p: QtGui.QPainter) -> None: ...
    def updatePosition(self) -> None: ...
    def layer(self) -> _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: 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: str = ...) -> None: ...

    def drawHistogram(self) -> None: ...
    def setSourceFieldExp(self, fieldOrExp: str) -> None: ...
    def setLayer(self, layer: _core.QgsVectorLayer) -> None: ...
    def refresh(self) -> None: ...
    def refreshValues(self) -> None: ...
    def setYAxisTitle(self, title: str) -> None: ...
    def yAxisTitle(self) -> str: ...
    def setXAxisTitle(self, title: 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, QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def pen(self) -> QtGui.QPen: ...
    def setPen(self, pen: typing.Union[QtGui.QPen, QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def sourceFieldExp(self) -> str: ...
    def layer(self) -> _core.QgsVectorLayer: ...


class QgsHttpHeaderWidget(QtWidgets.QWidget):

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

    def updateSettings(self, settings: _core.QgsSettings, key: str) -> None: ...
    def setFromSettings(self, settings: _core.QgsSettings, key: str) -> 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: _core.QgsMapLayer, mapLayerAction: typing.Optional['QgsMapLayerAction'] = ...) -> None: ...
        @typing.overload
        def __init__(self, layer: _core.QgsMapLayer, fid: int, mapLayerAction: typing.Optional['QgsMapLayerAction'] = ...) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsIdentifyMenu.ActionData') -> None: ...

    def __init__(self, canvas: QgsMapCanvas) -> None: ...

    def closeEvent(self, e: QtGui.QCloseEvent) -> None: ...
    @staticmethod
    def styleHighlight(highlight: 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: '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: 'QgsMapMouseEvent', canvas: QgsMapCanvas, geometryTypes: typing.Any) -> typing.List['QgsMapToolIdentify.IdentifyResult']: ...


class QgsTableWidgetBase(QtWidgets.QWidget):

    def __init__(self, parent: QtWidgets.QWidget) -> None: ...

    def valueChanged(self) -> None: ...
    def init(self, model: 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: 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: 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: ...

    def progressChanged(self, progress: int) -> None: ...
    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.QgsMapLayerType) -> None: ...
    def setFilterString(self, filterString: str) -> None: ...
    def setFilterGeometryType(self, geometryType: _core.QgsWkbTypes.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 QgsLegendFilterButton(QtWidgets.QToolButton):

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

    def expressionTextChanged(self) -> None: ...
    def setVectorLayer(self, layer: _core.QgsVectorLayer) -> None: ...
    def vectorLayer(self) -> _core.QgsVectorLayer: ...
    def setExpressionText(self, expression: str) -> None: ...
    def expressionText(self) -> str: ...


class QgsLegendPatchShapeButton(QtWidgets.QToolButton):

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

    def mousePressEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def resizeEvent(self, event: QtGui.QResizeEvent) -> None: ...
    def showEvent(self, e: QtGui.QShowEvent) -> None: ...
    def changeEvent(self, e: QtCore.QEvent) -> None: ...
    def changed(self) -> None: ...
    def setToDefault(self) -> None: ...
    def setShape(self, shape: _core.QgsLegendPatchShape) -> None: ...
    def messageBar(self) -> 'QgsMessageBar': ...
    def setMessageBar(self, bar: 'QgsMessageBar') -> None: ...
    def shape(self) -> _core.QgsLegendPatchShape: ...
    def dialogTitle(self) -> str: ...
    def setDialogTitle(self, title: str) -> None: ...
    def setPreviewSymbol(self, symbol: _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: ...

    def changed(self) -> None: ...
    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) -> 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: ...
    def changed(self) -> None: ...
    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: ...

    def changed(self) -> None: ...
    def buttonBox(self) -> 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: QtCore.QObject) -> None: ...
    @typing.overload
    def __init__(self, bottom: int, top: int, parent: 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: 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: str) -> None: ...
    def upperValueDouble(self) -> float: ...
    def upperValue(self) -> str: ...
    def setLowerValue(self, val: 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
        GeoNode = ... # type: QgsManageConnectionsDialog.Type
        XyzTiles = ... # type: QgsManageConnectionsDialog.Type
        ArcgisMapServer = ... # type: QgsManageConnectionsDialog.Type
        ArcgisFeatureServer = ... # type: QgsManageConnectionsDialog.Type
        VectorTile = ... # 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: 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: _core.QgsAnnotation, mapCanvas: 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: QtGui.QPainter) -> None: ...
    def boundingRect(self) -> QtCore.QRectF: ...
    def updatePosition(self) -> None: ...
    def annotation(self) -> _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: 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: QgsMapCanvas, messageBar: typing.Optional['QgsMessageBar'] = ...) -> None: ...

    def configure(self) -> None: ...
    def reportError(self, err: _core.QgsTracer.PathError, addingVertex: bool) -> None: ...
    @staticmethod
    def tracerForCanvas(canvas: QgsMapCanvas) -> 'QgsMapCanvasTracer': ...
    def setActionEnableSnapping(self, action: QtWidgets.QAction) -> None: ...
    def actionEnableSnapping(self) -> QtWidgets.QAction: ...
    def setActionEnableTracing(self, action: QtWidgets.QAction) -> None: ...
    def actionEnableTracing(self) -> 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: QgsMapCanvas, layer: _core.QgsVectorLayer) -> str: ...
    @staticmethod
    def flashMatchingFeatures(canvas: QgsMapCanvas, layer: _core.QgsVectorLayer, filter: str) -> int: ...
    @staticmethod
    def zoomToMatchingFeatures(canvas: QgsMapCanvas, layer: _core.QgsVectorLayer, filter: str) -> int: ...


class QgsMapLayerAction(QtWidgets.QAction):

    class Flag(int):
        EnabledOnlyWhenEditable = ... # type: QgsMapLayerAction.Flag

    class Target(int):
        Layer = ... # type: QgsMapLayerAction.Target
        SingleFeature = ... # type: QgsMapLayerAction.Target
        MultipleFeatures = ... # type: QgsMapLayerAction.Target
        AllActions = ... # type: QgsMapLayerAction.Target

    class Targets(PyQt5.sip.wrapper):

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, f: typing.Union['QgsMapLayerAction.Targets', 'QgsMapLayerAction.Target']) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsMapLayerAction.Targets') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __invert__(self) -> 'QgsMapLayerAction.Targets': ...
        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['QgsMapLayerAction.Flags', 'QgsMapLayerAction.Flag']) -> None: ...
        @typing.overload
        def __init__(self, a0: 'QgsMapLayerAction.Flags') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __invert__(self) -> 'QgsMapLayerAction.Flags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    @typing.overload
    def __init__(self, name: str, parent: QtCore.QObject, targets: typing.Union['QgsMapLayerAction.Targets', 'QgsMapLayerAction.Target'] = ..., icon: QtGui.QIcon = ..., flags: typing.Union['QgsMapLayerAction.Flags', 'QgsMapLayerAction.Flag'] = ...) -> None: ...
    @typing.overload
    def __init__(self, name: str, parent: QtCore.QObject, layer: _core.QgsMapLayer, targets: typing.Union['QgsMapLayerAction.Targets', 'QgsMapLayerAction.Target'] = ..., icon: QtGui.QIcon = ..., flags: typing.Union['QgsMapLayerAction.Flags', 'QgsMapLayerAction.Flag'] = ...) -> None: ...
    @typing.overload
    def __init__(self, name: str, parent: QtCore.QObject, layerType: _core.QgsMapLayerType, targets: typing.Union['QgsMapLayerAction.Targets', 'QgsMapLayerAction.Target'] = ..., icon: QtGui.QIcon = ..., flags: typing.Union['QgsMapLayerAction.Flags', 'QgsMapLayerAction.Flag'] = ...) -> None: ...

    def triggeredForLayer(self, layer: _core.QgsMapLayer) -> None: ...
    def triggeredForFeature(self, layer: _core.QgsMapLayer, feature: _core.QgsFeature) -> None: ...
    def triggeredForFeatures(self, layer: _core.QgsMapLayer, featureList: typing.Iterable[_core.QgsFeature]) -> None: ...
    def isEnabledOnlyWhenEditable(self) -> bool: ...
    def targets(self) -> 'QgsMapLayerAction.Targets': ...
    def setTargets(self, targets: typing.Union['QgsMapLayerAction.Targets', 'QgsMapLayerAction.Target']) -> None: ...
    def triggerForLayer(self, layer: _core.QgsMapLayer) -> None: ...
    def triggerForFeature(self, layer: _core.QgsMapLayer, feature: _core.QgsFeature) -> None: ...
    def triggerForFeatures(self, layer: _core.QgsMapLayer, featureList: typing.Iterable[_core.QgsFeature]) -> None: ...
    def canRunUsingLayer(self, layer: _core.QgsMapLayer) -> bool: ...
    def flags(self) -> 'QgsMapLayerAction.Flags': ...


class QgsMapLayerActionRegistry(QtCore.QObject):

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

    def changed(self) -> None: ...
    def defaultActionForLayer(self, layer: _core.QgsMapLayer) -> QgsMapLayerAction: ...
    def setDefaultActionForLayer(self, layer: _core.QgsMapLayer, action: QgsMapLayerAction) -> None: ...
    def removeMapLayerAction(self, action: QgsMapLayerAction) -> bool: ...
    def mapLayerActions(self, layer: _core.QgsMapLayer, targets: typing.Union[QgsMapLayerAction.Targets, QgsMapLayerAction.Target] = ...) -> typing.List[QgsMapLayerAction]: ...
    def addMapLayerAction(self, action: QgsMapLayerAction) -> None: ...


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: QtGui.QPaintEvent) -> None: ...
    def dropEvent(self, event: QtGui.QDropEvent) -> None: ...
    def dragLeaveEvent(self, event: QtGui.QDragLeaveEvent) -> None: ...
    def dragEnterEvent(self, event: QtGui.QDragEnterEvent) -> None: ...
    def layerChanged(self, layer: _core.QgsMapLayer) -> None: ...
    def setLayer(self, layer: _core.QgsMapLayer) -> None: ...
    def layer(self, layerIndex: int) -> _core.QgsMapLayer: ...
    def currentLayer(self) -> _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[str]) -> None: ...
    def showCrs(self) -> bool: ...
    def setShowCrs(self, showCrs: bool) -> None: ...
    def allowEmptyLayer(self) -> bool: ...
    def setAllowEmptyLayer(self, allowEmpty: bool, text: str = ..., icon: QtGui.QIcon = ...) -> None: ...
    def setProject(self, project: _core.QgsProject) -> None: ...
    def excludedProviders(self) -> typing.List[str]: ...
    def setExcludedProviders(self, providers: typing.Iterable[str]) -> None: ...
    def exceptedLayerList(self) -> typing.List[_core.QgsMapLayer]: ...
    def setExceptedLayerList(self, layerList: typing.Iterable[_core.QgsMapLayer]) -> None: ...
    def filters(self) -> _core.QgsMapLayerProxyModel.Filters: ...
    def setFilters(self, filters: typing.Union[_core.QgsMapLayerProxyModel.Filters, _core.QgsMapLayerProxyModel.Filter]) -> None: ...


class QgsMapLayerConfigWidgetContext(PyQt5.sip.wrapper):

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

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


class QgsMapLayerConfigWidget(QgsPanelWidget):

    def __init__(self, layer: _core.QgsMapLayer, canvas: 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: _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: str, icon: QtGui.QIcon) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsMapLayerConfigWidgetFactory') -> None: ...

    def createWidget(self, layer: _core.QgsMapLayer, canvas: QgsMapCanvas, dockWidget: bool = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> QgsMapLayerConfigWidget: ...
    def parentPage(self) -> 'QgsMapLayerConfigWidgetFactory.ParentPage': ...
    def supportsLayerTreeGroup(self, group: _core.QgsLayerTreeGroup) -> bool: ...
    def supportsLayer(self, layer: _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: 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: _core.QgsMapLayer, canvas: QgsMapCanvas, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

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


class QgsMapMouseEvent(QtGui.QMouseEvent):

    @typing.overload
    def __init__(self, mapCanvas: QgsMapCanvas, event: QtGui.QMouseEvent) -> None: ...
    @typing.overload
    def __init__(self, mapCanvas: 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: QtGui.QWheelEvent) -> None: ...
    def mouseReleaseEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def resizeEvent(self, e: QtGui.QResizeEvent) -> None: ...
    def showEvent(self, e: QtGui.QShowEvent) -> None: ...
    def paintEvent(self, pe: 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, QtGui.QGradient]) -> None: ...
    def refresh(self) -> None: ...


class QgsMapTip(QtWidgets.QWidget):

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

    def applyFontSettings(self) -> None: ...
    def clear(self, mpMapCanvas: typing.Optional[QgsMapCanvas] = ..., msDelay: int = ...) -> None: ...
    def showMapTip(self, thepLayer: _core.QgsMapLayer, mapPosition: _core.QgsPointXY, pixelPosition: QtCore.QPoint, mpMapCanvas: 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: ...
        @typing.overload
        def __init__(self, a0: 'QgsMapTool.Flags') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __invert__(self) -> 'QgsMapTool.Flags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, canvas: QgsMapCanvas) -> None: ...

    def setToolName(self, name: str) -> None: ...
    def layer(self, id: str) -> _core.QgsMapLayer: ...
    def toCanvasCoordinates(self, point: _core.QgsPointXY) -> QtCore.QPoint: ...
    def toMapCoordinatesV2(self, layer: _core.QgsMapLayer, point: _core.QgsPoint) -> _core.QgsPoint: ...
    @typing.overload
    def toLayerCoordinates(self, layer: _core.QgsMapLayer, point: QtCore.QPoint) -> _core.QgsPointXY: ...
    @typing.overload
    def toLayerCoordinates(self, layer: _core.QgsMapLayer, point: _core.QgsPointXY) -> _core.QgsPointXY: ...
    @typing.overload
    def toLayerCoordinates(self, layer: _core.QgsMapLayer, rect: _core.QgsRectangle) -> _core.QgsRectangle: ...
    def toLayerCoordinatesV2(self, layer: _core.QgsMapLayer, point: _core.QgsPoint) -> _core.QgsPoint: ...
    def deactivated(self) -> None: ...
    def activated(self) -> None: ...
    def messageDiscarded(self) -> None: ...
    def messageEmitted(self, message: str, a1: _core.Qgis.MessageLevel = ...) -> None: ...
    @typing.overload
    def toMapCoordinates(self, point: QtCore.QPoint) -> _core.QgsPointXY: ...
    @typing.overload
    def toMapCoordinates(self, layer: _core.QgsMapLayer, point: _core.QgsPointXY) -> _core.QgsPointXY: ...
    def populateContextMenuWithEvent(self, menu: QtWidgets.QMenu, event: QgsMapMouseEvent) -> bool: ...
    def populateContextMenu(self, menu: QtWidgets.QMenu) -> None: ...
    @typing.overload
    @staticmethod
    def searchRadiusMU(context: _core.QgsRenderContext) -> float: ...
    @typing.overload
    @staticmethod
    def searchRadiusMU(canvas: QgsMapCanvas) -> float: ...
    @staticmethod
    def searchRadiusMM() -> float: ...
    def toolName(self) -> str: ...
    def canvas(self) -> QgsMapCanvas: ...
    def clean(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) -> QtWidgets.QAbstractButton: ...
    def setButton(self, button: QtWidgets.QAbstractButton) -> None: ...
    def isActive(self) -> bool: ...
    def action(self) -> QtWidgets.QAction: ...
    def setAction(self, action: QtWidgets.QAction) -> None: ...
    def canvasToolTipEvent(self, e: QtGui.QHelpEvent) -> bool: ...
    def gestureEvent(self, e: QtWidgets.QGestureEvent) -> bool: ...
    def keyReleaseEvent(self, e: QtGui.QKeyEvent) -> None: ...
    def keyPressEvent(self, e: QtGui.QKeyEvent) -> None: ...
    def wheelEvent(self, e: QtGui.QWheelEvent) -> None: ...
    def canvasReleaseEvent(self, e: QgsMapMouseEvent) -> None: ...
    def canvasPressEvent(self, e: QgsMapMouseEvent) -> None: ...
    def canvasDoubleClickEvent(self, e: QgsMapMouseEvent) -> None: ...
    def canvasMoveEvent(self, e: 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: 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) -> _core.QgsVectorLayer: ...
    def createRubberBand(self, geometryType: _core.QgsWkbTypes.GeometryType = ..., alternativeBand: bool = ...) -> 'QgsRubberBand': ...
    @staticmethod
    def digitizingFillColor() -> QtGui.QColor: ...
    @staticmethod
    def digitizingStrokeWidth() -> int: ...
    @staticmethod
    def digitizingStrokeColor() -> QtGui.QColor: ...
    def createGeometryRubberBand(self, geometryType: _core.QgsWkbTypes.GeometryType = ..., alternativeBand: bool = ...) -> QgsGeometryRubberBand: ...
    @staticmethod
    def defaultMValue() -> float: ...
    @staticmethod
    def defaultZValue() -> float: ...
    def flags(self) -> QgsMapTool.Flags: ...


class QgsMapToolAdvancedDigitizing(QgsMapToolEdit):

    def __init__(self, canvas: QgsMapCanvas, cadDockWidget: QgsAdvancedDigitizingDockWidget) -> None: ...

    def setSnapToLayerGridEnabled(self, snapToLayerGridEnabled: bool) -> None: ...
    def snapToLayerGridEnabled(self) -> bool: ...
    def cadCanvasMoveEvent(self, e: QgsMapMouseEvent) -> None: ...
    def cadCanvasReleaseEvent(self, e: QgsMapMouseEvent) -> None: ...
    def cadCanvasPressEvent(self, e: 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) -> _core.QgsMapLayer: ...
    def cadDockWidget(self) -> QgsAdvancedDigitizingDockWidget: ...
    def deactivate(self) -> None: ...
    def activate(self) -> None: ...
    def canvasMoveEvent(self, e: QgsMapMouseEvent) -> None: ...
    def canvasReleaseEvent(self, e: QgsMapMouseEvent) -> None: ...
    def canvasPressEvent(self, e: 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: ...
        @typing.overload
        def __init__(self, a0: 'QgsMapToolCapture.Capabilities') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __invert__(self) -> 'QgsMapToolCapture.Capabilities': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, canvas: QgsMapCanvas, cadDockWidget: 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) -> 'QgsRubberBand': ...
    def clean(self) -> None: ...
    def deleteTempRubberBand(self) -> None: ...
    def keyPressEvent(self, e: QtGui.QKeyEvent) -> None: ...
    def cadCanvasReleaseEvent(self, e: QgsMapMouseEvent) -> None: ...
    def cadCanvasMoveEvent(self, e: QgsMapMouseEvent) -> None: ...
    def snappingMatches(self) -> typing.List[_core.QgsPointLocator.Match]: ...
    def captureCurve(self) -> _core.QgsCompoundCurve: ...
    def clearCurve(self) -> None: ...
    def addCurve(self, c: _core.QgsCurve) -> int: ...
    def mode(self) -> 'QgsMapToolCapture.CaptureMode': ...
    def deactivate(self) -> None: ...
    def activate(self) -> None: ...
    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: QgsMapCanvas, cadDockWidget: QgsAdvancedDigitizingDockWidget, mode: QgsMapToolCapture.CaptureMode) -> None: ...



class QgsMapToolDigitizeFeature(QgsMapToolCaptureLayerGeometry):

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

    def setCheckGeometryType(self, checkGeometryType: bool) -> None: ...
    def checkGeometryType(self) -> bool: ...
    def digitizingCanceled(self) -> None: ...
    def digitizingFinished(self) -> None: ...
    def digitizingCompleted(self, feature: _core.QgsFeature) -> None: ...
    def keyPressEvent(self, e: QtGui.QKeyEvent) -> None: ...
    def deactivate(self) -> None: ...
    def activate(self) -> None: ...
    def setLayer(self, vl: _core.QgsMapLayer) -> None: ...
    def cadCanvasReleaseEvent(self, e: QgsMapMouseEvent) -> None: ...
    def supportsTechnique(self, technique: _core.Qgis.CaptureTechnique) -> bool: ...
    def capabilities(self) -> QgsMapToolCapture.Capabilities: ...


class QgsMapToolEmitPoint(QgsMapTool):

    def __init__(self, canvas: QgsMapCanvas) -> None: ...

    def canvasClicked(self, point: _core.QgsPointXY, button: QtCore.Qt.MouseButton) -> None: ...
    def canvasReleaseEvent(self, e: QgsMapMouseEvent) -> None: ...
    def canvasPressEvent(self, e: QgsMapMouseEvent) -> None: ...
    def canvasMoveEvent(self, e: QgsMapMouseEvent) -> None: ...
    def flags(self) -> QgsMapTool.Flags: ...


class QgsMapToolExtent(QgsMapTool):

    def __init__(self, canvas: QgsMapCanvas) -> None: ...

    def extentChanged(self, extent: _core.QgsRectangle) -> None: ...
    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: QgsMapMouseEvent) -> None: ...
    def canvasPressEvent(self, e: QgsMapMouseEvent) -> None: ...
    def canvasMoveEvent(self, e: 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: ...
        @typing.overload
        def __init__(self, a0: 'QgsMapToolIdentify.LayerType') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __invert__(self) -> 'QgsMapToolIdentify.LayerType': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    class IdentifyResult(PyQt5.sip.wrapper):

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

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

    def __init__(self, canvas: 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.Iterable['QgsMapToolIdentify.IdentifyResult'], layer: _core.QgsMeshLayer, point: _core.QgsPointXY, identifyContext: _core.QgsIdentifyContext = ...) -> bool: ...
    def identifyVectorLayer(self, results: typing.Iterable['QgsMapToolIdentify.IdentifyResult'], layer: _core.QgsVectorLayer, point: _core.QgsPointXY, identifyContext: _core.QgsIdentifyContext = ...) -> bool: ...
    def identifyRasterLayer(self, results: typing.Iterable['QgsMapToolIdentify.IdentifyResult'], layer: _core.QgsRasterLayer, point: _core.QgsPointXY, viewExtent: _core.QgsRectangle, mapUnitsPerPixel: float, identifyContext: _core.QgsIdentifyContext = ...) -> bool: ...
    def identifyLayer(self, results: typing.Iterable['QgsMapToolIdentify.IdentifyResult'], layer: _core.QgsMapLayer, point: _core.QgsPointXY, viewExtent: _core.QgsRectangle, mapUnitsPerPixel: float, layerType: typing.Union['QgsMapToolIdentify.LayerType', 'QgsMapToolIdentify.Type'] = ..., identifyContext: _core.QgsIdentifyContext = ...) -> bool: ...
    def changedRasterResults(self, a0: typing.Iterable['QgsMapToolIdentify.IdentifyResult']) -> None: ...
    def identifyMessage(self, a0: str) -> None: ...
    def identifyProgress(self, a0: int, a1: int) -> None: ...
    def formatChanged(self, layer: _core.QgsRasterLayer) -> None: ...
    def identifyMenu(self) -> 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: QgsMapMouseEvent) -> None: ...
    def canvasPressEvent(self, e: QgsMapMouseEvent) -> None: ...
    def canvasMoveEvent(self, e: QgsMapMouseEvent) -> None: ...
    def flags(self) -> QgsMapTool.Flags: ...


class QgsMapToolIdentifyFeature(QgsMapToolIdentify):

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

    def keyPressEvent(self, e: QtGui.QKeyEvent) -> None: ...
    @typing.overload
    def featureIdentified(self, a0: _core.QgsFeature) -> None: ...
    @typing.overload
    def featureIdentified(self, a0: int) -> None: ...
    def canvasReleaseEvent(self, e: QgsMapMouseEvent) -> None: ...
    def setLayer(self, vl: _core.QgsVectorLayer) -> None: ...


class QgsMapToolPan(QgsMapTool):

    def __init__(self, canvas: QgsMapCanvas) -> None: ...

    def panDistanceBearingChanged(self, distance: float, unit: _core.QgsUnitTypes.DistanceUnit, bearing: float) -> None: ...
    def isDragging(self) -> bool: ...
    def gestureEvent(self, e: QtWidgets.QGestureEvent) -> bool: ...
    def canvasDoubleClickEvent(self, e: QgsMapMouseEvent) -> None: ...
    def canvasReleaseEvent(self, e: QgsMapMouseEvent) -> None: ...
    def canvasMoveEvent(self, e: QgsMapMouseEvent) -> None: ...
    def canvasPressEvent(self, e: QgsMapMouseEvent) -> None: ...
    def flags(self) -> QgsMapTool.Flags: ...
    def deactivate(self) -> None: ...
    def activate(self) -> None: ...


class QgsMapToolZoom(QgsMapTool):

    def __init__(self, canvas: QgsMapCanvas, zoomOut: bool) -> None: ...

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


class QgsMenuHeader(QtWidgets.QWidget):

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

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


class QgsMenuHeaderWidgetAction(QtWidgets.QWidgetAction):

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


class QgsMessageBar(QtWidgets.QFrame):

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

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


class QgsMessageBarItem(QtWidgets.QWidget):

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

    def styleChanged(self, styleSheet: str) -> None: ...
    def dismiss(self) -> None: ...
    def getStyleSheet(self) -> str: ...
    def duration(self) -> int: ...
    def setDuration(self, duration: int) -> 'QgsMessageBarItem': ...
    def icon(self) -> QtGui.QIcon: ...
    def setIcon(self, icon: QtGui.QIcon) -> 'QgsMessageBarItem': ...
    def widget(self) -> QtWidgets.QWidget: ...
    def setWidget(self, widget: QtWidgets.QWidget) -> 'QgsMessageBarItem': ...
    def level(self) -> _core.Qgis.MessageLevel: ...
    def setLevel(self, level: _core.Qgis.MessageLevel) -> 'QgsMessageBarItem': ...
    def title(self) -> str: ...
    def setTitle(self, title: str) -> 'QgsMessageBarItem': ...
    def text(self) -> str: ...
    def setText(self, text: str) -> '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: QtCore.QObject, ev: QtCore.QEvent) -> bool: ...
    def reject(self) -> None: ...
    def closeEvent(self, e: QtGui.QCloseEvent) -> None: ...
    def logMessage(self, message: str, tag: 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: 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: str) -> None: ...
    def setMessageAsPlainText(self, msg: str) -> None: ...
    def setMessageAsHtml(self, msg: str) -> None: ...
    def setTitle(self, title: str) -> None: ...
    def showMessage(self, blocking: bool = ...) -> None: ...
    def appendMessage(self, message: str) -> None: ...
    def setMessage(self, message: 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: ...

    def titleChanged(self, title: str) -> None: ...
    def setTitle(self, title: str) -> None: ...
    def title(self) -> str: ...
    def setMapCanvas(self, canvas: 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: _core.QgsAbstractMetadataBase) -> None: ...
    def metadata(self) -> _core.QgsAbstractMetadataBase: ...
    def setMetadata(self, metadata: _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: _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: _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: str) -> None: ...
    def databasePath(self) -> str: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...


class QgsNewVectorTableDialog(QtWidgets.QDialog):

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

    def showEvent(self, event: QtGui.QShowEvent) -> None: ...
    def validationErrors(self) -> typing.List[str]: ...
    def createSpatialIndex(self) -> bool: ...
    def setFields(self, fields: _core.QgsFields) -> None: ...
    def geometryType(self) -> _core.QgsWkbTypes.Type: ...
    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.QgsWkbTypes.Type) -> None: ...
    def setTableName(self, name: str) -> None: ...
    def setSchemaName(self, name: 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: ...
        @typing.overload
        def __init__(self, a0: 'QgsNewHttpConnection.ConnectionTypes') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        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: ...
        @typing.overload
        def __init__(self, a0: 'QgsNewHttpConnection.Flags') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        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: str = ..., connectionName: 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: str, connectionName: str) -> str: ...
    def wfsSettingsKey(self, base: str, connectionName: str) -> str: ...
    def testConnectButton(self) -> 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 fields(self) -> _core.QgsFields: ...
    def layerName(self) -> str: ...
    def crs(self) -> _core.QgsCoordinateReferenceSystem: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def selectedType(self) -> _core.QgsWkbTypes.Type: ...
    @staticmethod
    def runAndCreateLayer(parent: typing.Optional[QtWidgets.QWidget] = ..., defaultCrs: _core.QgsCoordinateReferenceSystem = ...) -> _core.QgsVectorLayer: ...


class QgsNewNameDialog(QgsDialog):

    def __init__(self, source: str = ..., initial: str = ..., extensions: typing.Iterable[str] = ..., existing: typing.Iterable[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[str], existingNames: typing.Iterable[str], cs: QtCore.Qt.CaseSensitivity = ...) -> typing.List[str]: ...
    @staticmethod
    def fullNames(name: str, extensions: typing.Iterable[str]) -> typing.List[str]: ...
    def highlightText(self, text: str) -> str: ...
    def nameChanged(self) -> None: ...
    def newNameChanged(self) -> None: ...
    @staticmethod
    def exists(name: str, extensions: typing.Iterable[str], existing: typing.Iterable[str], cs: QtCore.Qt.CaseSensitivity = ...) -> bool: ...
    def name(self) -> str: ...
    def setRegularExpression(self, expression: str) -> None: ...
    def conflictingNameWarning(self) -> str: ...
    def setConflictingNameWarning(self, string: 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: 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: str) -> None: ...
    def filename(self) -> str: ...
    def selectedFileEncoding(self) -> str: ...
    def selectedFileFormat(self) -> str: ...
    def attributes(self, at: typing.Iterable[typing.Tuple[str, str]]) -> None: ...
    def selectedType(self) -> _core.QgsWkbTypes.Type: ...
    @staticmethod
    def execAndCreateLayer(parent: typing.Optional[QtWidgets.QWidget] = ..., initialPath: str = ..., crs: _core.QgsCoordinateReferenceSystem = ...) -> typing.Tuple[str, str, str]: ...
    @staticmethod
    def runAndCreateLayer(parent: typing.Optional[QtWidgets.QWidget] = ..., enc: typing.Optional[str] = ..., crs: _core.QgsCoordinateReferenceSystem = ..., initialPath: str = ...) -> str: ...


class QgsOpacityWidget(QtWidgets.QWidget):

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

    def opacityChanged(self, opacity: float) -> None: ...
    def setOpacity(self, opacity: float) -> None: ...
    def opacity(self) -> float: ...


class QgsOptionsDialogBase(QtWidgets.QDialog):

    def __init__(self, settingsKey: 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: QtGui.QPaintEvent) -> None: ...
    def showEvent(self, e: 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: str) -> None: ...
    def insertPage(self, title: str, tooltip: str, icon: QtGui.QIcon, widget: QtWidgets.QWidget, before: str, path: typing.Iterable[str] = ...) -> None: ...
    def addPage(self, title: str, tooltip: str, icon: QtGui.QIcon, widget: QtWidgets.QWidget, path: typing.Iterable[str] = ...) -> None: ...
    def setCurrentPage(self, page: str) -> None: ...
    def iconOnly(self) -> bool: ...
    def resizeAlltabs(self, index: int) -> None: ...
    def restoreLastPage(self) -> None: ...
    def restoreOptionsBaseUi(self, title: str = ...) -> None: ...
    def setSettings(self, settings: _core.QgsSettings) -> None: ...
    def initOptionsBase(self, restoreUi: bool = ..., title: str = ...) -> None: ...


class QgsOptionsDialogHighlightWidget(QtCore.QObject):

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

    def reset(self) -> None: ...
    def highlightText(self, text: str) -> bool: ...
    def searchText(self, text: str) -> bool: ...
    def eventFilter(self, obj: QtCore.QObject, event: QtCore.QEvent) -> bool: ...
    def widget(self) -> QtWidgets.QWidget: ...
    def searchHighlight(self, text: str) -> bool: ...
    def isValid(self) -> bool: ...
    @staticmethod
    def createWidget(widget: QtWidgets.QWidget) -> 'QgsOptionsDialogHighlightWidget': ...


class QgsOptionsDialogHighlightLabel(QgsOptionsDialogHighlightWidget):

    def __init__(self, label: QtWidgets.QLabel) -> None: ...

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


class QgsOptionsDialogHighlightCheckBox(QgsOptionsDialogHighlightWidget):

    def __init__(self, checkBox: QtWidgets.QCheckBox) -> None: ...

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


class QgsOptionsDialogHighlightButton(QgsOptionsDialogHighlightWidget):

    def __init__(self, button: QtWidgets.QAbstractButton) -> None: ...

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


class QgsOptionsDialogHighlightGroupBox(QgsOptionsDialogHighlightWidget):

    def __init__(self, groupBox: QtWidgets.QGroupBox) -> None: ...

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


class QgsOptionsDialogHighlightTree(QgsOptionsDialogHighlightWidget):

    def __init__(self, treeView: QtWidgets.QTreeView) -> None: ...

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


class QgsOptionsDialogHighlightTable(QgsOptionsDialogHighlightWidget):

    def __init__(self, tableView: QtWidgets.QTableView) -> None: ...

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


class QgsOptionsPageWidget(QtWidgets.QWidget):

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

    def registerHighlightWidget(self, highlightWidget: QgsOptionsDialogHighlightWidget) -> 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: str, icon: QtGui.QIcon) -> None: ...

    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> QgsOptionsPageWidget: ...
    def path(self) -> typing.List[str]: ...
    def pagePositionHint(self) -> str: ...
    def setTitle(self, title: 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: _core.QgsVectorLayer, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def eventFilter(self, obj: QtCore.QObject, e: 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: str
        label = ... # type: str

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

    def __init__(self, service: 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: QtWidgets.QTreeWidgetItem) -> None: ...
    def descriptionForAuthId(self, authId: 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: str) -> None: ...
    def showError(self, title: str, format: str, error: str) -> None: ...
    def setMapCanvas(self, mapCanvas: QgsMapCanvas) -> None: ...
    def reset(self) -> None: ...
    def refresh(self) -> None: ...


class QgsPanelWidgetWrapper(QgsPanelWidget):

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

    def widget(self) -> QtWidgets.QWidget: ...


class QgsPanelWidgetStack(QtWidgets.QWidget):

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

    def keyPressEvent(self, e: QtGui.QKeyEvent) -> None: ...
    def mouseReleaseEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def closePanel(self, panel: QgsPanelWidget) -> None: ...
    def showPanel(self, panel: QgsPanelWidget) -> None: ...
    def acceptAllPanels(self) -> None: ...
    def acceptCurrentPanel(self) -> None: ...
    def minimumSizeHint(self) -> QtCore.QSize: ...
    def sizeHint(self) -> QtCore.QSize: ...
    def currentPanel(self) -> QgsPanelWidget: ...
    def clear(self) -> None: ...
    def takeMainPanel(self) -> QgsPanelWidget: ...
    def mainPanel(self) -> QgsPanelWidget: ...
    def setMainPanel(self, panel: 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: 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: str, level: _core.Qgis.MessageLevel = ..., duration: int = ...) -> None: ...
    def showPluginManager(self, tabIndex: int = ...) -> None: ...
    def addToRepositoryList(self, repository: typing.Dict[str, str]) -> None: ...
    def clearRepositoryList(self) -> None: ...
    def pluginMetadata(self, key: str) -> typing.Dict[str, str]: ...
    def reloadModel(self) -> None: ...
    def addPluginMetadata(self, metadata: typing.Dict[str, str]) -> None: ...
    def clearPythonPluginMetadata(self) -> None: ...


class QgsPointCloudAttributeComboBox(QtWidgets.QComboBox):

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

    def setAttribute(self, name: str) -> None: ...
    def setLayer(self, layer: _core.QgsMapLayer) -> None: ...
    def attributeChanged(self, name: str) -> None: ...
    def attributes(self) -> _core.QgsPointCloudAttributeCollection: ...
    def setAttributes(self, attributes: _core.QgsPointCloudAttributeCollection) -> None: ...
    def layer(self) -> _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: str) -> None: ...
    def subsetString(self) -> str: ...


class QgsPointCloudQueryBuilder(QgsSubsetStringEditorInterface):

    def __init__(self, layer: _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: str) -> None: ...
    def subsetString(self) -> str: ...
    def showEvent(self, event: QtGui.QShowEvent) -> None: ...


class QgsPresetColorRampWidget(QgsPanelWidget):

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

    def changed(self) -> None: ...
    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: ...

    def changed(self) -> None: ...
    def buttonBox(self) -> 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: QtCore.QObject) -> None: ...

    def draw(self, painter: 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: ...

    def hasValidSelectionChanged(self, isValid: bool) -> None: ...
    def crsDoubleClicked(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def crsChanged(self) -> None: ...
    def setOgcWmsCrsFilter(self, crsFilter: typing.Iterable[str]) -> None: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def hasValidSelection(self) -> bool: ...
    def setNotSetText(self, text: str, description: str = ...) -> None: ...
    def showNoCrs(self) -> bool: ...
    def setShowNoCrs(self, show: bool) -> None: ...
    def setMessage(self, message: 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[str]) -> None: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def hasValidSelection(self) -> bool: ...
    def setRequireValidSelection(self) -> None: ...
    def setNotSetText(self, text: str, description: str = ...) -> None: ...
    def showNoProjection(self) -> bool: ...
    def setShowNoProjection(self, show: bool) -> None: ...
    def showNoCrsForLayerMessage(self) -> None: ...
    def setMessage(self, message: str) -> None: ...
    def crs(self) -> _core.QgsCoordinateReferenceSystem: ...


class QgsProjectionSelectionTreeWidget(QtWidgets.QWidget):

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

    def resizeEvent(self, event: QtGui.QResizeEvent) -> None: ...
    def showEvent(self, event: QtGui.QShowEvent) -> None: ...
    def hasValidSelectionChanged(self, isValid: bool) -> None: ...
    def projectionDoubleClicked(self) -> None: ...
    def initialized(self) -> None: ...
    def crsSelected(self) -> None: ...
    def pushProjectionToFront(self) -> None: ...
    def setOgcWmsCrsFilter(self, crsFilter: typing.Iterable[str]) -> None: ...
    def previewRect(self) -> _core.QgsRectangle: ...
    def setPreviewRect(self, rect: _core.QgsRectangle) -> None: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def hasValidSelection(self) -> bool: ...
    def showBoundsMap(self) -> bool: ...
    def setNotSetText(self, text: 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: QtGui.QDropEvent) -> None: ...
    def dragLeaveEvent(self, event: QtGui.QDragLeaveEvent) -> None: ...
    def dragEnterEvent(self, event: QtGui.QDragEnterEvent) -> None: ...
    def selectCrs(self) -> None: ...
    def setLayerCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def setCrs(self, crs: _core.QgsCoordinateReferenceSystem) -> None: ...
    def cleared(self) -> None: ...
    def crsChanged(self, a0: _core.QgsCoordinateReferenceSystem) -> None: ...
    def setFilter(self, crses: typing.Iterable[_core.QgsCoordinateReferenceSystem]) -> None: ...
    def dialogTitle(self) -> str: ...
    def setDialogTitle(self, title: str) -> None: ...
    def sourceEnsemble(self) -> str: ...
    def setSourceEnsemble(self, ensemble: str) -> None: ...
    def setShowAccuracyWarnings(self, show: bool) -> None: ...
    def showAccuracyWarnings(self) -> bool: ...
    def setMessage(self, text: str) -> None: ...
    def setNotSetText(self, text: 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: 'QgsProviderGuiRegistry') -> None: ...
    def unregisterProjectStorage(self, storage: QgsProjectStorageGuiProvider) -> None: ...
    def registerProjectStorage(self, storage: QgsProjectStorageGuiProvider) -> None: ...
    def projectStorages(self) -> typing.List[QgsProjectStorageGuiProvider]: ...
    def projectStorageFromUri(self, uri: str) -> QgsProjectStorageGuiProvider: ...
    def projectStorageFromType(self, type: str) -> 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: _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: QtGui.QMouseEvent) -> None: ...
    def createAuxiliaryField(self) -> None: ...
    def activated(self, isActive: bool) -> None: ...
    def changed(self) -> None: ...
    def menuActionTriggered(self, action: QtWidgets.QAction) -> None: ...
    def aboutToShowMenu(self) -> None: ...
    def setActive(self, active: bool) -> None: ...
    def updateFieldLists(self) -> None: ...
    def registerLinkedWidget(self, widget: QtWidgets.QWidget) -> None: ...
    def registerExpressionContextGenerator(self, generator: _core.QgsExpressionContextGenerator) -> None: ...
    def registerExpressionWidget(self, widget: QtWidgets.QWidget) -> None: ...
    def registerVisibleWidget(self, widget: QtWidgets.QWidget, natural: bool = ...) -> None: ...
    def registerEnabledWidget(self, widget: QtWidgets.QWidget, natural: bool = ...) -> None: ...
    def registerCheckedWidget(self, widget: QtWidgets.QWidget, natural: bool = ...) -> None: ...
    def vectorLayer(self) -> _core.QgsVectorLayer: ...
    def setVectorLayer(self, layer: _core.QgsVectorLayer) -> None: ...
    def setUsageInfo(self, info: 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: str, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def connectionChanged(self, connection: str) -> None: ...
    def setConnection(self, connection: str) -> None: ...
    def currentConnectionUri(self) -> str: ...
    def currentConnection(self) -> str: ...
    def allowEmptyConnection(self) -> bool: ...
    def setAllowEmptyConnection(self, allowEmpty: bool) -> None: ...
    def setProvider(self, provider: str) -> None: ...


class QgsProviderGuiMetadata(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self, key: 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: QtWidgets.QMainWindow) -> None: ...


class QgsProviderGuiRegistry(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self, pluginPath: 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: str) -> typing.List['QgsProviderSourceWidgetProvider']: ...
    def subsetStringEditorProviders(self, providerKey: str) -> typing.List['QgsSubsetStringEditorProvider']: ...
    def projectStorageGuiProviders(self, providerKey: str) -> typing.List[QgsProjectStorageGuiProvider]: ...
    def sourceSelectProviders(self, providerKey: str) -> typing.List['QgsSourceSelectProvider']: ...
    def dataItemGuiProviders(self, providerKey: str) -> typing.List[QgsDataItemGuiProvider]: ...
    def registerGuis(self, widget: QtWidgets.QMainWindow) -> None: ...
    def providerMetadata(self, providerKey: str) -> QgsProviderGuiMetadata: ...
    def providerList(self) -> typing.List[str]: ...


class QgsProviderSourceWidget(QtWidgets.QWidget):

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

    def validChanged(self, isValid: bool) -> None: ...
    def mapCanvas(self) -> QgsMapCanvas: ...
    def setMapCanvas(self, mapCanvas: QgsMapCanvas) -> None: ...
    def sourceUri(self) -> str: ...
    def setSourceUri(self, uri: 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: _core.QgsMapLayer, parent: typing.Optional[QtWidgets.QWidget] = ...) -> QgsProviderSourceWidget: ...
    def canHandleLayer(self, layer: _core.QgsMapLayer) -> bool: ...
    def name(self) -> str: ...
    def providerKey(self) -> str: ...


class QgsProviderSourceWidgetProviderRegistry(PyQt5.sip.wrapper):

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

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


class QgsProxyStyle(QtWidgets.QProxyStyle):

    def __init__(self, parent: QtWidgets.QWidget) -> None: ...


class QgsQueryBuilder(QgsSubsetStringEditorInterface):

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

    def setDatasourceDescription(self, uri: 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: str) -> bool: ...
    @staticmethod
    def saveQueryToFile(subset: str) -> bool: ...
    def codeEditorWidget(self) -> 'QgsCodeEditor': ...
    def setSubsetString(self, subsetString: str) -> None: ...
    def subsetString(self) -> str: ...
    def setSql(self, sqlStatement: str) -> None: ...
    def sql(self) -> str: ...
    def showEvent(self, event: 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: ...

    def firstResultBatchFetched(self) -> None: ...
    def createSqlVectorLayer(self, providerKey: str, connectionUri: str, options: _core.QgsAbstractDatabaseProviderConnection.SqlVectorLayerOptions) -> None: ...
    def tokensReady(self, tokens: typing.Iterable[str]) -> None: ...
    def showError(self, title: str, message: str, isSqlError: bool = ...) -> None: ...
    def executeQuery(self) -> None: ...
    def notify(self, title: str, text: str, level: _core.Qgis.MessageLevel = ...) -> None: ...
    def setQuery(self, sql: str) -> None: ...
    def setConnection(self, connection: _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: ...

    def rangeLimitsChanged(self, minimum: int, maximum: int) -> None: ...
    def rangeChanged(self, minimum: int, maximum: int) -> None: ...
    def event(self, event: 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: QtGui.QKeyEvent) -> None: ...
    def mouseReleaseEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def paintEvent(self, event: 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: str = ..., type: 'QgsRasterFormatSaveOptionsWidget.Type' = ..., provider: str = ...) -> None: ...

    def optionsChanged(self) -> None: ...
    def showEvent(self, event: 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.QgsRaster.RasterPyramidsFormat) -> None: ...
    def setType(self, type: 'QgsRasterFormatSaveOptionsWidget.Type' = ...) -> None: ...
    def setOptions(self, options: str) -> None: ...
    def options(self) -> typing.List[str]: ...
    def setRasterFileName(self, file: str) -> None: ...
    def setRasterLayer(self, rasterLayer: _core.QgsRasterLayer) -> None: ...
    def setProvider(self, provider: str) -> None: ...
    def setFormat(self, format: 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: _core.QgsRasterLayer, sourceProvider: _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.QgsRaster.RasterPyramidsFormat: ...
    def pyramidsResamplingMethod(self) -> str: ...
    def buildPyramidsFlag(self) -> _core.QgsRaster.RasterBuildPyramids: ...
    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: str = ...) -> None: ...

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


class QgsRatioLockButton(QtWidgets.QToolButton):

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

    def resizeEvent(self, event: QtGui.QResizeEvent) -> None: ...
    def showEvent(self, e: QtGui.QShowEvent) -> None: ...
    def changeEvent(self, e: QtCore.QEvent) -> None: ...
    def lockChanged(self, locked: bool) -> None: ...
    def resetRatio(self) -> None: ...
    def setHeightSpinBox(self, widget: QtWidgets.QDoubleSpinBox) -> None: ...
    def setWidthSpinBox(self, widget: 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: 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: 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: str, newValue: typing.Any) -> None: ...
    def relatedFeaturesChanged(self) -> None: ...
    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: 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: ...
        @typing.overload
        def __init__(self, a0: 'QgsRelationEditorWidget.Buttons') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        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: 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) -> 'QgsIFeatureSelectionManager': ...
    def viewMode(self) -> 'QgsDualView.ViewMode': ...
    def setViewMode(self, mode: 'QgsDualView.ViewMode') -> None: ...


class QgsAbstractRelationEditorConfigWidget(QtWidgets.QWidget):

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

    def nmRelation(self) -> _core.QgsRelation: ...
    def setNmRelation(self, nmRelation: _core.QgsRelation) -> None: ...
    def relation(self) -> _core.QgsRelation: ...
    def layer(self) -> _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: 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: QtWidgets.QWidget) -> QgsAbstractRelationEditorConfigWidget: ...
    def create(self, config: typing.Dict[str, typing.Any], parent: typing.Optional[QtWidgets.QWidget] = ...) -> 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: str) -> None: ...
    def createConfigWidget(self, widgetType: str, relation: _core.QgsRelation, parent: typing.Optional[QtWidgets.QWidget] = ...) -> QgsAbstractRelationEditorConfigWidget: ...
    def create(self, widgetType: str, config: typing.Dict[str, typing.Any], parent: typing.Optional[QtWidgets.QWidget] = ...) -> QgsAbstractRelationEditorWidget: ...
    def factories(self) -> typing.Any: ...
    def relationWidgetNames(self) -> typing.List[str]: ...
    def removeRelationWidget(self, widgetType: str) -> None: ...
    def addRelationWidget(self, widgetFactory: QgsAbstractRelationEditorWidgetFactory) -> None: ...


class QgsRichTextEditor(QtWidgets.QWidget):

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

    def focusInEvent(self, event: QtGui.QFocusEvent) -> None: ...
    def textChanged(self) -> None: ...
    def clearSource(self) -> None: ...
    def setText(self, text: str) -> None: ...
    def setTextCursor(self, cursor: QtGui.QTextCursor) -> None: ...
    def textCursor(self) -> QtGui.QTextCursor: ...
    def document(self) -> 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: QgsMapCanvas, geometryType: _core.QgsWkbTypes.GeometryType = ...) -> None: ...

    def updateRect(self) -> None: ...
    @typing.overload
    def drawShape(self, p: QtGui.QPainter, pts: typing.Iterable[typing.Union[QtCore.QPointF, QtCore.QPoint]]) -> None: ...
    @typing.overload
    def drawShape(self, p: QtGui.QPainter, rings: typing.Iterable[QtGui.QPolygonF]) -> None: ...
    def paint(self, p: QtGui.QPainter) -> None: ...
    def setSymbol(self, symbol: _core.QgsSymbol) -> None: ...
    def symbol(self) -> _core.QgsSymbol: ...
    def updatePosition(self) -> None: ...
    def asGeometry(self) -> _core.QgsGeometry: ...
    def getPoint(self, i: int, j: int = ..., ringIndex: int = ...) -> _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: _core.QgsMapLayer, doUpdate: bool = ...) -> None: ...
    @typing.overload
    def addGeometry(self, geometry: _core.QgsGeometry, crs: _core.QgsCoordinateReferenceSystem = ..., doUpdate: bool = ...) -> None: ...
    def copyPointsFrom(self, other: 'QgsRubberBand') -> None: ...
    def setToCanvasRectangle(self, rect: QtCore.QRect) -> None: ...
    @typing.overload
    def setToGeometry(self, geom: _core.QgsGeometry, layer: _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.QgsWkbTypes.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: 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, QtGui.QGradient]) -> None: ...
    def strokeColor(self) -> QtGui.QColor: ...
    def setStrokeColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def fillColor(self) -> QtGui.QColor: ...
    def setFillColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> 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[str] = ...) -> None: ...
    def scaleChanged(self, scale: float) -> None: ...
    def allowNull(self) -> bool: ...
    def setAllowNull(self, allowNull: bool) -> None: ...
    @staticmethod
    def toDouble(string: str) -> typing.Tuple[float, bool]: ...
    @staticmethod
    def toString(scale: float) -> str: ...
    def minScale(self) -> float: ...
    def isNull(self) -> bool: ...
    def scale(self) -> float: ...
    def setScaleString(self, string: str) -> bool: ...
    def scaleString(self) -> str: ...


class QgsScaleRangeWidget(QtWidgets.QWidget):

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

    def rangeChanged(self, min: float, max: float) -> None: ...
    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: QgsMapCanvas) -> None: ...


class QgsScaleVisibilityDialog(QtWidgets.QDialog):

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., title: 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: ...

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


class QgsScreenHelper(QtCore.QObject):

    def __init__(self, parent: QtWidgets.QWidget) -> None: ...

    def eventFilter(self, watched: QtCore.QObject, event: QtCore.QEvent) -> bool: ...
    def availableGeometryChanged(self, geometry: QtCore.QRect) -> None: ...
    def screenDpiChanged(self, dpi: float) -> None: ...
    def availableGeometry(self) -> QtCore.QRect: ...
    def screenDpi(self) -> float: ...
    def windowHandle(self) -> QtGui.QWindow: ...
    def screen(self) -> QtGui.QScreen: ...


class QgsScrollArea(QtWidgets.QScrollArea):

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

    def resizeEvent(self, event: QtGui.QResizeEvent) -> None: ...
    def wheelEvent(self, event: 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: _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: 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: _core.QgsVectorLayer, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> QgsSubsetStringEditorInterface: ...
    def canHandleLayerStorageType(self, layer: _core.QgsVectorLayer) -> bool: ...
    def canHandleLayer(self, layer: _core.QgsVectorLayer) -> bool: ...
    def name(self) -> str: ...
    def providerKey(self) -> str: ...


class QgsSubsetStringEditorProviderRegistry(PyQt5.sip.wrapper):

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

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


class QgsShortcutsManager(QtCore.QObject):

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

    def settingsPath(self) -> str: ...
    def shortcutByName(self, name: str) -> QtWidgets.QShortcut: ...
    def actionByName(self, name: str) -> QtWidgets.QAction: ...
    def shortcutForSequence(self, sequence: typing.Union[QtGui.QKeySequence, QtGui.QKeySequence.StandardKey, str, int]) -> QtWidgets.QShortcut: ...
    def actionForSequence(self, sequence: typing.Union[QtGui.QKeySequence, QtGui.QKeySequence.StandardKey, str, int]) -> QtWidgets.QAction: ...
    def objectForSequence(self, sequence: typing.Union[QtGui.QKeySequence, QtGui.QKeySequence.StandardKey, str, int]) -> QtCore.QObject: ...
    def setObjectKeySequence(self, object: QtCore.QObject, sequence: str) -> bool: ...
    @typing.overload
    def setKeySequence(self, name: str, sequence: str) -> bool: ...
    @typing.overload
    def setKeySequence(self, action: QtWidgets.QAction, sequence: str) -> bool: ...
    @typing.overload
    def setKeySequence(self, shortcut: QtWidgets.QShortcut, sequence: str) -> bool: ...
    @typing.overload
    def defaultKeySequence(self, action: QtWidgets.QAction) -> str: ...
    @typing.overload
    def defaultKeySequence(self, shortcut: QtWidgets.QShortcut) -> str: ...
    def objectDefaultKeySequence(self, object: 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: QtWidgets.QShortcut) -> bool: ...
    def unregisterAction(self, action: QtWidgets.QAction) -> bool: ...
    def registerShortcut(self, shortcut: QtWidgets.QShortcut, defaultSequence: str = ...) -> bool: ...
    def registerAction(self, action: QtWidgets.QAction, defaultShortcut: str = ...) -> bool: ...
    def registerAllChildShortcuts(self, object: QtCore.QObject, recursive: bool = ...) -> None: ...
    def registerAllChildActions(self, object: QtCore.QObject, recursive: bool = ...) -> None: ...
    def registerAllChildren(self, object: QtCore.QObject, recursive: bool = ...) -> 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: QtGui.QPaintEvent) -> None: ...
    def valueChanged(self, a0: typing.Any) -> None: ...
    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: 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: 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: QtGui.QPainter) -> None: ...


class QgsSourceSelectProvider(PyQt5.sip.wrapper):

    class Ordering(int):
        OrderLocalProvider = ... # type: QgsSourceSelectProvider.Ordering
        OrderDatabaseProvider = ... # type: QgsSourceSelectProvider.Ordering
        OrderRemoteProvider = ... # type: QgsSourceSelectProvider.Ordering
        OrderGeoCmsProvider = ... # 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 = ...) -> 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: ...

    def providerRemoved(self, name: str) -> None: ...
    def providerAdded(self, name: str) -> None: ...
    def createSelectionWidget(self, name: str, parent: QtWidgets.QWidget, fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType], widgetMode: _core.QgsProviderRegistry.WidgetMode) -> QgsAbstractDataSourceWidget: ...
    def providersByKey(self, providerKey: str) -> typing.List[QgsSourceSelectProvider]: ...
    def providerByName(self, name: str) -> QgsSourceSelectProvider: ...
    def initializeFromProviderGuiRegistry(self, providerGuiRegistry: QgsProviderGuiRegistry) -> None: ...
    def removeProvider(self, provider: QgsSourceSelectProvider) -> bool: ...
    def addProvider(self, provider: 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: QtCore.QEvent) -> None: ...
    def setParentStatusBar(self, statusBar: QtWidgets.QStatusBar) -> None: ...
    def clearMessage(self) -> None: ...
    def showMessage(self, message: str, timeout: int = ...) -> None: ...
    def currentMessage(self) -> str: ...
    def removeWidget(self, widget: QtWidgets.QWidget) -> None: ...
    def addPermanentWidget(self, widget: QtWidgets.QWidget, stretch: int = ..., anchor: 'QgsStatusBar.Anchor' = ...) -> None: ...


class QgsStyleItemsListWidget(QtWidgets.QWidget):

    def __init__(self, parent: QtWidgets.QWidget) -> None: ...

    def saveEntity(self) -> None: ...
    def selectionChangedWithStylePath(self, name: str, type: _core.QgsStyle.StyleEntity, stylePath: str) -> None: ...
    def selectionChanged(self, name: str, type: _core.QgsStyle.StyleEntity) -> None: ...
    def showEvent(self, event: QtGui.QShowEvent) -> None: ...
    def currentEntityType(self) -> _core.QgsStyle.StyleEntity: ...
    def currentItemName(self) -> str: ...
    def currentTagFilter(self) -> str: ...
    def setLayerType(self, type: _core.QgsWkbTypes.GeometryType) -> None: ...
    def setSymbolType(self, type: _core.Qgis.SymbolType) -> None: ...
    def setEntityType(self, type: _core.QgsStyle.StyleEntity) -> None: ...
    def setStyle(self, style: _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: str
        layerId = ... # type: int
        layerName = ... # type: str
        type = ... # type: str

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

    def __init__(self, providerType: 'QgsSublayersDialog.ProviderType', name: str, parent: typing.Optional[QtWidgets.QWidget] = ..., fl: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ..., dataSourceUri: 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: ...

    def substitutionsChanged(self, substitutions: _core.QgsStringReplacementCollection) -> None: ...
    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: str = ...) -> None: ...

    def wheelEvent(self, event: QtGui.QWheelEvent) -> None: ...
    def dropEvent(self, e: QtGui.QDropEvent) -> None: ...
    def dragLeaveEvent(self, e: QtGui.QDragLeaveEvent) -> None: ...
    def dragEnterEvent(self, e: QtGui.QDragEnterEvent) -> None: ...
    def keyPressEvent(self, e: QtGui.QKeyEvent) -> None: ...
    def mouseReleaseEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def resizeEvent(self, event: QtGui.QResizeEvent) -> None: ...
    def showEvent(self, e: QtGui.QShowEvent) -> None: ...
    def changeEvent(self, e: QtCore.QEvent) -> None: ...
    def changed(self) -> None: ...
    def setToNull(self) -> None: ...
    def isNull(self) -> bool: ...
    def showNull(self) -> bool: ...
    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, QtGui.QGradient]) -> None: ...
    def setSymbol(self, symbol: _core.QgsSymbol) -> None: ...
    def registerExpressionContextGenerator(self, generator: _core.QgsExpressionContextGenerator) -> None: ...
    def setLayer(self, layer: _core.QgsVectorLayer) -> None: ...
    def layer(self) -> _core.QgsVectorLayer: ...
    def messageBar(self) -> QgsMessageBar: ...
    def setMessageBar(self, bar: QgsMessageBar) -> None: ...
    def setMapCanvas(self, canvas: QgsMapCanvas) -> None: ...
    def mapCanvas(self) -> QgsMapCanvas: ...
    def symbol(self) -> _core.QgsSymbol: ...
    def dialogTitle(self) -> str: ...
    def setDialogTitle(self, title: 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: QtGui.QWheelEvent) -> None: ...


class QgsTableWidgetItem(QtWidgets.QTableWidgetItem):

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

    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: QtWidgets.QWidget) -> int: ...
    def setTabVisible(self, tab: QtWidgets.QWidget, visible: bool) -> None: ...
    def showTab(self, tab: QtWidgets.QWidget) -> None: ...
    def hideTab(self, tab: QtWidgets.QWidget) -> None: ...


class QgsTaskManagerWidget(QtWidgets.QWidget):

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


class QgsTemporalControllerWidget(QgsPanelWidget):

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

    def keyPressEvent(self, e: QtGui.QKeyEvent) -> None: ...
    def applySizeConstraintsToStack(self) -> bool: ...
    def temporalController(self) -> _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: QgsMapCanvas, parent: QtWidgets.QWidget, mode: 'QgsTextFormatWidget.Mode', layer: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...

    def updatePreview(self) -> None: ...
    def saveFormat(self) -> None: ...
    def setFormatFromStyle(self, name: str, type: _core.QgsStyle.StyleEntity, stylePath: str) -> None: ...
    def updatePlacementWidgets(self) -> None: ...
    def updateLinePlacementOptions(self) -> None: ...
    def labelGeometryType(self) -> _core.QgsWkbTypes.GeometryType: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def enableDataDefinedAlignment(self, enable: bool) -> None: ...
    def setPreviewBackground(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def updateWidgetForFormat(self, format: _core.QgsTextFormat) -> None: ...
    def auxiliaryFieldCreated(self) -> None: ...
    def widgetChanged(self) -> None: ...
    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) -> 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.QgsUnitTypes.DistanceUnit: ...
    def setMapUnits(self, unit: _core.QgsUnitTypes.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: QtGui.QPaintEvent) -> None: ...


class QgsTreeWidgetItem(QtWidgets.QTreeWidgetItem):

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

    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: QtWidgets.QTreeWidget, type: int = ...) -> None: ...

    def itemEdited(self, item: QtWidgets.QTreeWidgetItem, column: int) -> None: ...
    def setData(self, column: int, role: int, value: typing.Any) -> None: ...


class QgsMapUnitScaleWidget(QgsPanelWidget):

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

    def mapUnitScaleChanged(self, scale: _core.QgsMapUnitScale) -> None: ...
    def setMapCanvas(self, canvas: 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: 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: ...

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


class QgsUserInputWidget(QgsFloatingWidget):

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

    def paintEvent(self, event: QtGui.QPaintEvent) -> None: ...
    def addUserInputWidget(self, widget: 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: QtWidgets.QWidget) -> None: ...

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


class QgsVariableEditorWidget(QtWidgets.QWidget):

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

    def showEvent(self, event: QtGui.QShowEvent) -> None: ...
    def scopeChanged(self) -> None: ...
    def reloadContext(self) -> None: ...
    def variablesInActiveScope(self) -> typing.Dict[str, typing.Any]: ...
    def settingGroup(self) -> str: ...
    def setSettingGroup(self, group: str) -> None: ...
    def editableScope(self) -> _core.QgsExpressionContextScope: ...
    def setEditableScopeIndex(self, scopeIndex: int) -> None: ...
    def context(self) -> _core.QgsExpressionContext: ...
    def setContext(self, context: _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: QgsMapCanvas) -> None: ...

    def updatePosition(self) -> None: ...
    def boundingRect(self) -> QtCore.QRectF: ...
    def paint(self, p: 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, QtGui.QGradient]) -> None: ...
    def color(self) -> QtGui.QColor: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> 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: QtCore.QObject, e: 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') -> QtWidgets.QWidget: ...


class QgsAnnotationItemCommonPropertiesWidget(QtWidgets.QWidget):

    def __init__(self, parent: QtWidgets.QWidget) -> None: ...

    def itemChanged(self) -> None: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def updateItem(self, item: _core.QgsAnnotationItem) -> None: ...
    def setItem(self, item: _core.QgsAnnotationItem) -> None: ...


class QgsAnnotationItemAbstractGuiMetadata(PyQt5.sip.wrapper):

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

    def newItemAddedToLayer(self, item: _core.QgsAnnotationItem, layer: _core.QgsAnnotationLayer) -> None: ...
    def createItem(self) -> _core.QgsAnnotationItem: ...
    def createMapTool(self, canvas: QgsMapCanvas, cadDockWidget: QgsAdvancedDigitizingDockWidget) -> 'QgsCreateAnnotationItemMapToolInterface': ...
    def createItemWidget(self, item: _core.QgsAnnotationItem) -> '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: str
    name = ... # type: str

    @typing.overload
    def __init__(self, id: str = ..., name: 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: ...

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


class QgsAnnotationItemBaseWidget(QgsPanelWidget):

    def __init__(self, parent: QtWidgets.QWidget) -> None: ...

    def setNewItem(self, item: _core.QgsAnnotationItem) -> bool: ...
    def itemChanged(self) -> None: ...
    def focusDefaultWidget(self) -> None: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def setItem(self, item: _core.QgsAnnotationItem) -> bool: ...
    def updateItem(self, item: _core.QgsAnnotationItem) -> None: ...
    def createItem(self) -> _core.QgsAnnotationItem: ...


class QgsCreateAnnotationItemMapToolHandler(QtCore.QObject):

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

    def itemCreated(self) -> None: ...
    def pushCreatedItem(self, item: _core.QgsAnnotationItem) -> None: ...
    def targetLayer(self) -> _core.QgsAnnotationLayer: ...
    def takeCreatedItem(self) -> _core.QgsAnnotationItem: ...


class QgsCreateAnnotationItemMapToolInterface(PyQt5.sip.wrapper):

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

    def mapTool(self) -> QgsMapTool: ...
    def handler(self) -> QgsCreateAnnotationItemMapToolHandler: ...


class QgsAttributeTableDelegate(QtWidgets.QItemDelegate):

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

    def actionColumnItemPainted(self, index: QtCore.QModelIndex) -> None: ...
    def setFeatureSelectionModel(self, featureSelectionModel: 'QgsFeatureSelectionModel') -> None: ...
    def setEditorData(self, editor: QtWidgets.QWidget, index: QtCore.QModelIndex) -> None: ...
    def setModelData(self, editor: QtWidgets.QWidget, model: QtCore.QAbstractItemModel, index: QtCore.QModelIndex) -> None: ...
    def paint(self, painter: QtGui.QPainter, option: QtWidgets.QStyleOptionViewItem, index: QtCore.QModelIndex) -> None: ...
    def createEditor(self, parent: QtWidgets.QWidget, option: QtWidgets.QStyleOptionViewItem, index: QtCore.QModelIndex) -> 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

    def __init__(self, canvas: QgsMapCanvas, sourceModel: '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: ...
    def filterError(self, errorMessage: str) -> None: ...
    def visibleReloaded(self) -> None: ...
    def featuresFiltered(self) -> None: ...
    def sortColumnChanged(self, column: int, order: QtCore.Qt.SortOrder) -> None: ...
    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) -> QgsMapCanvas: ...
    def sortExpression(self) -> str: ...
    @typing.overload
    def sort(self, column: int, order: QtCore.Qt.SortOrder = ...) -> None: ...
    @typing.overload
    def sort(self, expression: 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) -> 'QgsAttributeTableModel': ...
    def layerCache(self) -> _core.QgsVectorLayerCache: ...
    def layer(self) -> _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: '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: _core.QgsVectorLayerCache, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

    def finished(self) -> None: ...
    def modelChanged(self) -> None: ...
    def fieldConditionalStyleChanged(self, fieldName: str) -> None: ...
    def loadLayer(self) -> None: ...
    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: str, cacheIndex: int = ...) -> None: ...
    def prefetchColumnData(self, column: int) -> None: ...
    def feature(self, idx: QtCore.QModelIndex) -> _core.QgsFeature: ...
    def executeMapLayerAction(self, action: QgsMapLayerAction, idx: QtCore.QModelIndex) -> None: ...
    def executeAction(self, action: QtCore.QUuid, idx: QtCore.QModelIndex) -> None: ...
    def layerCache(self) -> _core.QgsVectorLayerCache: ...
    def layer(self) -> _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: ...
    def finished(self) -> None: ...
    def columnResized(self, column: int, width: int) -> None: ...
    def willShowContextMenu(self, menu: QtWidgets.QMenu, atIndex: QtCore.QModelIndex) -> None: ...
    def closeEvent(self, event: QtGui.QCloseEvent) -> None: ...
    def contextMenuEvent(self, event: QtGui.QContextMenuEvent) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def mouseMoveEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mouseReleaseEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def scrollToFeature(self, fid: int, column: int = ...) -> None: ...
    def selectedFeaturesIds(self) -> typing.Any: ...
    def setAttributeTableConfig(self, config: _core.QgsAttributeTableConfig) -> None: ...
    def eventFilter(self, object: QtCore.QObject, event: QtCore.QEvent) -> bool: ...
    def setFeatureSelectionManager(self, featureSelectionManager: 'QgsIFeatureSelectionManager') -> None: ...
    def setModel(self, filterModel: 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: QtGui.QHideEvent) -> None: ...
    def showContextMenuExternally(self, menu: QgsActionMenu, fid: int) -> None: ...
    def formModeChanged(self, mode: QgsAttributeEditorContext.Mode) -> None: ...
    def filterExpressionSet(self, expression: str, type: QgsAttributeForm.FilterType) -> None: ...
    def filterChanged(self) -> None: ...
    def displayExpressionChanged(self, expression: str) -> None: ...
    def parentFormValueChanged(self, attribute: 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: ...
    def attributeTableConfig(self) -> _core.QgsAttributeTableConfig: ...
    def sortExpression(self) -> str: ...
    def setSortExpression(self, sortExpression: str, sortOrder: QtCore.Qt.SortOrder = ...) -> None: ...
    def setAttributeTableConfig(self, config: _core.QgsAttributeTableConfig) -> None: ...
    def tableView(self) -> QgsAttributeTableView: ...
    def setFeatureSelectionManager(self, featureSelectionManager: 'QgsIFeatureSelectionManager') -> None: ...
    def setRequest(self, request: _core.QgsFeatureRequest) -> None: ...
    def masterModel(self) -> 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: _core.QgsVectorLayer, mapCanvas: QgsMapCanvas, request: _core.QgsFeatureRequest = ..., context: QgsAttributeEditorContext = ..., loadFeatures: bool = ..., showFirstFeature: bool = ...) -> None: ...


class QgsAttributeTableAction(QtWidgets.QAction):

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

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


class QgsAttributeTableMapLayerAction(QtWidgets.QAction):

    def __init__(self, name: str, dualView: QgsDualView, action: 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: 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: str) -> bool: ...
    def masterModel(self) -> 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) -> _core.QgsVectorLayerCache: ...
    def setSourceModel(self, sourceModel: 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: ...
    def willShowContextMenu(self, menu: QgsActionMenu, atIndex: QtCore.QModelIndex) -> None: ...
    def displayExpressionChanged(self, expression: str) -> None: ...
    def currentEditSelectionProgressChanged(self, progress: int, count: int) -> None: ...
    def currentEditSelectionChanged(self, feat: _core.QgsFeature) -> None: ...
    def contextMenuEvent(self, event: QtGui.QContextMenuEvent) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def mouseReleaseEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def setFeatureSelectionManager(self, featureSelectionManager: '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: str) -> bool: ...
    def featureListModel(self) -> QgsFeatureListModel: ...
    def setModel(self, featureListModel: QgsFeatureListModel) -> None: ...
    def layerCache(self) -> _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: QgsFeatureListModel, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...

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


class QgsFeatureSelectionModel(QtCore.QItemSelectionModel):

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

    def setFeatureSelectionManager(self, featureSelectionManager: '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: ...
    @typing.overload
    def requestRepaint(self, indexes: typing.Iterable[QtCore.QModelIndex]) -> None: ...
    @typing.overload
    def requestRepaint(self) -> None: ...
    @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: ...

    def rulesUpdated(self, fieldName: str) -> None: ...
    @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: _core.QgsVectorLayer) -> None: ...
    def viewRules(self) -> None: ...


class QgsEditConditionalFormatRuleWidget(QgsPanelWidget):

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

    def canceled(self) -> None: ...
    def ruleDeleted(self) -> None: ...
    def ruleSaved(self) -> None: ...
    def setRule(self, rule: 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: _core.QgsVectorLayer) -> None: ...


class QgsIFeatureSelectionManager(QtCore.QObject):

    def __init__(self, parent: QtCore.QObject) -> None: ...

    def selectionChanged(self, selected: typing.Any, deselected: typing.Any, clearAndSelect: bool) -> None: ...
    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: _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: _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: 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) -> 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) -> 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: str = ...) -> None: ...

    def clearMessage(self) -> None: ...
    def showMessage(self, msg: str) -> None: ...
    def selectedConfigIdRemoved(self, authcfg: str) -> None: ...
    def selectedConfigIdChanged(self, authcfg: str) -> None: ...
    def setDataProviderKey(self, key: str) -> None: ...
    def configId(self) -> str: ...
    def setConfigId(self, authcfg: str) -> None: ...


class QgsAuthConfigUriEdit(QtWidgets.QDialog):

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

    @staticmethod
    def hasConfigId(txt: str) -> bool: ...
    def dataSourceUri(self) -> str: ...
    def setDataSourceUri(self, datauri: 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: 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[str, str]) -> None: ...
    def validityChanged(self, valid: bool) -> None: ...
    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: 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: str = ..., username: str = ..., password: str = ..., dataprovider: str = ...) -> None: ...

    def configIdChanged(self) -> None: ...
    def passwordChanged(self) -> None: ...
    def usernameChanged(self) -> None: ...
    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: str) -> None: ...
    def setConfigId(self, configId: str) -> None: ...
    def configId(self) -> str: ...
    def setPassword(self, password: str) -> None: ...
    def password(self) -> str: ...
    def setUsername(self, username: str) -> None: ...
    def username(self) -> str: ...
    def setBasicText(self, basicText: str) -> None: ...
    def setWarningText(self, warningText: str) -> None: ...


class QgsAuthSslConfigWidget(QtWidgets.QWidget):

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

    def readyToSaveChanged(self, cansave: bool) -> None: ...
    def hostPortValidityChanged(self, valid: bool) -> None: ...
    def certFoundInAuthDatabase(self, found: bool) -> None: ...
    def configEnabledChanged(self, enabled: bool) -> None: ...
    def readyToSave(self) -> bool: ...
    def validateHostPortText(self, txt: str) -> None: ...
    def setConfigCheckable(self, checkable: bool) -> None: ...
    def setSslHost(self, host: 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: 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) -> QtWidgets.QGroupBox: ...
    def certificateGroupBox(self) -> QtWidgets.QGroupBox: ...


class QgsAuthSslConfigDialog(QtWidgets.QDialog):

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

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


class QgsAuthSslErrorsDialog(QtWidgets.QDialog):

    def __init__(self, reply: QtNetwork.QNetworkReply, sslErrors: typing.Iterable[QtNetwork.QSslError], parent: typing.Optional[QtWidgets.QWidget] = ..., digest: str = ..., hostport: 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: QtGui.QShowEvent) -> None: ...


class QgsCalloutWidget(QtWidgets.QWidget):

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

    def changed(self) -> None: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def registerDataDefinedButton(self, button: QgsPropertyOverrideButton, key: _core.QgsCallout.Property) -> None: ...
    def setGeometryType(self, type: _core.QgsWkbTypes.GeometryType) -> None: ...
    def vectorLayer(self) -> _core.QgsVectorLayer: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def callout(self) -> _core.QgsCallout: ...
    def setCallout(self, callout: _core.QgsCallout) -> None: ...


class QgsCodeEditor(Qsci.QsciScintilla):

    class Flag(int):
        CodeFolding = ... # type: QgsCodeEditor.Flag

    class MarginRole(int):
        LineNumbers = ... # type: QgsCodeEditor.MarginRole
        ErrorIndicators = ... # type: QgsCodeEditor.MarginRole
        FoldingControls = ... # type: QgsCodeEditor.MarginRole

    class Flags(PyQt5.sip.wrapper):

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

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __invert__(self) -> 'QgsCodeEditor.Flags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., title: str = ..., folding: bool = ..., margin: bool = ..., flags: typing.Union['QgsCodeEditor.Flags', 'QgsCodeEditor.Flag'] = ...) -> None: ...

    def runPostLexerConfigurationTasks(self) -> None: ...
    def lexerFont(self) -> QtGui.QFont: ...
    def lexerColor(self, role: 'QgsCodeEditorColorScheme.ColorRole') -> QtGui.QColor: ...
    def initializeLexer(self) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def focusOutEvent(self, event: QtGui.QFocusEvent) -> None: ...
    def isFixedPitch(self, font: QtGui.QFont) -> bool: ...
    def moveCursorToEnd(self) -> None: ...
    def moveCursorToStart(self) -> None: ...
    def isCursorOnLastLine(self) -> bool: ...
    def clearWarnings(self) -> None: ...
    def addWarning(self, lineNumber: int, warning: str) -> None: ...
    @staticmethod
    def getMonospaceFont() -> QtGui.QFont: ...
    @staticmethod
    def setColor(role: 'QgsCodeEditorColorScheme.ColorRole', color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    @staticmethod
    def color(role: 'QgsCodeEditorColorScheme.ColorRole') -> QtGui.QColor: ...
    @staticmethod
    def defaultColor(role: 'QgsCodeEditorColorScheme.ColorRole', theme: str = ...) -> QtGui.QColor: ...
    def insertText(self, text: 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: ...
    def setTitle(self, title: 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: str = ..., name: str = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsCodeEditorColorScheme') -> None: ...

    def setColor(self, role: 'QgsCodeEditorColorScheme.ColorRole', color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> 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: str) -> QgsCodeEditorColorScheme: ...
    def schemes(self) -> typing.List[str]: ...
    def removeColorScheme(self, id: str) -> bool: ...
    def addColorScheme(self, scheme: QgsCodeEditorColorScheme) -> bool: ...


class QgsCodeEditorCSS(QgsCodeEditor):

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

    def initializeLexer(self) -> 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: ...


class QgsCodeEditorHTML(QgsCodeEditor):

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

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


class QgsCodeEditorJavascript(QgsCodeEditor):

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

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


class QgsCodeEditorJson(QgsCodeEditor):

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

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


class QgsCodeEditorPython(QgsCodeEditor):

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

    def autoComplete(self) -> None: ...
    def initializeLexer(self) -> None: ...
    def searchSelectedTextInPyQGISDocs(self) -> None: ...
    def loadScript(self, script: str) -> bool: ...
    def loadAPIs(self, filenames: typing.Iterable[str]) -> None: ...


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[str]) -> None: ...
    def fieldNames(self) -> typing.List[str]: ...
    def setFieldNames(self, fieldNames: typing.Iterable[str]) -> None: ...
    def setFields(self, fields: _core.QgsFields) -> None: ...


class QgsDevToolWidget(QgsPanelWidget):

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


class QgsDevToolWidgetFactory(PyQt5.sip.wrapper):

    @typing.overload
    def __init__(self, title: str = ..., icon: QtGui.QIcon = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsDevToolWidgetFactory') -> None: ...

    def createWidget(self, parent: typing.Optional[QtWidgets.QWidget] = ...) -> QgsDevToolWidget: ...
    def setTitle(self, title: 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: _core.QgsVectorLayer, fieldIdx: int, parent: QtWidgets.QWidget) -> None: ...

    def updateDataDefinedButton(self, button: QgsPropertyOverrideButton) -> None: ...
    def updateDataDefinedButtons(self) -> None: ...
    def initializeDataDefinedButton(self, button: QgsPropertyOverrideButton, key: 'QgsWidgetWrapper.Property') -> None: ...
    def changed(self) -> None: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def layer(self) -> _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: _core.QgsVectorLayer, fieldName: str) -> typing.Tuple[_core.QgsEditorWidgetSetup, int]: ...


class QgsEditorWidgetFactory(PyQt5.sip.wrapper):

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

    def fieldScore(self, vl: _core.QgsVectorLayer, fieldIdx: int) -> int: ...
    def supportsField(self, vl: _core.QgsVectorLayer, fieldIdx: int) -> bool: ...
    def configWidget(self, vl: _core.QgsVectorLayer, fieldIdx: int, parent: QtWidgets.QWidget) -> QgsEditorConfigWidget: ...
    def name(self) -> str: ...
    def createSearchWidget(self, vl: _core.QgsVectorLayer, fieldIdx: int, parent: QtWidgets.QWidget) -> 'QgsSearchWidgetWrapper': ...
    def create(self, vl: _core.QgsVectorLayer, fieldIdx: int, editor: QtWidgets.QWidget, parent: QtWidgets.QWidget) -> 'QgsEditorWidgetWrapper': ...


class QgsEditorWidgetRegistry(QtCore.QObject):

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

    def registerAutoConfPlugin(self, plugin: QgsEditorWidgetAutoConfPlugin) -> None: ...
    def registerWidget(self, widgetId: str, widgetFactory: QgsEditorWidgetFactory) -> bool: ...
    def factory(self, widgetId: str) -> QgsEditorWidgetFactory: ...
    def factories(self) -> typing.Any: ...
    def name(self, widgetId: str) -> str: ...
    def createConfigWidget(self, widgetId: str, vl: _core.QgsVectorLayer, fieldIdx: int, parent: QtWidgets.QWidget) -> QgsEditorConfigWidget: ...
    def createSearchWidget(self, widgetId: str, vl: _core.QgsVectorLayer, fieldIdx: int, config: typing.Dict[str, typing.Any], parent: QtWidgets.QWidget) -> 'QgsSearchWidgetWrapper': ...
    @typing.overload
    def create(self, widgetId: str, vl: _core.QgsVectorLayer, fieldIdx: int, config: typing.Dict[str, typing.Any], editor: QtWidgets.QWidget, parent: QtWidgets.QWidget) -> 'QgsEditorWidgetWrapper': ...
    @typing.overload
    def create(self, vl: _core.QgsVectorLayer, fieldIdx: int, editor: QtWidgets.QWidget, parent: QtWidgets.QWidget) -> 'QgsEditorWidgetWrapper': ...
    def findBest(self, vl: _core.QgsVectorLayer, fieldName: 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: _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: QtWidgets.QWidget) -> None: ...
    def createWidget(self, parent: QtWidgets.QWidget) -> QtWidgets.QWidget: ...
    def contextChanged(self) -> None: ...
    def notifyAboutToSave(self) -> None: ...
    def setDataDefinedProperties(self, collection: _core.QgsPropertyCollection) -> None: ...
    def dataDefinedProperties(self) -> _core.QgsPropertyCollection: ...
    def valid(self) -> bool: ...
    @staticmethod
    def fromWidget(widget: QtWidgets.QWidget) -> 'QgsWidgetWrapper': ...
    def layer(self) -> _core.QgsVectorLayer: ...
    def context(self) -> QgsAttributeEditorContext: ...
    @typing.overload
    def config(self, key: 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) -> 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: _core.QgsVectorLayer, fieldIdx: int, editor: typing.Optional[QtWidgets.QWidget] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setFormFeatureAttribute(self, attributeName: 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: 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: ...
    def constraintResultVisibleChanged(self, visible: bool) -> None: ...
    def constraintStatusChanged(self, constraint: str, desc: str, err: str, status: 'QgsEditorWidgetWrapper.ConstraintResult') -> None: ...
    def valuesChanged(self, value: typing.Any, additionalFieldValues: typing.Iterable[typing.Any] = ...) -> None: ...
    def valueChanged(self, value: typing.Any) -> None: ...
    def setConstraintResultVisible(self, constraintResultVisible: bool) -> None: ...
    def constraintResultVisible(self) -> bool: ...
    def constraintResult(self) -> 'QgsEditorWidgetWrapper.ConstraintResult': ...
    def setHint(self, hintText: 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: _core.QgsVectorLayer, index: int, feature: _core.QgsFeature, constraintOrigin: _core.QgsFieldConstraints.ConstraintOrigin = ...) -> None: ...
    def showIndeterminateState(self) -> None: ...
    def setEnabled(self, enabled: bool) -> None: ...
    @staticmethod
    def isInTable(parent: QtWidgets.QWidget) -> bool: ...
    @staticmethod
    def fromWidget(widget: QtWidgets.QWidget) -> '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: ...
        @typing.overload
        def __init__(self, a0: 'QgsSearchWidgetWrapper.FilterFlags') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __invert__(self) -> 'QgsSearchWidgetWrapper.FilterFlags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, vl: _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: str) -> None: ...
    def valueCleared(self) -> None: ...
    def valueChanged(self) -> None: ...
    def expressionChanged(self, exp: str) -> None: ...
    def setEnabled(self, enabled: bool) -> None: ...
    def clearWidget(self) -> None: ...
    def fieldIndex(self) -> int: ...
    def setAggregate(self, aggregate: 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: _core.QgsVectorLayer, editor: QtWidgets.QWidget, parent: QtWidgets.QWidget) -> None: ...

    def setEnabled(self, enabled: bool) -> None: ...
    def setFeature(self, feature: _core.QgsFeature) -> None: ...
    def initWidget(self, editor: QtWidgets.QWidget) -> None: ...
    def createWidget(self, parent: QtWidgets.QWidget) -> QtWidgets.QWidget: ...
    def valid(self) -> bool: ...
    def setAction(self, action: _core.QgsAction) -> None: ...


class QgsCheckboxSearchWidgetWrapper(QgsSearchWidgetWrapper):

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

    def setExpression(self, expression: str) -> None: ...
    def initWidget(self, editor: QtWidgets.QWidget) -> None: ...
    def createWidget(self, parent: QtWidgets.QWidget) -> 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: QtGui.QShowEvent) -> None: ...
    def wheelEvent(self, event: QtGui.QWheelEvent) -> None: ...
    def focusInEvent(self, event: QtGui.QFocusEvent) -> None: ...
    def focusOutEvent(self, event: QtGui.QFocusEvent) -> None: ...
    def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def valueChanged(self, date: typing.Union[QtCore.QDateTime, datetime.datetime]) -> None: ...
    def setNullRepresentation(self, null: 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: ...
    def timeValueChanged(self, time: typing.Union[QtCore.QTime, datetime.time]) -> None: ...
    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: ...
    def dateValueChanged(self, date: typing.Union[QtCore.QDate, datetime.date]) -> None: ...
    def setDate(self, date: typing.Union[QtCore.QDate, datetime.date]) -> None: ...


class QgsDateTimeSearchWidgetWrapper(QgsSearchWidgetWrapper):

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

    def setExpression(self, exp: str) -> None: ...
    def initWidget(self, editor: QtWidgets.QWidget) -> None: ...
    def createWidget(self, parent: QtWidgets.QWidget) -> 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: _core.QgsVectorLayer, fieldIdx: int, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def caseSensitiveCheckBox(self) -> QtWidgets.QCheckBox: ...
    def lineEdit(self) -> QgsFilterLineEdit: ...
    def valid(self) -> bool: ...
    def initWidget(self, editor: QtWidgets.QWidget) -> None: ...
    def createWidget(self, parent: QtWidgets.QWidget) -> QtWidgets.QWidget: ...
    def setExpression(self, exp: 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: QtCore.QTimerEvent) -> None: ...
    def wheelEvent(self, event: QtGui.QWheelEvent) -> None: ...
    def changeEvent(self, event: QtCore.QEvent) -> None: ...
    def paintEvent(self, e: QtGui.QPaintEvent) -> None: ...
    def validate(self, input: str) -> typing.Tuple[QtGui.QValidator.State, int]: ...
    def valueFromText(self, text: str) -> float: ...
    def setSpecialValueText(self, txt: 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: str = ...) -> None: ...
    def setClearValue(self, customValue: float, clearValueText: 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: _core.QgsVectorLayer, editor: QtWidgets.QWidget, parent: QtWidgets.QWidget) -> None: ...

    def setFeature(self, feature: _core.QgsFeature) -> None: ...
    def needsGeometry(self) -> bool: ...
    def setHtmlCode(self, htmlCode: str) -> None: ...
    def reinitWidget(self) -> None: ...
    def initWidget(self, editor: QtWidgets.QWidget) -> None: ...
    def createWidget(self, parent: QtWidgets.QWidget) -> 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: 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: ...

    def resetFieldValueTriggered(self) -> None: ...
    def setFieldValueTriggered(self) -> None: ...
    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: _core.QgsVectorLayer, wrapper: 'QgsRelationWidgetWrapper', parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def eventFilter(self, watched: QtCore.QObject, event: QtCore.QEvent) -> bool: ...
    def setExpression(self, value: str) -> None: ...
    def applyDirectly(self) -> bool: ...
    def createWidget(self, parent: QtWidgets.QWidget) -> QtWidgets.QWidget: ...
    def valid(self) -> bool: ...
    def expression(self) -> str: ...


class QgsRelationReferenceSearchWidgetWrapper(QgsSearchWidgetWrapper):

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

    def setExpression(self, exp: str) -> None: ...
    def onValueChanged(self, value: typing.Any) -> None: ...
    def initWidget(self, editor: QtWidgets.QWidget) -> None: ...
    def createWidget(self, parent: QtWidgets.QWidget) -> 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: QtWidgets.QWidget) -> None: ...

    def foreignKeysChanged(self, a0: typing.Iterable[typing.Any]) -> None: ...
    def foreignKeyChanged(self, a0: typing.Any) -> None: ...
    def init(self) -> None: ...
    def showEvent(self, e: QtGui.QShowEvent) -> None: ...
    def deleteForeignKeys(self) -> None: ...
    def mapIdentification(self) -> None: ...
    def openForm(self) -> None: ...
    def setReferencedLayerName(self, referencedLayerName: str) -> None: ...
    def referencedLayerName(self) -> str: ...
    def setReferencedLayerId(self, referencedLayerId: str) -> None: ...
    def referencedLayerId(self) -> str: ...
    def setReferencedLayerProviderKey(self, referencedLayerProviderKey: str) -> None: ...
    def referencedLayerProviderKey(self) -> str: ...
    def setReferencedLayerDataSource(self, referencedLayerDataSource: 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: 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[str]) -> None: ...
    def setOrderByValue(self, orderByValue: bool) -> None: ...
    def orderByValue(self) -> bool: ...
    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: QgsMapCanvas, messageBar: 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: _core.QgsVectorLayer, fieldIdx: int, editor: QtWidgets.QWidget, canvas: QgsMapCanvas, messageBar: 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: QtWidgets.QWidget) -> None: ...
    def createWidget(self, parent: QtWidgets.QWidget) -> QtWidgets.QWidget: ...


class QgsRelationWidgetWrapper(QgsWidgetWrapper):

    @typing.overload
    def __init__(self, vl: _core.QgsVectorLayer, relation: _core.QgsRelation, editor: typing.Optional[QtWidgets.QWidget] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...
    @typing.overload
    def __init__(self, relationEditorName: str, vl: _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: ...
    def relatedFeaturesChanged(self) -> None: ...
    def valid(self) -> bool: ...
    def initWidget(self, editor: QtWidgets.QWidget) -> None: ...
    def createWidget(self, parent: QtWidgets.QWidget) -> QtWidgets.QWidget: ...
    def widgetValueChanged(self, attribute: str, newValue: typing.Any, attributeChanged: bool) -> None: ...
    def relation(self) -> _core.QgsRelation: ...
    def setLabel(self, label: 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: ...

    def activeFlagsChanged(self, flags: typing.Union[QgsSearchWidgetWrapper.FilterFlags, QgsSearchWidgetWrapper.FilterFlag]) -> None: ...
    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 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: QtCore.QTimerEvent) -> None: ...
    def wheelEvent(self, event: QtGui.QWheelEvent) -> None: ...
    def paintEvent(self, event: QtGui.QPaintEvent) -> None: ...
    def changeEvent(self, event: QtCore.QEvent) -> None: ...
    def validate(self, input: str) -> typing.Tuple[QtGui.QValidator.State, int]: ...
    def valueFromText(self, text: str) -> int: ...
    def setSpecialValueText(self, txt: 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: str = ...) -> None: ...
    def setClearValue(self, customValue: int, clearValueText: 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 QgsValueMapSearchWidgetWrapper(QgsSearchWidgetWrapper):

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

    def setExpression(self, exp: str) -> None: ...
    def initWidget(self, editor: QtWidgets.QWidget) -> None: ...
    def createWidget(self, parent: QtWidgets.QWidget) -> 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: _core.QgsVectorLayer, fieldIdx: int, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setExpression(self, exp: str) -> None: ...
    def onValueChanged(self) -> None: ...
    def initWidget(self, editor: QtWidgets.QWidget) -> None: ...
    def createWidget(self, parent: QtWidgets.QWidget) -> 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: _core.QgsEffectStack, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setWidget(self, widget: 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: _core.QgsEffectStack) -> None: ...
    def changeEffect(self, newEffect: _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) -> _core.QgsEffectStack: ...


class QgsEffectStackPropertiesDialog(QgsDialog):

    def __init__(self, stack: _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) -> _core.QgsEffectStack: ...


class QgsEffectStackCompactWidget(QgsPanelWidget):

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

    def changed(self) -> None: ...
    def setPreviewPicture(self, picture: QtGui.QPicture) -> None: ...
    def paintEffect(self) -> _core.QgsPaintEffect: ...
    def setPaintEffect(self, effect: _core.QgsPaintEffect) -> None: ...


class QgsPaintEffectPropertiesWidget(QtWidgets.QWidget):

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

    def changeEffect(self, effect: _core.QgsPaintEffect) -> None: ...
    def changed(self) -> None: ...
    def emitSignalChanged(self) -> None: ...
    def effectTypeChanged(self) -> None: ...


class QgsPaintEffectWidget(QtWidgets.QWidget):

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

    def changed(self) -> None: ...
    def setPaintEffect(self, effect: _core.QgsPaintEffect) -> None: ...


class QgsDrawSourceWidget(QgsPaintEffectWidget):

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

    def setPaintEffect(self, effect: _core.QgsPaintEffect) -> None: ...
    @staticmethod
    def create() -> QgsPaintEffectWidget: ...


class QgsBlurWidget(QgsPaintEffectWidget):

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

    def setPaintEffect(self, effect: _core.QgsPaintEffect) -> None: ...
    @staticmethod
    def create() -> QgsPaintEffectWidget: ...


class QgsShadowEffectWidget(QgsPaintEffectWidget):

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

    def setPaintEffect(self, effect: _core.QgsPaintEffect) -> None: ...
    @staticmethod
    def create() -> QgsPaintEffectWidget: ...


class QgsGlowWidget(QgsPaintEffectWidget):

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

    def setPaintEffect(self, effect: _core.QgsPaintEffect) -> None: ...
    @staticmethod
    def create() -> QgsPaintEffectWidget: ...


class QgsTransformWidget(QgsPaintEffectWidget):

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

    def setPaintEffect(self, effect: _core.QgsPaintEffect) -> None: ...
    @staticmethod
    def create() -> QgsPaintEffectWidget: ...


class QgsColorEffectWidget(QgsPaintEffectWidget):

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

    def setPaintEffect(self, effect: _core.QgsPaintEffect) -> None: ...
    @staticmethod
    def create() -> QgsPaintEffectWidget: ...


class QgsPlotCanvas(QtWidgets.QGraphicsView):

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

    def wheelZoom(self, event: QtGui.QWheelEvent) -> None: ...
    def viewportEvent(self, event: QtCore.QEvent) -> bool: ...
    def resizeEvent(self, e: QtGui.QResizeEvent) -> None: ...
    def wheelEvent(self, e: QtGui.QWheelEvent) -> None: ...
    def mouseReleaseEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def mouseDoubleClickEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def keyReleaseEvent(self, e: QtGui.QKeyEvent) -> None: ...
    def keyPressEvent(self, e: QtGui.QKeyEvent) -> None: ...
    def event(self, e: QtCore.QEvent) -> bool: ...
    def willBeDeleted(self) -> None: ...
    def contextMenuAboutToShow(self, menu: QtWidgets.QMenu, event: 'QgsPlotMouseEvent') -> None: ...
    def plotAreaChanged(self) -> None: ...
    def toolChanged(self, newTool: 'QgsPlotTool') -> None: ...
    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) -> 'QgsPlotTool': ...
    def unsetTool(self, tool: 'QgsPlotTool') -> None: ...
    def setTool(self, tool: '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: ...
    def canvasPointHovered(self, point: _core.QgsPointXY, profilePoint: _core.QgsProfilePoint) -> None: ...
    def activeJobCountChanged(self, count: int) -> None: ...
    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) -> _core.QgsCurve: ...
    def setProfileCurve(self, curve: _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: _core.QgsProject) -> None: ...
    def invalidateCurrentPlotExtent(self) -> None: ...
    def refresh(self) -> None: ...
    def plotArea(self) -> QtCore.QRectF: ...
    def mouseMoveEvent(self, e: QtGui.QMouseEvent) -> None: ...
    def wheelZoom(self, event: 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: QtGui.QPaintEvent) -> None: ...
    def resizeEvent(self, event: 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 QgsAbstractHistoryProvider(PyQt5.sip.wrapper):

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

    def id(self) -> str: ...


class QgsHistoryEntry(PyQt5.sip.wrapper):

    entry = ... # type: typing.Dict[str, typing.Any]
    providerId = ... # type: str
    timestamp = ... # type: typing.Union[QtCore.QDateTime, datetime.datetime]

    @typing.overload
    def __init__(self, providerId: 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: ...


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: ...

    def clearHistory(self, backend: _core.Qgis.HistoryProviderBackend) -> bool: ...
    @staticmethod
    def userHistoryDbPath() -> str: ...
    def queryEntries(self, start: typing.Union[QtCore.QDateTime, datetime.datetime] = ..., end: typing.Union[QtCore.QDateTime, datetime.datetime] = ..., providerId: 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: 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: str) -> bool: ...
    def providerById(self, id: str) -> QgsAbstractHistoryProvider: ...
    def addProvider(self, provider: QgsAbstractHistoryProvider) -> bool: ...


class QgsLabelSettingsWidgetBase(QgsPanelWidget):

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

    def registerDataDefinedButton(self, button: QgsPropertyOverrideButton, key: _core.QgsPalLayerSettings.Property) -> None: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def auxiliaryFieldCreated(self) -> None: ...
    def changed(self) -> None: ...
    def updateDataDefinedProperties(self, properties: _core.QgsPropertyCollection) -> None: ...
    def setDataDefinedProperties(self, dataDefinedProperties: _core.QgsPropertyCollection) -> None: ...
    def dataDefinedProperties(self) -> _core.QgsPropertyCollection: ...
    def setGeometryType(self, type: _core.QgsWkbTypes.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.QgsWkbTypes.GeometryType) -> None: ...
    def settings(self) -> _core.QgsLabelObstacleSettings: ...
    def setSettings(self, settings: _core.QgsLabelObstacleSettings) -> None: ...


class QgsLabelSettingsWidgetDialog(QtWidgets.QDialog):

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

    def buttonBox(self) -> QtWidgets.QDialogButtonBox: ...


class QgsCustomLayerOrderWidget(QtWidgets.QWidget):

    def __init__(self, bridge: '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: _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: _core.QgsMapLayer) -> bool: ...
    def createWidget(self, layer: _core.QgsMapLayer, widgetIndex: int) -> QtWidgets.QWidget: ...
    def name(self) -> str: ...
    def id(self) -> str: ...


class QgsLayerTreeEmbeddedWidgetRegistry(PyQt5.sip.wrapper):

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

    def removeProvider(self, providerId: str) -> bool: ...
    def addProvider(self, provider: QgsLayerTreeEmbeddedWidgetProvider) -> bool: ...
    def provider(self, providerId: str) -> QgsLayerTreeEmbeddedWidgetProvider: ...
    def providers(self) -> typing.List[str]: ...


class QgsLayerTreeMapCanvasBridge(QtCore.QObject):

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

    def canvasLayersChanged(self, layers: typing.Iterable[_core.QgsMapLayer]) -> None: ...
    def setCanvasLayers(self) -> None: ...
    def autoSetupOnFirstLayer(self) -> bool: ...
    def setAutoSetupOnFirstLayer(self, enabled: bool) -> None: ...
    def overviewCanvas(self) -> QgsMapOverviewCanvas: ...
    def setOvervewCanvas(self, overviewCanvas: QgsMapOverviewCanvas) -> None: ...
    def setOverviewCanvas(self, overviewCanvas: QgsMapOverviewCanvas) -> None: ...
    def mapCanvas(self) -> QgsMapCanvas: ...
    def rootGroup(self) -> _core.QgsLayerTree: ...


class QgsLayerTreeProxyModel(QtCore.QSortFilterProxyModel):

    def __init__(self, treeModel: _core.QgsLayerTreeModel, parent: 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: str = ...) -> None: ...


class QgsLayerTreeView(QtWidgets.QTreeView):

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

    def onModelReset(self) -> None: ...
    def onExpandedChanged(self, node: _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: QtGui.QResizeEvent) -> None: ...
    def dropEvent(self, event: QtGui.QDropEvent) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def mouseReleaseEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def layerForIndex(self, index: QtCore.QModelIndex) -> _core.QgsMapLayer: ...
    def updateExpandedStateFromNode(self, node: _core.QgsLayerTreeNode) -> None: ...
    def contextMenuEvent(self, event: QtGui.QContextMenuEvent) -> None: ...
    def currentLayerChanged(self, layer: _core.QgsMapLayer) -> None: ...
    def showPrivateLayers(self) -> bool: ...
    def setShowPrivateLayers(self, showPrivate: bool) -> None: ...
    def setMessageBar(self, messageBar: QgsMessageBar) -> None: ...
    def setLayerMarkWidth(self, width: int) -> None: ...
    def collapseAllNodes(self) -> None: ...
    def expandAllNodes(self) -> None: ...
    def refreshLayerSymbology(self, layerId: str) -> None: ...
    def layerMarkWidth(self) -> int: ...
    def indicators(self, node: _core.QgsLayerTreeNode) -> typing.List['QgsLayerTreeViewIndicator']: ...
    def removeIndicator(self, node: _core.QgsLayerTreeNode, indicator: 'QgsLayerTreeViewIndicator') -> None: ...
    def addIndicator(self, node: _core.QgsLayerTreeNode, indicator: 'QgsLayerTreeViewIndicator') -> None: ...
    def selectedLayersRecursive(self) -> typing.List[_core.QgsMapLayer]: ...
    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) -> _core.QgsLayerTreeModelLegendNode: ...
    def currentGroupNode(self) -> _core.QgsLayerTreeGroup: ...
    def currentNode(self) -> _core.QgsLayerTreeNode: ...
    def setCurrentLayer(self, layer: _core.QgsMapLayer) -> None: ...
    def setLayerVisible(self, layer: _core.QgsMapLayer, visible: bool) -> None: ...
    def currentLayer(self) -> _core.QgsMapLayer: ...
    def menuProvider(self) -> 'QgsLayerTreeViewMenuProvider': ...
    def setMenuProvider(self, menuProvider: 'QgsLayerTreeViewMenuProvider') -> None: ...
    def defaultActions(self) -> 'QgsLayerTreeViewDefaultActions': ...
    def legendNode2sourceIndex(self, legendNode: _core.QgsLayerTreeModelLegendNode) -> QtCore.QModelIndex: ...
    def legendNode2index(self, legendNode: _core.QgsLayerTreeModelLegendNode) -> QtCore.QModelIndex: ...
    def index2legendNode(self, index: QtCore.QModelIndex) -> _core.QgsLayerTreeModelLegendNode: ...
    def node2sourceIndex(self, node: _core.QgsLayerTreeNode) -> QtCore.QModelIndex: ...
    def node2index(self, node: _core.QgsLayerTreeNode) -> QtCore.QModelIndex: ...
    def index2node(self, index: QtCore.QModelIndex) -> _core.QgsLayerTreeNode: ...
    def proxyModel(self) -> QgsLayerTreeProxyModel: ...
    def layerTreeModel(self) -> _core.QgsLayerTreeModel: ...
    def setModel(self, model: 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) -> QtWidgets.QMenu: ...


class QgsLayerTreeViewDefaultActions(QtCore.QObject):

    def __init__(self, view: QgsLayerTreeView) -> None: ...

    def uniqueGroupName(self, parentGroup: _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: QgsMapCanvas) -> None: ...
    @typing.overload
    def zoomToGroup(self) -> None: ...
    @typing.overload
    def zoomToSelection(self, canvas: QgsMapCanvas) -> None: ...
    @typing.overload
    def zoomToSelection(self) -> None: ...
    @typing.overload
    def zoomToLayers(self, canvas: QgsMapCanvas) -> None: ...
    @typing.overload
    def zoomToLayers(self) -> None: ...
    @typing.overload
    def zoomToLayers(self, canvas: QgsMapCanvas, layers: typing.Iterable[_core.QgsMapLayer]) -> None: ...
    @typing.overload
    def zoomToLayer(self, canvas: QgsMapCanvas) -> None: ...
    @typing.overload
    def zoomToLayer(self) -> None: ...
    def actionMutuallyExclusiveGroup(self, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionGroupSelected(self, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionMoveToBottom(self, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionMoveToTop(self, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionMoveOutOfGroup(self, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionMakeTopLevel(self, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionZoomToGroup(self, canvas: QgsMapCanvas, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionZoomToSelection(self, canvas: QgsMapCanvas, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionZoomToLayers(self, canvas: QgsMapCanvas, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionZoomToLayer(self, canvas: QgsMapCanvas, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionCheckAndAllParents(self, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionUncheckAndAllChildren(self, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionCheckAndAllChildren(self, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionShowFeatureCount(self, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionRenameGroupOrLayer(self, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionShowInOverview(self, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionRemoveGroupOrLayer(self, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...
    def actionAddGroup(self, parent: typing.Optional[QtCore.QObject] = ...) -> QtWidgets.QAction: ...


class QgsLayerTreeViewIndicator(QtCore.QObject):

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

    def changed(self) -> None: ...
    def clicked(self, index: QtCore.QModelIndex) -> None: ...
    def setToolTip(self, tip: 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: ...

    def layoutChanged(self, layout: _core.QgsMasterLayoutInterface) -> None: ...
    def setCurrentLayout(self, layout: _core.QgsMasterLayoutInterface) -> None: ...
    def layout(self, index: int) -> _core.QgsMasterLayoutInterface: ...
    def currentLayout(self) -> _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: _core.QgsLayoutManager) -> None: ...


class QgsLayoutCustomDropHandler(QtCore.QObject):

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

    def handlePaste(self, iface: 'QgsLayoutDesignerInterface', pastePoint: typing.Union[QtCore.QPointF, QtCore.QPoint], data: QtCore.QMimeData) -> typing.Tuple[bool, typing.List[_core.QgsLayoutItem]]: ...
    @typing.overload
    def handleFileDrop(self, iface: 'QgsLayoutDesignerInterface', file: str) -> bool: ...
    @typing.overload
    def handleFileDrop(self, iface: 'QgsLayoutDesignerInterface', dropPoint: typing.Union[QtCore.QPointF, QtCore.QPoint], file: 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: ...

    def mapPreviewRefreshed(self, map: _core.QgsLayoutItemMap) -> None: ...
    def layoutExported(self) -> None: ...
    def showRulers(self, visible: bool) -> None: ...
    def close(self) -> None: ...
    def lastExportResults(self) -> 'QgsLayoutDesignerInterface.ExportResults': ...
    def activateTool(self, tool: 'QgsLayoutDesignerInterface.StandardTool') -> None: ...
    def removeDockWidget(self, dock: QtWidgets.QDockWidget) -> None: ...
    def addDockWidget(self, area: QtCore.Qt.DockWidgetArea, dock: QtWidgets.QDockWidget) -> None: ...
    def atlasToolbar(self) -> QtWidgets.QToolBar: ...
    def actionsToolbar(self) -> QtWidgets.QToolBar: ...
    def navigationToolbar(self) -> QtWidgets.QToolBar: ...
    def layoutToolbar(self) -> QtWidgets.QToolBar: ...
    def settingsMenu(self) -> QtWidgets.QMenu: ...
    def reportMenu(self) -> QtWidgets.QMenu: ...
    def atlasMenu(self) -> QtWidgets.QMenu: ...
    def itemsMenu(self) -> QtWidgets.QMenu: ...
    def viewMenu(self) -> QtWidgets.QMenu: ...
    def editMenu(self) -> QtWidgets.QMenu: ...
    def layoutMenu(self) -> QtWidgets.QMenu: ...
    def showItemOptions(self, item: _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) -> QgsMessageBar: ...
    def view(self) -> 'QgsLayoutView': ...
    def window(self) -> QtWidgets.QWidget: ...
    def masterLayout(self) -> _core.QgsMasterLayoutInterface: ...
    def layout(self) -> _core.QgsLayout: ...


class QgsLayoutItemComboBox(QtWidgets.QComboBox):

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

    def itemChanged(self, item: _core.QgsLayoutItem) -> None: ...
    def setItem(self, item: _core.QgsLayoutItem) -> None: ...
    def currentItem(self) -> _core.QgsLayoutItem: ...
    def item(self, index: int) -> _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) -> _core.QgsLayout: ...
    def setCurrentLayout(self, layout: _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: ...
        @typing.overload
        def __init__(self, a0: 'QgsLayoutItemAbstractGuiMetadata.Flags') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __invert__(self) -> 'QgsLayoutItemAbstractGuiMetadata.Flags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    @typing.overload
    def __init__(self, type: int, visibleName: str, groupId: str = ..., isNodeBased: bool = ..., flags: typing.Union['QgsLayoutItemAbstractGuiMetadata.Flags', 'QgsLayoutItemAbstractGuiMetadata.Flag'] = ...) -> None: ...
    @typing.overload
    def __init__(self, a0: 'QgsLayoutItemAbstractGuiMetadata') -> None: ...

    def newItemAddedToLayout(self, item: _core.QgsLayoutItem) -> None: ...
    def createItem(self, layout: _core.QgsLayout) -> _core.QgsLayoutItem: ...
    def createNodeRubberBand(self, view: 'QgsLayoutView') -> QtWidgets.QAbstractGraphicsShapeItem: ...
    def createRubberBand(self, view: 'QgsLayoutView') -> 'QgsLayoutViewRubberBand': ...
    def createItemWidget(self, item: _core.QgsLayoutItem) -> '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: str
    name = ... # type: str

    @typing.overload
    def __init__(self, id: str = ..., name: 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: ...

    def typeAdded(self, metadataId: int) -> None: ...
    def itemMetadataIds(self) -> typing.List[int]: ...
    def createItemWidget(self, item: _core.QgsLayoutItem) -> 'QgsLayoutItemBaseWidget': ...
    def newItemAddedToLayout(self, metadataId: int, item: _core.QgsLayoutItem, properties: typing.Dict[str, typing.Any] = ...) -> None: ...
    def createItem(self, metadataId: int, layout: _core.QgsLayout) -> _core.QgsLayoutItem: ...
    def itemGroup(self, id: str) -> QgsLayoutItemGuiGroup: ...
    def addItemGroup(self, group: QgsLayoutItemGuiGroup) -> bool: ...
    def addLayoutItemGuiMetadata(self, metadata: QgsLayoutItemAbstractGuiMetadata) -> bool: ...
    def metadataIdForItemType(self, type: int) -> int: ...
    def itemMetadata(self, metadataId: int) -> QgsLayoutItemAbstractGuiMetadata: ...


class QgsLayoutConfigObject(QtCore.QObject):

    def __init__(self, parent: QtWidgets.QWidget, layoutObject: _core.QgsLayoutObject) -> None: ...

    def layoutAtlas(self) -> _core.QgsLayoutAtlas: ...
    def coverageLayer(self) -> _core.QgsVectorLayer: ...
    def updateDataDefinedButton(self, button: QgsPropertyOverrideButton) -> None: ...
    def initializeDataDefinedButton(self, button: QgsPropertyOverrideButton, key: _core.QgsLayoutObject.DataDefinedProperty) -> None: ...


class QgsLayoutItemBaseWidget(QgsPanelWidget):

    def __init__(self, parent: QtWidgets.QWidget, layoutObject: _core.QgsLayoutObject) -> None: ...

    def layoutAtlas(self) -> _core.QgsLayoutAtlas: ...
    def setNewItem(self, item: _core.QgsLayoutItem) -> bool: ...
    def coverageLayer(self) -> _core.QgsVectorLayer: ...
    def updateDataDefinedButton(self, button: QgsPropertyOverrideButton) -> None: ...
    def registerDataDefinedButton(self, button: QgsPropertyOverrideButton, property: _core.QgsLayoutObject.DataDefinedProperty) -> None: ...
    def setMasterLayout(self, masterLayout: _core.QgsMasterLayoutInterface) -> None: ...
    def setDesignerInterface(self, iface: QgsLayoutDesignerInterface) -> None: ...
    def setReportTypeString(self, string: str) -> None: ...
    def setItem(self, item: _core.QgsLayoutItem) -> bool: ...
    def layoutObject(self) -> _core.QgsLayoutObject: ...


class QgsLayoutItemPropertiesWidget(QtWidgets.QWidget):

    def __init__(self, parent: QtWidgets.QWidget, item: _core.QgsLayoutItem) -> None: ...

    def populateDataDefinedButtons(self) -> None: ...
    def initializeDataDefinedButtons(self) -> None: ...
    def updateVariables(self) -> None: ...
    def setMasterLayout(self, masterLayout: _core.QgsMasterLayoutInterface) -> None: ...
    def setItem(self, item: _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: _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: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def paintEvent(self, event: QtGui.QPaintEvent) -> None: ...
    def cursorPosChanged(self, a0: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> None: ...
    def setCursorPosition(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> None: ...
    def setContextMenu(self, menu: QtWidgets.QMenu) -> None: ...
    def rulerSize(self) -> int: ...
    def setLayoutView(self, view: 'QgsLayoutView') -> None: ...
    def layoutView(self) -> '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: ...

    def changed(self, unit: _core.QgsUnitTypes.LayoutUnit) -> None: ...
    def setConverter(self, converter: _core.QgsLayoutMeasurementConverter) -> None: ...
    def converter(self) -> _core.QgsLayoutMeasurementConverter: ...
    def linkToWidget(self, widget: QtWidgets.QDoubleSpinBox) -> None: ...
    def setUnit(self, unit: _core.QgsUnitTypes.LayoutUnit) -> None: ...
    def unit(self) -> _core.QgsUnitTypes.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: QtGui.QPaintEvent) -> None: ...
    def dragEnterEvent(self, e: QtGui.QDragEnterEvent) -> None: ...
    def scrollContentsBy(self, dx: int, dy: int) -> None: ...
    def resizeEvent(self, event: QtGui.QResizeEvent) -> None: ...
    def keyReleaseEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def wheelEvent(self, event: QtGui.QWheelEvent) -> None: ...
    def mouseDoubleClickEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mouseReleaseEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def willBeDeleted(self) -> None: ...
    def itemFocused(self, item: _core.QgsLayoutItem) -> None: ...
    def statusMessage(self, message: str) -> None: ...
    def pageChanged(self, page: int) -> None: ...
    def cursorPosChanged(self, layoutPoint: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> None: ...
    def zoomLevelChanged(self) -> None: ...
    def toolSet(self, tool: 'QgsLayoutViewTool') -> None: ...
    def layoutSet(self, layout: _core.QgsLayout) -> None: ...
    def pushStatusMessage(self, message: 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: str) -> None: ...
    def deltaForKeyEvent(self, event: 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) -> 'QgsLayoutViewMenuProvider': ...
    def setMenuProvider(self, provider: 'QgsLayoutViewMenuProvider') -> None: ...
    def setVerticalRuler(self, ruler: QgsLayoutRuler) -> None: ...
    def setHorizontalRuler(self, ruler: 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: 'QgsLayoutViewTool') -> None: ...
    def setTool(self, tool: 'QgsLayoutViewTool') -> None: ...
    def tool(self) -> 'QgsLayoutViewTool': ...
    def setCurrentLayout(self, layout: _core.QgsLayout) -> None: ...
    def currentLayout(self) -> _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: QtWidgets.QWidget, layout: _core.QgsLayout, layoutPoint: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> QtWidgets.QMenu: ...


class QgsLayoutViewMouseEvent(QtGui.QMouseEvent):

    @typing.overload
    def __init__(self, view: QgsLayoutView, event: 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: ...
    def sizeChanged(self, size: str) -> None: ...
    def setPen(self, pen: typing.Union[QtGui.QPen, QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def pen(self) -> QtGui.QPen: ...
    def setBrush(self, brush: typing.Union[QtGui.QBrush, QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def brush(self) -> QtGui.QBrush: ...
    def layout(self) -> _core.QgsLayout: ...
    def view(self) -> 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: QgsLayoutView) -> '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: QgsLayoutView) -> '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: QgsLayoutView) -> '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: QgsLayoutView) -> '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: ...
        @typing.overload
        def __init__(self, a0: 'QgsLayoutViewTool.Flags') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __invert__(self) -> 'QgsLayoutViewTool.Flags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, view: QgsLayoutView, name: str) -> None: ...

    def isClickAndDrag(self, startViewPoint: QtCore.QPoint, endViewPoint: QtCore.QPoint) -> bool: ...
    def setFlags(self, flags: typing.Union['QgsLayoutViewTool.Flags', 'QgsLayoutViewTool.Flag']) -> None: ...
    def itemFocused(self, item: _core.QgsLayoutItem) -> None: ...
    def deactivated(self) -> None: ...
    def activated(self) -> None: ...
    def ignoredSnapItems(self) -> typing.List[_core.QgsLayoutItem]: ...
    def layout(self) -> _core.QgsLayout: ...
    def view(self) -> 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) -> QtWidgets.QAction: ...
    def setAction(self, action: QtWidgets.QAction) -> None: ...
    def keyReleaseEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def wheelEvent(self, event: QtGui.QWheelEvent) -> None: ...
    def layoutReleaseEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutPressEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutDoubleClickEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutMoveEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def flags(self) -> 'QgsLayoutViewTool.Flags': ...


class QgsLayoutViewToolAddItem(QgsLayoutViewTool):

    def __init__(self, view: QgsLayoutView) -> None: ...

    def createdItem(self) -> None: ...
    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: QgsLayoutViewMouseEvent) -> None: ...
    def layoutMoveEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutPressEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def setItemMetadataId(self, metadataId: int) -> None: ...
    def itemMetadataId(self) -> int: ...


class QgsLayoutViewToolAddNodeItem(QgsLayoutViewTool):

    def __init__(self, view: QgsLayoutView) -> None: ...

    def createdItem(self) -> None: ...
    def deactivate(self) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def layoutReleaseEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutMoveEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutPressEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def setItemMetadataId(self, metadataId: int) -> None: ...
    def itemMetadataId(self) -> int: ...


class QgsLayoutViewToolEditNodes(QgsLayoutViewTool):

    def __init__(self, view: QgsLayoutView) -> None: ...

    def ignoredSnapItems(self) -> typing.List[_core.QgsLayoutItem]: ...
    def deactivate(self) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def layoutDoubleClickEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutReleaseEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutMoveEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutPressEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def activate(self) -> None: ...
    def deleteSelectedNode(self) -> None: ...


class QgsLayoutViewToolMoveItemContent(QgsLayoutViewTool):

    def __init__(self, view: QgsLayoutView) -> None: ...

    def wheelEvent(self, event: QtGui.QWheelEvent) -> None: ...
    def layoutReleaseEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutMoveEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutPressEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...


class QgsLayoutViewToolPan(QgsLayoutViewTool):

    def __init__(self, view: QgsLayoutView) -> None: ...

    def deactivate(self) -> None: ...
    def layoutReleaseEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutMoveEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutPressEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...


class QgsLayoutViewToolSelect(QgsLayoutViewTool):

    def __init__(self, view: QgsLayoutView) -> None: ...

    def setLayout(self, layout: _core.QgsLayout) -> None: ...
    def deactivate(self) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def wheelEvent(self, event: QtGui.QWheelEvent) -> None: ...
    def layoutReleaseEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutMoveEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutPressEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...


class QgsLayoutViewToolTemporaryKeyPan(QgsLayoutViewTool):

    def __init__(self, view: QgsLayoutView) -> None: ...

    def activate(self) -> None: ...
    def keyReleaseEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def layoutMoveEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...


class QgsLayoutViewToolZoom(QgsLayoutViewTool):

    def __init__(self, view: QgsLayoutView) -> None: ...

    def deactivate(self) -> None: ...
    def keyReleaseEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def layoutReleaseEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutMoveEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutPressEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...


class QgsLayoutViewToolTemporaryKeyZoom(QgsLayoutViewToolZoom):

    def __init__(self, view: QgsLayoutView) -> None: ...

    def activate(self) -> None: ...
    def keyReleaseEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def layoutReleaseEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...


class QgsLayoutViewToolTemporaryMousePan(QgsLayoutViewTool):

    def __init__(self, view: QgsLayoutView) -> None: ...

    def activate(self) -> None: ...
    def layoutReleaseEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...
    def layoutMoveEvent(self, event: QgsLayoutViewMouseEvent) -> None: ...


class QgsLocatorWidget(QtWidgets.QWidget):

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

    def eventFilter(self, obj: QtCore.QObject, event: QtCore.QEvent) -> bool: ...
    def configTriggered(self) -> None: ...
    def invalidateResults(self) -> None: ...
    def search(self, string: str) -> None: ...
    def setMapCanvas(self, canvas: QgsMapCanvas) -> None: ...
    def locator(self) -> _core.QgsLocator: ...


class QgsMeshLayerProperties(QgsOptionsDialogBase):

    def __init__(self, lyr: _core.QgsMapLayer, canvas: QgsMapCanvas, parent: typing.Optional[QtWidgets.QWidget] = ..., a3: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def addPropertiesPageFactory(self, factory: QgsMapLayerConfigWidgetFactory) -> None: ...


class QgsNumericFormatSelectorWidget(QgsPanelWidget):

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

    def changed(self) -> None: ...
    def format(self) -> _core.QgsNumericFormat: ...
    def setFormat(self, format: _core.QgsNumericFormat) -> None: ...


class QgsNumericFormatWidget(QgsPanelWidget):

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

    def changed(self) -> None: ...
    def format(self) -> _core.QgsNumericFormat: ...
    def setFormat(self, format: _core.QgsNumericFormat) -> None: ...


class QgsBasicNumericFormatWidget(QgsNumericFormatWidget):

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

    def format(self) -> _core.QgsNumericFormat: ...
    def setFormat(self, format: _core.QgsNumericFormat) -> None: ...


class QgsBearingNumericFormatWidget(QgsNumericFormatWidget):

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

    def format(self) -> _core.QgsNumericFormat: ...
    def setFormat(self, format: _core.QgsNumericFormat) -> None: ...


class QgsBearingNumericFormatDialog(QtWidgets.QDialog):

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

    def format(self) -> _core.QgsBearingNumericFormat: ...


class QgsGeographicCoordinateNumericFormatWidget(QgsNumericFormatWidget):

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

    def format(self) -> _core.QgsNumericFormat: ...
    def setFormat(self, format: _core.QgsNumericFormat) -> None: ...


class QgsGeographicCoordinateNumericFormatDialog(QtWidgets.QDialog):

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

    def format(self) -> _core.QgsGeographicCoordinateNumericFormat: ...


class QgsCurrencyNumericFormatWidget(QgsNumericFormatWidget):

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

    def format(self) -> _core.QgsNumericFormat: ...
    def setFormat(self, format: _core.QgsNumericFormat) -> None: ...


class QgsPercentageNumericFormatWidget(QgsNumericFormatWidget):

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

    def format(self) -> _core.QgsNumericFormat: ...
    def setFormat(self, format: _core.QgsNumericFormat) -> None: ...


class QgsScientificNumericFormatWidget(QgsNumericFormatWidget):

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

    def format(self) -> _core.QgsNumericFormat: ...
    def setFormat(self, format: _core.QgsNumericFormat) -> None: ...


class QgsFractionNumericFormatWidget(QgsNumericFormatWidget):

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

    def format(self) -> _core.QgsNumericFormat: ...
    def setFormat(self, format: _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: _core.QgsNumericFormat) -> QgsNumericFormatWidget: ...


class QgsNumericFormatGuiRegistry(PyQt5.sip.wrapper):

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

    def formatConfigurationWidget(self, format: _core.QgsNumericFormat) -> QgsNumericFormatWidget: ...
    def removeFormatConfigurationWidgetFactory(self, id: str) -> None: ...
    def addFormatConfigurationWidgetFactory(self, id: str, factory: QgsNumericFormatConfigurationWidgetFactory) -> None: ...


class QgsPlotCanvasItem(QtWidgets.QGraphicsItem):

    def __init__(self, canvas: QgsPlotCanvas) -> None: ...

    @typing.overload
    def paint(self, painter: QtGui.QPainter) -> None: ...
    @typing.overload
    def paint(self, painter: QtGui.QPainter, option: QtWidgets.QStyleOptionGraphicsItem, widget: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsPlotMouseEvent(QtGui.QMouseEvent):

    @typing.overload
    def __init__(self, canvas: QgsPlotCanvas, event: QtGui.QMouseEvent) -> None: ...
    @typing.overload
    def __init__(self, canvas: 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, QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def pen(self) -> QtGui.QPen: ...
    def setBrush(self, brush: typing.Union[QtGui.QBrush, QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def brush(self) -> QtGui.QBrush: ...
    def canvas(self) -> 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: QgsPlotCanvas, name: 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: ...
    def deactivated(self) -> None: ...
    def activated(self) -> None: ...
    def populateContextMenuWithEvent(self, menu: QtWidgets.QMenu, event: QgsPlotMouseEvent) -> bool: ...
    def setCursor(self, cursor: typing.Union[QtGui.QCursor, QtCore.Qt.CursorShape]) -> None: ...
    def action(self) -> QtWidgets.QAction: ...
    def setAction(self, action: QtWidgets.QAction) -> None: ...
    def canvas(self) -> QgsPlotCanvas: ...
    def deactivate(self) -> None: ...
    def activate(self) -> None: ...
    def isActive(self) -> bool: ...
    def canvasToolTipEvent(self, event: QtGui.QHelpEvent) -> bool: ...
    def gestureEvent(self, event: QtWidgets.QGestureEvent) -> bool: ...
    def keyReleaseEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def wheelEvent(self, event: QtGui.QWheelEvent) -> None: ...
    def plotReleaseEvent(self, event: QgsPlotMouseEvent) -> None: ...
    def plotPressEvent(self, event: QgsPlotMouseEvent) -> None: ...
    def plotDoubleClickEvent(self, event: QgsPlotMouseEvent) -> None: ...
    def plotMoveEvent(self, event: QgsPlotMouseEvent) -> None: ...
    def toolName(self) -> str: ...
    def flags(self) -> _core.Qgis.PlotToolFlags: ...


class QgsPlotToolPan(QgsPlotTool):

    def __init__(self, canvas: QgsPlotCanvas) -> None: ...

    def deactivate(self) -> None: ...
    def plotReleaseEvent(self, event: QgsPlotMouseEvent) -> None: ...
    def plotPressEvent(self, event: QgsPlotMouseEvent) -> None: ...
    def plotMoveEvent(self, event: QgsPlotMouseEvent) -> None: ...
    def flags(self) -> _core.Qgis.PlotToolFlags: ...


class QgsPlotToolZoom(QgsPlotTool):

    def __init__(self, canvas: QgsPlotCanvas) -> None: ...

    def deactivate(self) -> None: ...
    def keyReleaseEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def plotReleaseEvent(self, event: QgsPlotMouseEvent) -> None: ...
    def plotMoveEvent(self, event: QgsPlotMouseEvent) -> None: ...
    def plotPressEvent(self, event: QgsPlotMouseEvent) -> None: ...


class QgsPlotToolTemporaryKeyPan(QgsPlotTool):

    def __init__(self, canvas: QgsPlotCanvas) -> None: ...

    def activate(self) -> None: ...
    def keyReleaseEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def plotMoveEvent(self, event: QgsPlotMouseEvent) -> None: ...


class QgsPlotToolTemporaryMousePan(QgsPlotTool):

    def __init__(self, canvas: QgsPlotCanvas) -> None: ...

    def activate(self) -> None: ...
    def plotReleaseEvent(self, event: QgsPlotMouseEvent) -> None: ...
    def plotMoveEvent(self, event: QgsPlotMouseEvent) -> None: ...


class QgsPlotToolTemporaryKeyZoom(QgsPlotToolZoom):

    def __init__(self, canvas: QgsPlotCanvas) -> None: ...

    def activate(self) -> None: ...
    def keyReleaseEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def plotReleaseEvent(self, event: QgsPlotMouseEvent) -> None: ...


class QgsPointCloudRendererWidget(QgsPanelWidget):

    def __init__(self, layer: _core.QgsPointCloudLayer, style: _core.QgsStyle) -> None: ...

    def layer(self) -> _core.QgsPointCloudLayer: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> _core.QgsPointCloudRenderer: ...


class QgsPointCloudRendererPropertiesWidget(QgsMapLayerConfigWidget):

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

    def apply(self) -> None: ...
    def setDockMode(self, dockMode: bool) -> None: ...
    def syncToLayer(self, layer: _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: str
        delimiter = ... # type: str
        field = ... # type: _core.QgsField
        source = ... # type: 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: _core.QgsExpressionContextGenerator) -> None: ...
    def contextGenerator(self) -> _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: str = ..., aggregate: 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: str = ..., aggregate: str = ...) -> None: ...
    def changed(self) -> None: ...
    def registerExpressionContextGenerator(self, generator: _core.QgsExpressionContextGenerator) -> None: ...
    def scrollTo(self, index: QtCore.QModelIndex) -> None: ...
    def sourceLayer(self) -> _core.QgsVectorLayer: ...
    def setSourceLayer(self, layer: _core.QgsVectorLayer) -> None: ...
    def setSourceFields(self, sourceFields: _core.QgsFields) -> None: ...
    def selectionModel(self) -> QtCore.QItemSelectionModel: ...
    def setMapping(self, mapping: typing.Iterable[QgsAggregateMappingModel.Aggregate]) -> None: ...
    def mapping(self) -> typing.List[QgsAggregateMappingModel.Aggregate]: ...
    def model(self) -> 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: 'QgsProcessingContextGenerator') -> None: ...
    def algorithm(self) -> _core.QgsProcessingAlgorithm: ...
    def setAlgorithm(self, algorithm: _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: _core.QgsProcessingAlgorithm) -> bool: ...
    def create(self, algorithm: _core.QgsProcessingAlgorithm) -> 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: ...
        @typing.overload
        def __init__(self, a0: 'QgsProcessingParametersGenerator.Flags') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        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) -> _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: _core.QgsProcessingFeedback) -> None: ...
    def algorithmFinished(self, successful: bool, result: typing.Dict[str, typing.Any]) -> None: ...
    def isFinalized(self) -> bool: ...
    @staticmethod
    def formatStringForLog(string: str) -> str: ...
    def setCurrentTask(self, task: _core.QgsProcessingAlgRunnerTask) -> None: ...
    def hideShortHelp(self) -> None: ...
    def messageBar(self) -> 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: 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) -> QtWidgets.QTabWidget: ...
    def buttonBox(self) -> QtWidgets.QDialogButtonBox: ...
    def changeParametersButton(self) -> QtWidgets.QPushButton: ...
    def cancelButton(self) -> QtWidgets.QPushButton: ...
    def runButton(self) -> QtWidgets.QPushButton: ...
    def closeEvent(self, e: 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) -> QtWidgets.QDialog: ...
    def pushConsoleInfo(self, info: str) -> None: ...
    def setProgressText(self, text: str) -> None: ...
    def setPercentage(self, percent: float) -> None: ...
    def pushCommandInfo(self, info: str) -> None: ...
    def pushDebugInfo(self, message: str) -> None: ...
    def pushInfo(self, info: str) -> None: ...
    def pushWarning(self, warning: str) -> None: ...
    def reportError(self, error: 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: str, format: 'QgsProcessingAlgorithmDialogBase.LogFormat' = ...) -> None: ...
    def createFeedback(self) -> _core.QgsProcessingFeedback: ...
    def results(self) -> typing.Dict[str, typing.Any]: ...
    def wasExecuted(self) -> bool: ...
    def showLog(self) -> None: ...
    def mainWidget(self) -> QgsPanelWidget: ...
    def setMainWidget(self, widget: QgsPanelWidget) -> None: ...
    def algorithm(self) -> _core.QgsProcessingAlgorithm: ...
    def setAlgorithm(self, algorithm: _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: _core.QgsProcessingAlgorithm, context: _core.QgsProcessingContext, feedback: _core.QgsProcessingFeedback, parameters: typing.Dict[str, typing.Any]) -> None: ...
    def createContext(self, feedback: _core.QgsProcessingFeedback) -> _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: str, context: _core.QgsProcessingContext, widgetContext: 'QgsProcessingParameterWidgetContext', definition: typing.Optional[_core.QgsProcessingParameterDefinition] = ..., algorithm: typing.Optional[_core.QgsProcessingAlgorithm] = ...) -> 'QgsProcessingAbstractParameterDefinitionWidget': ...
    def createModelerParameterWidget(self, model: _core.QgsProcessingModelAlgorithm, childId: str, parameter: _core.QgsProcessingParameterDefinition, context: _core.QgsProcessingContext) -> 'QgsProcessingModelerParameterWidget': ...
    def createParameterWidgetWrapper(self, parameter: _core.QgsProcessingParameterDefinition, type: QgsProcessingGui.WidgetType) -> 'QgsAbstractProcessingParameterWidgetWrapper': ...
    def removeParameterWidgetFactory(self, factory: 'QgsProcessingParameterWidgetFactoryInterface') -> None: ...
    def addParameterWidgetFactory(self, factory: 'QgsProcessingParameterWidgetFactoryInterface') -> bool: ...
    def algorithmConfigurationWidget(self, algorithm: _core.QgsProcessingAlgorithm) -> QgsProcessingAlgorithmConfigurationWidget: ...
    def removeAlgorithmConfigurationWidgetFactory(self, factory: QgsProcessingAlgorithmConfigurationWidgetFactory) -> None: ...
    def addAlgorithmConfigurationWidgetFactory(self, factory: QgsProcessingAlgorithmConfigurationWidgetFactory) -> None: ...


class QgsProcessingHistoryProvider(QgsAbstractHistoryProvider):

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

    def portOldLog(self) -> None: ...
    def id(self) -> str: ...


class QgsProcessingMapLayerComboBox(QtWidgets.QWidget):

    def __init__(self, parameter: _core.QgsProcessingParameterDefinition, type: QgsProcessingGui.WidgetType = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def dropEvent(self, event: QtGui.QDropEvent) -> None: ...
    def dragLeaveEvent(self, event: QtGui.QDragLeaveEvent) -> None: ...
    def dragEnterEvent(self, event: QtGui.QDragEnterEvent) -> None: ...
    def valueChanged(self) -> None: ...
    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) -> _core.QgsMapLayer: ...
    def setLayer(self, layer: _core.QgsMapLayer) -> None: ...


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

    def __init__(self, model: _core.QgsProcessingModelAlgorithm, childId: str, parameter: _core.QgsProcessingParameterDefinition, context: _core.QgsProcessingContext, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setSourceType(self, type: _core.QgsProcessingModelChildParameterSource.Source) -> None: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def setDialog(self, dialog: QtWidgets.QDialog) -> None: ...
    def value(self) -> typing.Any: ...
    def modelOutputName(self) -> str: ...
    def isModelOutput(self) -> bool: ...
    def setToModelOutput(self, value: 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) -> QtWidgets.QLabel: ...
    def parameterDefinition(self) -> _core.QgsProcessingParameterDefinition: ...
    def setExpressionHelpText(self, text: str) -> None: ...
    def populateSources(self, compatibleParameterTypes: typing.Iterable[str], compatibleOutputTypes: typing.Iterable[str], compatibleDataTypes: typing.Iterable[int]) -> None: ...
    def registerProcessingContextGenerator(self, generator: 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 listView(self) -> QtWidgets.QListView: ...
    def addOption(self, value: typing.Any, title: str, selected: bool, updateExistingTitle: bool = ...) -> None: ...
    def selectionChanged(self) -> None: ...
    def acceptClicked(self) -> None: ...
    def buttonBox(self) -> 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: _core.QgsProcessingParameterMultipleLayers, selectedOptions: typing.Iterable[typing.Any], modelSources: typing.Iterable[_core.QgsProcessingModelChildParameterSource], model: typing.Optional[_core.QgsProcessingModelAlgorithm] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def setProject(self, project: _core.QgsProject) -> None: ...


class QgsProcessingMultipleInputDialog(QtWidgets.QDialog):

    def __init__(self, parameter: _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: _core.QgsProject) -> None: ...
    def selectedOptions(self) -> typing.List[typing.Any]: ...


class QgsProcessingLayerOutputDestinationWidget(QtWidgets.QWidget):

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

    def dropEvent(self, event: QtGui.QDropEvent) -> None: ...
    def dragLeaveEvent(self, event: QtGui.QDragLeaveEvent) -> None: ...
    def dragEnterEvent(self, event: QtGui.QDragEnterEvent) -> None: ...
    def destinationChanged(self) -> None: ...
    def skipOutputChanged(self, skipped: bool) -> None: ...
    def openAfterRunning(self) -> bool: ...
    def addOpenAfterRunningOption(self) -> None: ...
    def registerProcessingParametersGenerator(self, generator: QgsProcessingParametersGenerator) -> None: ...
    def setContext(self, context: _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: QgsProcessingContextGenerator) -> None: ...
    def widgetContext(self) -> 'QgsProcessingParameterWidgetContext': ...
    def setWidgetContext(self, context: 'QgsProcessingParameterWidgetContext') -> None: ...
    def createParameter(self, name: str, description: str, flags: typing.Union[_core.QgsProcessingParameterDefinition.Flags, _core.QgsProcessingParameterDefinition.Flag]) -> _core.QgsProcessingParameterDefinition: ...


class QgsProcessingParameterDefinitionWidget(QtWidgets.QWidget):

    def __init__(self, type: 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: QgsProcessingContextGenerator) -> None: ...
    def createParameter(self, name: str = ...) -> _core.QgsProcessingParameterDefinition: ...


class QgsProcessingParameterDefinitionDialog(QtWidgets.QDialog):

    def __init__(self, type: 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: QgsProcessingContextGenerator) -> None: ...
    def switchToCommentTab(self) -> None: ...
    def commentColor(self) -> QtGui.QColor: ...
    def setCommentColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def comments(self) -> str: ...
    def setComments(self, comments: str) -> None: ...
    def createParameter(self, name: str = ...) -> _core.QgsProcessingParameterDefinition: ...


class QgsProcessingParametersWidget(QgsPanelWidget, QgsProcessingParametersGenerator):

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

    def addExtraWidget(self, widget: QtWidgets.QWidget) -> None: ...
    def addOutputWidget(self, widget: QtWidgets.QWidget, stretch: int = ...) -> None: ...
    def addOutputLabel(self, label: QtWidgets.QWidget) -> None: ...
    def addParameterLabel(self, parameter: _core.QgsProcessingParameterDefinition, label: QtWidgets.QWidget) -> None: ...
    def addParameterWidget(self, parameter: _core.QgsProcessingParameterDefinition, widget: QtWidgets.QWidget, stretch: int = ...) -> None: ...
    def initWidgets(self) -> None: ...
    def algorithm(self) -> _core.QgsProcessingAlgorithm: ...


class QgsProcessingRecentAlgorithmLog(QtCore.QObject):

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

    def changed(self) -> None: ...
    def push(self, id: 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: 'QgsProcessingToolboxModelNode') -> None: ...
    def getChildGroupNode(self, id: str) -> 'QgsProcessingToolboxModelGroupNode': ...
    def takeChild(self, node: 'QgsProcessingToolboxModelNode') -> 'QgsProcessingToolboxModelNode': ...
    def children(self) -> typing.List['QgsProcessingToolboxModelNode']: ...
    def parent(self) -> '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: _core.QgsProcessingProvider) -> None: ...

    def providerId(self) -> str: ...
    def provider(self) -> _core.QgsProcessingProvider: ...
    def nodeType(self) -> QgsProcessingToolboxModelNode.NodeType: ...


class QgsProcessingToolboxModelGroupNode(QgsProcessingToolboxModelNode):

    def __init__(self, id: str, name: str) -> None: ...

    def name(self) -> str: ...
    def id(self) -> str: ...
    def nodeType(self) -> QgsProcessingToolboxModelNode.NodeType: ...


class QgsProcessingToolboxModelAlgorithmNode(QgsProcessingToolboxModelNode):

    def __init__(self, algorithm: _core.QgsProcessingAlgorithm) -> None: ...

    def algorithm(self) -> _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: ...

    def recentAlgorithmAdded(self) -> None: ...
    def indexOfParentTreeNode(self, parentNode: QgsProcessingToolboxModelNode) -> QtCore.QModelIndex: ...
    def indexForProvider(self, providerId: str) -> QtCore.QModelIndex: ...
    def isAlgorithm(self, index: QtCore.QModelIndex) -> bool: ...
    def algorithmForIndex(self, index: QtCore.QModelIndex) -> _core.QgsProcessingAlgorithm: ...
    def providerIdForIndex(self, index: QtCore.QModelIndex) -> str: ...
    def providerForIndex(self, index: QtCore.QModelIndex) -> _core.QgsProcessingProvider: ...
    def node2index(self, node: QgsProcessingToolboxModelNode) -> QtCore.QModelIndex: ...
    def index2node(self, index: QtCore.QModelIndex) -> QgsProcessingToolboxModelNode: ...
    def mimeData(self, indexes: typing.Iterable[QtCore.QModelIndex]) -> 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: ...
        @typing.overload
        def __init__(self, a0: 'QgsProcessingToolboxProxyModel.Filters') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        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: str) -> None: ...
    def setInPlaceLayer(self, layer: _core.QgsVectorLayer) -> None: ...
    def filters(self) -> 'QgsProcessingToolboxProxyModel.Filters': ...
    def setFilters(self, filters: typing.Union['QgsProcessingToolboxProxyModel.Filters', 'QgsProcessingToolboxProxyModel.Filter']) -> None: ...
    def toolboxModel(self) -> 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: QtGui.QKeyEvent) -> None: ...
    def setFilterString(self, filter: str) -> None: ...
    def setInPlaceLayer(self, layer: _core.QgsVectorLayer) -> None: ...
    def filters(self) -> QgsProcessingToolboxProxyModel.Filters: ...
    def setFilters(self, filters: typing.Union[QgsProcessingToolboxProxyModel.Filters, QgsProcessingToolboxProxyModel.Filter]) -> None: ...
    def selectedAlgorithm(self) -> _core.QgsProcessingAlgorithm: ...
    def algorithmForIndex(self, index: QtCore.QModelIndex) -> _core.QgsProcessingAlgorithm: ...
    def setToolboxProxyModel(self, model: QgsProcessingToolboxProxyModel) -> None: ...
    def setRegistry(self, registry: _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: _core.QgsMapLayer) -> None: ...
    def activeLayer(self) -> _core.QgsMapLayer: ...
    def setModelChildAlgorithmId(self, id: str) -> None: ...
    def modelChildAlgorithmId(self) -> str: ...
    def setModel(self, model: _core.QgsProcessingModelAlgorithm) -> None: ...
    def model(self) -> _core.QgsProcessingModelAlgorithm: ...
    def project(self) -> _core.QgsProject: ...
    def setProject(self, project: _core.QgsProject) -> None: ...
    def browserModel(self) -> QgsBrowserGuiModel: ...
    def setBrowserModel(self, model: QgsBrowserGuiModel) -> None: ...
    def messageBar(self) -> QgsMessageBar: ...
    def setMessageBar(self, bar: QgsMessageBar) -> None: ...
    def mapCanvas(self) -> QgsMapCanvas: ...
    def setMapCanvas(self, canvas: 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) -> _core.QgsVectorLayer: ...
    def widgetValue(self) -> typing.Any: ...
    def setWidgetValue(self, value: typing.Any, context: _core.QgsProcessingContext) -> None: ...
    def createLabel(self) -> QtWidgets.QLabel: ...
    def createWidget(self) -> QtWidgets.QWidget: ...
    def widgetValueHasChanged(self, wrapper: 'QgsAbstractProcessingParameterWidgetWrapper') -> None: ...
    def setDialog(self, dialog: QtWidgets.QDialog) -> None: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def stretch(self) -> int: ...
    def postInitialize(self, wrappers: typing.Iterable['QgsAbstractProcessingParameterWidgetWrapper']) -> None: ...
    def registerProcessingParametersGenerator(self, generator: QgsProcessingParametersGenerator) -> None: ...
    def registerProcessingContextGenerator(self, generator: 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) -> _core.QgsProcessingParameterDefinition: ...
    def wrappedLabel(self) -> QtWidgets.QLabel: ...
    def wrappedWidget(self) -> QtWidgets.QWidget: ...
    def createWrappedLabel(self) -> QtWidgets.QLabel: ...
    def createWrappedWidget(self, context: _core.QgsProcessingContext) -> QtWidgets.QWidget: ...
    def widgetContext(self) -> QgsProcessingParameterWidgetContext: ...
    def setWidgetContext(self, context: QgsProcessingParameterWidgetContext) -> None: ...
    def type(self) -> QgsProcessingGui.WidgetType: ...
    @property
    def param(self) -> _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: _core.QgsProcessingParameterDefinition) -> _core.QgsProcessingModelChildParameterSource.Source: ...
    def modelerExpressionFormatString(self) -> str: ...
    def compatibleDataTypes(self, parameter: _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] = ...) -> QgsProcessingAbstractParameterDefinitionWidget: ...
    def createModelerWidgetWrapper(self, model: _core.QgsProcessingModelAlgorithm, childId: str, parameter: _core.QgsProcessingParameterDefinition, context: _core.QgsProcessingContext) -> QgsProcessingModelerParameterWidget: ...
    def createWidgetWrapper(self, parameter: _core.QgsProcessingParameterDefinition, type: QgsProcessingGui.WidgetType) -> 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) -> QtWidgets.QLabel: ...
    def createWidget(self) -> QtWidgets.QWidget: ...
    def setLinkedVectorLayer(self, layer: _core.QgsVectorLayer) -> None: ...
    def linkedVectorLayer(self) -> _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: 'QgsModelComponentGraphicItem', startEdge: QtCore.Qt.Edge, startIndex: int, startIsOutgoing: bool, startMarker: 'QgsModelArrowItem.Marker', endItem: 'QgsModelComponentGraphicItem', endEdge: QtCore.Qt.Edge, endIndex: int, endIsIncoming: bool, endMarker: 'QgsModelArrowItem.Marker') -> None: ...
    @typing.overload
    def __init__(self, startItem: 'QgsModelComponentGraphicItem', startEdge: QtCore.Qt.Edge, startIndex: int, startMarker: 'QgsModelArrowItem.Marker', endItem: 'QgsModelComponentGraphicItem', endMarker: 'QgsModelArrowItem.Marker') -> None: ...
    @typing.overload
    def __init__(self, startItem: 'QgsModelComponentGraphicItem', startMarker: 'QgsModelArrowItem.Marker', endItem: 'QgsModelComponentGraphicItem', endEdge: QtCore.Qt.Edge, endIndex: int, endMarker: 'QgsModelArrowItem.Marker') -> None: ...
    @typing.overload
    def __init__(self, startItem: 'QgsModelComponentGraphicItem', startMarker: 'QgsModelArrowItem.Marker', endItem: 'QgsModelComponentGraphicItem', endMarker: 'QgsModelArrowItem.Marker') -> None: ...

    def updatePath(self) -> None: ...
    def setPenStyle(self, style: QtCore.Qt.PenStyle) -> None: ...
    def paint(self, painter: QtGui.QPainter, option: 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: ...
        @typing.overload
        def __init__(self, a0: 'QgsModelComponentGraphicItem.Flags') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        def __invert__(self) -> 'QgsModelComponentGraphicItem.Flags': ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...

    def __init__(self, component: _core.QgsProcessingModelComponent, model: _core.QgsProcessingModelAlgorithm, parent: 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: str) -> str: ...
    def editComponent(self) -> None: ...
    def sizePositionChanged(self) -> None: ...
    def updateArrowPaths(self) -> None: ...
    def repaintArrows(self) -> None: ...
    def changed(self) -> None: ...
    def aboutToChange(self, text: str, id: int = ...) -> None: ...
    def requestModelRepaint(self) -> None: ...
    def deleteComponent(self) -> None: ...
    def canDeleteComponent(self) -> bool: ...
    def editComment(self) -> None: ...
    @typing.overload
    def calculateAutomaticLinkPoint(self, other: '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: str) -> None: ...
    def label(self) -> str: ...
    def itemRect(self, storedRect: bool = ...) -> QtCore.QRectF: ...
    def paint(self, painter: QtGui.QPainter, option: 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: QtWidgets.QGraphicsSceneHoverEvent) -> None: ...
    def hoverMoveEvent(self, event: QtWidgets.QGraphicsSceneHoverEvent) -> None: ...
    def hoverEnterEvent(self, event: QtWidgets.QGraphicsSceneHoverEvent) -> None: ...
    def mouseDoubleClickEvent(self, event: 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) -> 'QgsModelGraphicsView': ...
    def model(self) -> _core.QgsProcessingModelAlgorithm: ...
    def component(self) -> _core.QgsProcessingModelComponent: ...
    def flags(self) -> 'QgsModelComponentGraphicItem.Flags': ...


class QgsModelParameterGraphicItem(QgsModelComponentGraphicItem):

    def __init__(self, parameter: _core.QgsProcessingModelParameter, model: _core.QgsProcessingModelAlgorithm, parent: 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: QtWidgets.QGraphicsSceneContextMenuEvent) -> None: ...


class QgsModelChildAlgorithmGraphicItem(QgsModelComponentGraphicItem):

    def __init__(self, child: _core.QgsProcessingModelChildAlgorithm, model: _core.QgsProcessingModelAlgorithm, parent: 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: QtWidgets.QGraphicsSceneContextMenuEvent) -> None: ...


class QgsModelOutputGraphicItem(QgsModelComponentGraphicItem):

    def __init__(self, output: _core.QgsProcessingModelOutput, model: _core.QgsProcessingModelAlgorithm, parent: 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: _core.QgsProcessingModelComment, parentItem: QgsModelComponentGraphicItem, model: _core.QgsProcessingModelAlgorithm, parent: 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) -> QgsModelComponentGraphicItem: ...
    def canDeleteComponent(self) -> bool: ...
    def contextMenuEvent(self, event: QtWidgets.QGraphicsSceneContextMenuEvent) -> None: ...


class QgsModelGroupBoxGraphicItem(QgsModelComponentGraphicItem):

    def __init__(self, box: _core.QgsProcessingModelGroupBox, model: _core.QgsProcessingModelAlgorithm, parent: 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: 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: 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) -> QtWidgets.QGraphicsView: ...
    def messageBar(self) -> QgsMessageBar: ...
    def actionRun(self) -> QtWidgets.QAction: ...
    def actionSaveInProject(self) -> QtWidgets.QAction: ...
    def actionOpen(self) -> QtWidgets.QAction: ...
    def toolbar(self) -> QtWidgets.QToolBar: ...
    def saveModel(self, saveAs: bool = ...) -> bool: ...
    def exportAsScriptAlgorithm(self) -> None: ...
    def addInput(self, inputId: str, pos: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> None: ...
    def addAlgorithm(self, algorithmId: str, pos: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> None: ...
    def repaintModel(self, showControls: bool = ...) -> None: ...
    def activate(self) -> None: ...
    def setModelScene(self, scene: 'QgsModelGraphicsScene') -> None: ...
    def loadModel(self, path: str) -> None: ...
    def setModel(self, model: _core.QgsProcessingModelAlgorithm) -> None: ...
    def model(self) -> _core.QgsProcessingModelAlgorithm: ...
    def endUndoCommand(self) -> None: ...
    def beginUndoCommand(self, text: str, id: int = ...) -> None: ...
    def closeEvent(self, event: QtGui.QCloseEvent) -> None: ...


class QgsModelChildDependenciesWidget(QtWidgets.QWidget):

    def __init__(self, parent: QtWidgets.QWidget, model: _core.QgsProcessingModelAlgorithm, childId: 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: QtWidgets.QGraphicsItem, picture: QtGui.QPicture, position: typing.Union[QtCore.QPointF, QtCore.QPoint], size: QtCore.QSizeF = ...) -> None: ...

    def setPicture(self, picture: QtGui.QPicture) -> None: ...
    def clicked(self) -> None: ...
    def view(self) -> 'QgsModelGraphicsView': ...
    def setPosition(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> None: ...
    def mousePressEvent(self, event: QtWidgets.QGraphicsSceneMouseEvent) -> None: ...
    def hoverLeaveEvent(self, event: QtWidgets.QGraphicsSceneHoverEvent) -> None: ...
    def hoverEnterEvent(self, event: QtWidgets.QGraphicsSceneHoverEvent) -> None: ...
    def boundingRect(self) -> QtCore.QRectF: ...
    def paint(self, painter: QtGui.QPainter, option: QtWidgets.QStyleOptionGraphicsItem, widget: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...


class QgsModelDesignerFoldButtonGraphicItem(QgsModelDesignerFlatButtonGraphicItem):

    def __init__(self, parent: QtWidgets.QGraphicsItem, folded: bool, position: typing.Union[QtCore.QPointF, QtCore.QPoint], size: QtCore.QSizeF = ...) -> None: ...

    def folded(self, folded: bool) -> None: ...
    def mousePressEvent(self, event: 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: ...
        @typing.overload
        def __init__(self, a0: 'QgsModelGraphicsScene.Flags') -> None: ...

        def __hash__(self) -> int: ...
        def __bool__(self) -> int: ...
        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: _core.QgsProcessingModelAlgorithm, box: _core.QgsProcessingModelGroupBox) -> QgsModelComponentGraphicItem: ...
    def createCommentGraphicItem(self, model: _core.QgsProcessingModelAlgorithm, comment: _core.QgsProcessingModelComment, parentItem: QgsModelComponentGraphicItem) -> QgsModelComponentGraphicItem: ...
    def createOutputGraphicItem(self, model: _core.QgsProcessingModelAlgorithm, output: _core.QgsProcessingModelOutput) -> QgsModelComponentGraphicItem: ...
    def createChildAlgGraphicItem(self, model: _core.QgsProcessingModelAlgorithm, child: _core.QgsProcessingModelChildAlgorithm) -> QgsModelChildAlgorithmGraphicItem: ...
    def createParameterGraphicItem(self, model: _core.QgsProcessingModelAlgorithm, param: _core.QgsProcessingModelParameter) -> QgsModelComponentGraphicItem: ...
    def selectedItemChanged(self, selected: QgsModelComponentGraphicItem) -> None: ...
    def componentChanged(self) -> None: ...
    def componentAboutToChange(self, text: str, id: int = ...) -> None: ...
    def rebuildRequired(self) -> None: ...
    def showWarning(self, shortMessage: str, title: str, longMessage: str, level: _core.Qgis.MessageLevel = ...) -> None: ...
    def setMessageBar(self, bar: QgsMessageBar) -> None: ...
    def messageBar(self) -> 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: QgsModelComponentGraphicItem) -> None: ...
    def deselectAll(self) -> None: ...
    def selectAll(self) -> None: ...
    def groupBoxItem(self, uuid: str) -> QgsModelComponentGraphicItem: ...
    def componentItemAt(self, position: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> QgsModelComponentGraphicItem: ...
    def selectedComponentItems(self) -> typing.List[QgsModelComponentGraphicItem]: ...
    def createItems(self, model: _core.QgsProcessingModelAlgorithm, context: _core.QgsProcessingContext) -> None: ...
    def mousePressEvent(self, event: 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: _core.QgsProcessingModelAlgorithm) -> None: ...
    def model(self) -> _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: ...

    def deleteSelectedItems(self) -> None: ...
    def endCommand(self) -> None: ...
    def beginCommand(self, text: str) -> None: ...
    def macroCommandEnded(self) -> None: ...
    def macroCommandStarted(self, text: str) -> None: ...
    def willBeDeleted(self) -> None: ...
    def itemFocused(self, item: QgsModelComponentGraphicItem) -> None: ...
    def inputDropped(self, inputId: str, pos: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> None: ...
    def algorithmDropped(self, algorithmId: str, pos: typing.Union[QtCore.QPointF, QtCore.QPoint]) -> None: ...
    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: str) -> None: ...
    def modelScene(self) -> QgsModelGraphicsScene: ...
    def setModelScene(self, scene: QgsModelGraphicsScene) -> None: ...
    def keyReleaseEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def mouseDoubleClickEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mouseReleaseEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def wheelEvent(self, event: QtGui.QWheelEvent) -> None: ...
    def dragMoveEvent(self, event: QtGui.QDragMoveEvent) -> None: ...
    def dropEvent(self, event: QtGui.QDropEvent) -> None: ...
    def dragEnterEvent(self, event: QtGui.QDragEnterEvent) -> None: ...


class QgsModelViewSnapMarker(QtWidgets.QGraphicsRectItem):

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

    def paint(self, painter: QtGui.QPainter, option: 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) -> QtCore.QSortFilterProxyModel: ...
    def init(self, model: _core.QgsAbstractDbTableModel, delegate: typing.Optional[QtWidgets.QItemDelegate] = ...) -> 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: ...
    def classificationModeChanged(self, mode: _core.QgsColorRampShader.ClassificationMode) -> None: ...
    def widgetChanged(self) -> None: ...
    def minimumMaximumChangedFromTree(self, minimum: float, maximum: float) -> None: ...
    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: _core.QgsRasterDataProvider) -> None: ...
    def initializeForUseWithRasterLayer(self) -> None: ...


class QgsRasterRendererWidget(QtWidgets.QWidget):

    def __init__(self, layer: _core.QgsRasterLayer, extent: _core.QgsRectangle) -> None: ...

    def widgetChanged(self) -> None: ...
    def setContrastEnhancementAlgorithm(self, algorithm: _core.QgsContrastEnhancement.ContrastEnhancementAlgorithm) -> None: ...
    def contrastEnhancementAlgorithm(self) -> _core.QgsContrastEnhancement.ContrastEnhancementAlgorithm: ...
    def minMaxWidget(self) -> 'QgsRasterMinMaxWidget': ...
    def doComputations(self) -> None: ...
    def selectedBand(self, index: int = ...) -> int: ...
    def setStdDev(self, value: str) -> None: ...
    def stdDev(self) -> str: ...
    def setMax(self, value: str, index: int = ...) -> None: ...
    def setMin(self, value: str, index: int = ...) -> None: ...
    def max(self, index: int = ...) -> str: ...
    def min(self, index: int = ...) -> str: ...
    def mapCanvas(self) -> QgsMapCanvas: ...
    def setMapCanvas(self, canvas: QgsMapCanvas) -> None: ...
    def rasterLayer(self) -> _core.QgsRasterLayer: ...
    def setRasterLayer(self, layer: _core.QgsRasterLayer) -> None: ...
    def renderer(self) -> _core.QgsRasterRenderer: ...


class QgsHillshadeRendererWidget(QgsRasterRendererWidget):

    def __init__(self, layer: _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: _core.QgsRasterRenderer) -> None: ...
    def renderer(self) -> _core.QgsRasterRenderer: ...
    @staticmethod
    def create(layer: _core.QgsRasterLayer, extent: _core.QgsRectangle) -> QgsRasterRendererWidget: ...


class QgsMultiBandColorRendererWidget(QgsRasterRendererWidget):

    def __init__(self, layer: _core.QgsRasterLayer, extent: _core.QgsRectangle = ...) -> None: ...

    def loadMinMax(self, bandNo: int, min: float, max: float) -> None: ...
    def minMaxWidget(self) -> '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: str, index: int = ...) -> None: ...
    def setMin(self, value: str, index: int = ...) -> None: ...
    def max(self, index: int = ...) -> str: ...
    def min(self, index: int = ...) -> str: ...
    def setFromRenderer(self, r: _core.QgsRasterRenderer) -> None: ...
    def setMapCanvas(self, canvas: QgsMapCanvas) -> None: ...
    def renderer(self) -> _core.QgsRasterRenderer: ...
    @staticmethod
    def create(layer: _core.QgsRasterLayer, extent: _core.QgsRectangle) -> QgsRasterRendererWidget: ...


class QgsPalettedRendererWidget(QgsRasterRendererWidget):

    def __init__(self, layer: _core.QgsRasterLayer, extent: _core.QgsRectangle = ...) -> None: ...

    def setFromRenderer(self, r: _core.QgsRasterRenderer) -> None: ...
    def renderer(self) -> _core.QgsRasterRenderer: ...
    @staticmethod
    def create(layer: _core.QgsRasterLayer, extent: _core.QgsRectangle) -> QgsRasterRendererWidget: ...


class QgsRasterBandComboBox(QtWidgets.QComboBox):

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

    def bandChanged(self, band: int) -> None: ...
    def setBand(self, band: int) -> None: ...
    def setLayer(self, layer: _core.QgsMapLayer) -> None: ...
    @staticmethod
    def displayBandName(provider: _core.QgsRasterDataProvider, band: int) -> str: ...
    def setShowNotSetOption(self, show: bool, string: str = ...) -> None: ...
    def isShowingNotSetOption(self) -> bool: ...
    def currentBand(self) -> int: ...
    def layer(self) -> _core.QgsRasterLayer: ...


class QgsRasterContourRendererWidget(QgsRasterRendererWidget):

    def __init__(self, layer: _core.QgsRasterLayer, extent: _core.QgsRectangle = ...) -> None: ...

    def renderer(self) -> _core.QgsRasterRenderer: ...
    @staticmethod
    def create(layer: _core.QgsRasterLayer, extent: _core.QgsRectangle) -> QgsRasterRendererWidget: ...


class QgsRasterHistogramWidget(QgsMapLayerConfigWidget):

    def __init__(self, layer: _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: str, actionFlag: bool = ...) -> None: ...
    def computeHistogram(self, forceComputeFlag: bool) -> bool: ...
    def setActive(self, activeFlag: bool) -> None: ...
    def setRendererWidget(self, name: str, rendererWidget: typing.Optional[QgsRasterRendererWidget] = ...) -> None: ...
    def histoSaveAsImage(self, filename: str, width: int = ..., height: int = ..., quality: int = ...) -> bool: ...


class QgsRasterMinMaxWidget(QtWidgets.QWidget):

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

    def load(self, bandNo: int, min: float, max: float) -> None: ...
    def widgetChanged(self) -> None: ...
    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) -> QgsMapCanvas: ...
    def setMapCanvas(self, canvas: QgsMapCanvas) -> None: ...
    def setExtent(self, extent: _core.QgsRectangle) -> None: ...


class QgsRasterTransparencyWidget(QgsMapLayerConfigWidget):

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

    def apply(self) -> None: ...
    def syncToLayer(self) -> None: ...
    def pixelSelectorTool(self) -> QgsMapToolEmitPoint: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...


class QgsRendererRasterPropertiesWidget(QgsMapLayerConfigWidget):

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

    def syncToLayer(self, layer: _core.QgsRasterLayer) -> None: ...
    def apply(self) -> None: ...
    def rendererChanged(self) -> None: ...
    def currentRenderWidget(self) -> QgsRasterRendererWidget: ...
    def setMapCanvas(self, canvas: QgsMapCanvas) -> None: ...


class QgsSingleBandGrayRendererWidget(QgsRasterRendererWidget):

    def __init__(self, layer: _core.QgsRasterLayer, extent: _core.QgsRectangle = ...) -> None: ...

    def loadMinMax(self, bandNo: int, min: float, max: float) -> None: ...
    def minMaxWidget(self) -> 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: str, index: int = ...) -> None: ...
    def setMin(self, value: str, index: int = ...) -> None: ...
    def max(self, index: int = ...) -> str: ...
    def min(self, index: int = ...) -> str: ...
    def setFromRenderer(self, r: _core.QgsRasterRenderer) -> None: ...
    def setMapCanvas(self, canvas: QgsMapCanvas) -> None: ...
    def renderer(self) -> _core.QgsRasterRenderer: ...
    @staticmethod
    def create(layer: _core.QgsRasterLayer, extent: _core.QgsRectangle) -> QgsRasterRendererWidget: ...


class QgsSingleBandPseudoColorRendererWidget(QgsRasterRendererWidget):

    def __init__(self, layer: _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: str, index: int = ...) -> None: ...
    def setMin(self, value: str, index: int = ...) -> None: ...
    def max(self, index: int = ...) -> str: ...
    def min(self, index: int = ...) -> str: ...
    def setFromRenderer(self, r: _core.QgsRasterRenderer) -> None: ...
    def minMaxWidget(self) -> QgsRasterMinMaxWidget: ...
    def doComputations(self) -> None: ...
    def setMapCanvas(self, canvas: QgsMapCanvas) -> None: ...
    def renderer(self) -> _core.QgsRasterRenderer: ...
    @staticmethod
    def create(layer: _core.QgsRasterLayer, extent: _core.QgsRectangle) -> QgsRasterRendererWidget: ...


class QgsRasterLayerProperties(QgsOptionsDialogBase):

    def __init__(self, lyr: _core.QgsMapLayer, canvas: QgsMapCanvas, parent: typing.Optional[QtWidgets.QWidget] = ..., a3: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...

    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def addPropertiesPageFactory(self, factory: QgsMapLayerConfigWidgetFactory) -> None: ...


class QgsRasterLayerTemporalPropertiesWidget(QtWidgets.QWidget):

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

    def addWidget(self, widget: QgsMapLayerConfigWidget) -> None: ...
    def syncToLayer(self) -> None: ...
    def saveTemporalProperties(self) -> None: ...


class QgsFieldCalculator(QtWidgets.QDialog):

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

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


class QgsVectorLayerProperties(QgsOptionsDialogBase):

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

    def addPropertiesPageFactory(self, factory: QgsMapLayerConfigWidgetFactory) -> None: ...


class CharacterWidget(QtWidgets.QWidget):

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

    def resizeEvent(self, event: QtGui.QResizeEvent) -> None: ...
    def paintEvent(self, event: QtGui.QPaintEvent) -> None: ...
    def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def mouseMoveEvent(self, event: QtGui.QMouseEvent) -> None: ...
    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def characterSelected(self, character: str) -> None: ...
    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: 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: _core.QgsVectorLayer, style: _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: _core.QgsMarkerSymbol, ddsLegend: _core.QgsDataDefinedSizeLegend) -> 'QgsDataDefinedSizeLegendWidget': ...
    def refreshSymbolView(self) -> None: ...
    def selectedSymbols(self) -> typing.List[_core.QgsSymbol]: ...
    def symbolLevelsChanged(self) -> None: ...
    def layerVariablesChanged(self) -> None: ...
    def setDockMode(self, dockMode: bool) -> None: ...
    def applyChanges(self) -> None: ...
    def vectorLayer(self) -> _core.QgsVectorLayer: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def showSymbolLevelsDialog(self, r: _core.QgsFeatureRenderer) -> None: ...
    def renderer(self) -> _core.QgsFeatureRenderer: ...


class Qgs25DRendererWidget(QgsRendererWidget):

    def __init__(self, layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> None: ...

    def renderer(self) -> _core.QgsFeatureRenderer: ...
    @staticmethod
    def create(layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> QgsRendererWidget: ...


class QgsSymbolLayerWidget(QtWidgets.QWidget):

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

    def updateDataDefinedProperty(self) -> None: ...
    def symbolChanged(self) -> None: ...
    def changed(self) -> None: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def registerDataDefinedButton(self, button: QgsPropertyOverrideButton, key: _core.QgsSymbolLayer.Property) -> None: ...
    def vectorLayer(self) -> _core.QgsVectorLayer: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...


class QgsArrowSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(layer: _core.QgsVectorLayer) -> 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: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> None: ...

    def keyPressEvent(self, event: 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: str) -> None: ...
    def changeCategorizedSymbol(self) -> None: ...
    def matchToSymbols(self, style: _core.QgsStyle) -> int: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> _core.QgsFeatureRenderer: ...
    @staticmethod
    def create(layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> QgsRendererWidget: ...


class QgsCptCityColorRampDialog(QtWidgets.QDialog):

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

    def changed(self) -> None: ...
    def eventFilter(self, obj: QtCore.QObject, event: QtCore.QEvent) -> bool: ...
    def buttonBox(self) -> 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.QgsUnitTypes.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.QgsUnitTypes.RenderUnit) -> None: ...
    def dashDotVector(self) -> typing.List[float]: ...


class QgsDataDefinedSizeLegendWidget(QgsPanelWidget):

    def __init__(self, ddsLegend: _core.QgsDataDefinedSizeLegend, ddSize: _core.QgsProperty, overrideSymbol: _core.QgsMarkerSymbol, canvas: typing.Optional[QgsMapCanvas] = ..., parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def dataDefinedSizeLegend(self) -> _core.QgsDataDefinedSizeLegend: ...


class QgsEllipseSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsEmbeddedSymbolRendererWidget(QgsRendererWidget, _core.QgsExpressionContextGenerator):

    def __init__(self, layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> None: ...

    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> _core.QgsFeatureRenderer: ...
    @staticmethod
    def create(layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> QgsRendererWidget: ...


class QgsGraduatedHistogramWidget(QgsHistogramWidget):

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

    def drawHistogram(self) -> None: ...
    def rangesModified(self, rangesAdded: bool) -> None: ...
    def setRenderer(self, renderer: _core.QgsGraduatedSymbolRenderer) -> None: ...


class QgsGraduatedSymbolRendererWidget(QgsRendererWidget):

    def __init__(self, layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> None: ...

    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def refreshSymbolView(self) -> None: ...
    def findSymbolForRange(self, lowerBound: float, upperBound: float, ranges: typing.Iterable[_core.QgsRendererRange]) -> _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: 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: str) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> _core.QgsFeatureRenderer: ...
    @staticmethod
    def create(layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> QgsRendererWidget: ...


class QgsHeatmapRendererWidget(QgsRendererWidget):

    def __init__(self, layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> None: ...

    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> _core.QgsFeatureRenderer: ...
    @staticmethod
    def create(layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> QgsRendererWidget: ...


class QgsInterpolatedLineSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(layer: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsInvertedPolygonRendererWidget(QgsRendererWidget):

    def __init__(self, layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> None: ...

    def setDockMode(self, dockMode: bool) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> _core.QgsFeatureRenderer: ...
    @staticmethod
    def create(layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> QgsRendererWidget: ...


class QgsLayerPropertiesWidget(QgsPanelWidget, _core.QgsExpressionContextGenerator):

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

    def registerDataDefinedButton(self, button: QgsPropertyOverrideButton, key: _core.QgsSymbolLayer.Property) -> None: ...
    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def updateSymbolLayerWidget(self, layer: _core.QgsSymbolLayer) -> None: ...
    def populateLayerTypes(self) -> None: ...
    def changeLayer(self, a0: _core.QgsSymbolLayer) -> None: ...
    def changed(self) -> None: ...
    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: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> None: ...

    def setDockMode(self, dockMode: bool) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> _core.QgsFeatureRenderer: ...
    @staticmethod
    def create(layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> QgsRendererWidget: ...


class QgsNullSymbolRendererWidget(QgsRendererWidget):

    def __init__(self, layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> None: ...

    def renderer(self) -> _core.QgsFeatureRenderer: ...
    @staticmethod
    def create(layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> QgsRendererWidget: ...


class QgsMaskMarkerSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(layer: _core.QgsVectorLayer) -> 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: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> None: ...

    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> _core.QgsFeatureRenderer: ...
    @staticmethod
    def create(layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> QgsRendererWidget: ...


class QgsPointDisplacementRendererWidget(QgsRendererWidget, _core.QgsExpressionContextGenerator):

    def __init__(self, layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> None: ...

    def createExpressionContext(self) -> _core.QgsExpressionContext: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def renderer(self) -> _core.QgsFeatureRenderer: ...
    @staticmethod
    def create(layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> QgsRendererWidget: ...


class QgsRendererPropertiesDialog(QtWidgets.QDialog):

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

    def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: ...
    def connectValueChanged(self, widgets: typing.Iterable[QtWidgets.QWidget], slot: str) -> None: ...
    def openPanel(self, panel: QgsPanelWidget) -> None: ...
    def onOK(self) -> None: ...
    def apply(self) -> None: ...
    def rendererChanged(self) -> None: ...
    def showPanel(self, panel: QgsPanelWidget) -> None: ...
    def widgetChanged(self) -> None: ...
    def layerVariablesChanged(self) -> None: ...
    def setDockMode(self, dockMode: bool) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def setMapCanvas(self, canvas: QgsMapCanvas) -> None: ...


class QgsDataDefinedValueDialog(QtWidgets.QDialog):

    def __init__(self, symbolList: typing.Iterable[_core.QgsSymbol], layer: _core.QgsVectorLayer, label: str) -> None: ...

    def init(self, propertyKey: int) -> None: ...
    def dataDefinedChanged(self) -> None: ...
    def vectorLayer(self) -> _core.QgsVectorLayer: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...


class QgsDataDefinedSizeDialog(QgsDataDefinedValueDialog):

    def __init__(self, symbolList: typing.Iterable[_core.QgsSymbol], layer: _core.QgsVectorLayer) -> None: ...

    def setDataDefined(self, symbol: _core.QgsSymbol, dd: _core.QgsProperty) -> None: ...
    def value(self, symbol: _core.QgsSymbol) -> float: ...
    def symbolDataDefined(self, symbol: _core.QgsSymbol) -> _core.QgsProperty: ...


class QgsDataDefinedRotationDialog(QgsDataDefinedValueDialog):

    def __init__(self, symbolList: typing.Iterable[_core.QgsSymbol], layer: _core.QgsVectorLayer) -> None: ...

    def setDataDefined(self, symbol: _core.QgsSymbol, dd: _core.QgsProperty) -> None: ...
    def value(self, symbol: _core.QgsSymbol) -> float: ...
    def symbolDataDefined(self, symbol: _core.QgsSymbol) -> _core.QgsProperty: ...


class QgsDataDefinedWidthDialog(QgsDataDefinedValueDialog):

    def __init__(self, symbolList: typing.Iterable[_core.QgsSymbol], layer: _core.QgsVectorLayer) -> None: ...

    def setDataDefined(self, symbol: _core.QgsSymbol, dd: _core.QgsProperty) -> None: ...
    def value(self, symbol: _core.QgsSymbol) -> float: ...
    def symbolDataDefined(self, symbol: _core.QgsSymbol) -> _core.QgsProperty: ...


class QgsRuleBasedRendererModel(QtCore.QAbstractItemModel):

    def __init__(self, renderer: _core.QgsRuleBasedRenderer, parent: QtCore.QObject) -> 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: _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: _core.QgsRuleBasedRenderer.Rule) -> None: ...
    def ruleForIndex(self, index: QtCore.QModelIndex) -> _core.QgsRuleBasedRenderer.Rule: ...
    def removeRows(self, row: int, count: int, parent: QtCore.QModelIndex = ...) -> bool: ...
    def dropMimeData(self, data: QtCore.QMimeData, action: QtCore.Qt.DropAction, row: int, column: int, parent: QtCore.QModelIndex) -> bool: ...
    def mimeData(self, indexes: typing.Iterable[QtCore.QModelIndex]) -> 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: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> None: ...

    def pasteSymbolToSelection(self) -> None: ...
    def paste(self) -> None: ...
    def copy(self) -> None: ...
    def keyPressEvent(self, event: 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) -> _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) -> _core.QgsFeatureRenderer: ...
    @staticmethod
    def create(layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> QgsRendererWidget: ...


class QgsRendererRulePropsWidget(QgsPanelWidget):

    def __init__(self, rule: _core.QgsRuleBasedRenderer.Rule, layer: _core.QgsVectorLayer, style: _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) -> _core.QgsRuleBasedRenderer.Rule: ...


class QgsRendererRulePropsDialog(QtWidgets.QDialog):

    def __init__(self, rule: _core.QgsRuleBasedRenderer.Rule, layer: _core.QgsVectorLayer, style: _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) -> _core.QgsRuleBasedRenderer.Rule: ...


class QgsSingleSymbolRendererWidget(QgsRendererWidget):

    def __init__(self, layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _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) -> _core.QgsFeatureRenderer: ...
    @staticmethod
    def create(layer: _core.QgsVectorLayer, style: _core.QgsStyle, renderer: _core.QgsFeatureRenderer) -> QgsRendererWidget: ...


class QgsSmartGroupCondition(QtWidgets.QWidget):

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

    def removed(self, a0: int) -> None: ...
    def destruct(self) -> None: ...
    def hideRemoveButton(self, hide: bool) -> None: ...
    def setParameter(self, param: str) -> None: ...
    def setConstraint(self, constraint: str) -> None: ...
    def parameter(self) -> str: ...
    def constraint(self) -> str: ...


class QgsSmartGroupEditorDialog(QtWidgets.QDialog):

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

    def removeCondition(self, a0: int) -> None: ...
    def addCondition(self) -> None: ...
    def setSmartgroupName(self, a0: str) -> None: ...
    def setOperator(self, a0: 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: _core.QgsStyle, parent: typing.Optional[QtWidgets.QWidget] = ..., mode: 'QgsStyleExportImportDialog.Mode' = ...) -> None: ...

    def importTypeChanged(self, a0: int) -> None: ...
    def deselectSmartgroup(self, groupName: str) -> None: ...
    def selectSmartgroup(self, groupName: str) -> None: ...
    def deselectTag(self, tagName: str) -> None: ...
    def selectTag(self, tagName: 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[str]) -> None: ...
    def selectSymbols(self, symbolNames: typing.Iterable[str]) -> None: ...
    def setImportFilePath(self, path: str) -> None: ...


class QgsStyleGroupSelectionDialog(QtWidgets.QDialog):

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

    def favoritesSelected(self) -> None: ...
    def favoritesDeselected(self) -> None: ...
    def allSelected(self) -> None: ...
    def allDeselected(self) -> None: ...
    def smartgroupDeselected(self, groupName: str) -> None: ...
    def smartgroupSelected(self, groupName: str) -> None: ...
    def tagDeselected(self, tagName: str) -> None: ...
    def tagSelected(self, tagName: str) -> None: ...
    def setBold(self, item: QtGui.QStandardItem) -> None: ...


class QgsStyleManagerDialog(QtWidgets.QDialog):

    @typing.overload
    def __init__(self, style: _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: 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[str], checkable: bool = ...) -> None: ...
    def populateSymbols(self, symbolNames: typing.Iterable[str], checkable: bool = ...) -> None: ...
    def setSymbolsChecked(self, a0: typing.Iterable[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: 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: str) -> None: ...
    def regrouped(self, a0: 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: QtGui.QStandardItem) -> None: ...
    def groupChanged(self, a0: QtCore.QModelIndex) -> None: ...
    def itemChanged(self, item: 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: str, format: 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: str) -> None: ...
    def setSmartGroupsVisible(self, show: bool) -> None: ...
    def setFavoritesGroupVisible(self, show: bool) -> None: ...
    @staticmethod
    def addColorRampStatic(parent: QtWidgets.QWidget, style: _core.QgsStyle, RampType: str = ...) -> str: ...


class QgsStyleSaveDialog(QtWidgets.QDialog):

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

    def destinationStyle(self) -> _core.QgsStyle: ...
    def selectedType(self) -> _core.QgsStyle.StyleEntity: ...
    def isFavorite(self) -> bool: ...
    def tags(self) -> str: ...
    def setDefaultTags(self, tags: str) -> None: ...
    def name(self) -> str: ...


class QgsSvgSelectorFilterModel(QtCore.QSortFilterProxyModel):

    def __init__(self, parent: QtCore.QObject, path: str = ..., iconSize: int = ...) -> None: ...


class QgsSvgSelectorListModel(QtCore.QAbstractListModel):

    @typing.overload
    def __init__(self, parent: QtCore.QObject, iconSize: int = ...) -> None: ...
    @typing.overload
    def __init__(self, parent: QtCore.QObject, path: 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: QtCore.QObject) -> None: ...


class QgsSvgSelectorWidget(QtWidgets.QWidget):

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

    def populateList(self) -> None: ...
    def svgParametersChanged(self, parameters: typing.Dict[str, _core.QgsProperty]) -> None: ...
    def svgSelected(self, path: str) -> None: ...
    def setSvgParameters(self, parameters: typing.Dict[str, _core.QgsProperty]) -> None: ...
    def setSvgPath(self, svgPath: str) -> None: ...
    def propertyOverrideToolButton(self) -> QgsPropertyOverrideButton: ...
    def browserVisible(self) -> bool: ...
    def setBrowserVisible(self, visible: bool) -> None: ...
    def allowParamerters(self) -> bool: ...
    def setAllowParameters(self, allow: bool) -> None: ...
    def sourceLineEdit(self) -> QgsPictureSourceLineEditBase: ...
    def currentSvgPath(self) -> str: ...
    def initParametersModel(self, generator: _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) -> 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: _core.QgsVectorLayer, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def resizeEvent(self, event: QtGui.QResizeEvent) -> None: ...
    def updatePatternIcon(self) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsSimpleMarkerSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def setColorFill(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def setColorStroke(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsSimpleFillSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def setStrokeColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsFilledMarkerSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsGradientFillSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: _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, QtGui.QGradient]) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsShapeburstFillSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def setColor2(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsMarkerLineSymbolLayerWidget(QgsSymbolLayerWidget):

    def __init__(self, vl: _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) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsHashedLineSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsSvgMarkerSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def setGuiForSvg(self, layer: _core.QgsSvgMarkerSymbolLayer, skipDefaultColors: bool = ...) -> None: ...
    def populateList(self) -> None: ...
    def setSvgParameters(self, parameters: typing.Dict[str, _core.QgsProperty]) -> None: ...
    def setSvgPath(self, name: str) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsRasterMarkerSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsAnimatedMarkerSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsRasterFillSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsRasterLineSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsLineburstSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsSVGFillSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def updateParamGui(self, resetValues: bool = ...) -> None: ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsLinePatternFillSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsPointPatternFillSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsRandomMarkerFillSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsFontMarkerSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def setCharacterFromText(self, text: 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, QtGui.QGradient]) -> None: ...
    def setColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> None: ...
    def setFontFamily(self, font: QtGui.QFont) -> None: ...
    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsCentroidFillSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsGeometryGeneratorSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsSymbolLevelsWidget(QgsPanelWidget):

    @typing.overload
    def __init__(self, renderer: _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: _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: _core.QgsSymbol, style: _core.QgsStyle, vl: _core.QgsVectorLayer, parent: typing.Optional[QtWidgets.QWidget] = ...) -> None: ...

    def symbolModified(self) -> None: ...
    def changeLayer(self, layer: _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) -> _core.QgsSymbol: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def advancedMenu(self) -> QtWidgets.QMenu: ...


class QgsSymbolSelectorDialog(QtWidgets.QDialog):

    def __init__(self, symbol: _core.QgsSymbol, style: _core.QgsStyle, vl: _core.QgsVectorLayer, parent: typing.Optional[QtWidgets.QWidget] = ..., embedded: bool = ...) -> None: ...

    def symbolModified(self) -> None: ...
    def keyPressEvent(self, e: QtGui.QKeyEvent) -> None: ...
    def changeLayer(self, layer: _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) -> QtWidgets.QDialogButtonBox: ...
    def symbol(self) -> _core.QgsSymbol: ...
    def context(self) -> 'QgsSymbolWidgetContext': ...
    def setContext(self, context: 'QgsSymbolWidgetContext') -> None: ...
    def advancedMenu(self) -> QtWidgets.QMenu: ...


class QgsSymbolsListWidget(QtWidgets.QWidget):

    def __init__(self, symbol: _core.QgsSymbol, style: _core.QgsStyle, menu: QtWidgets.QMenu, parent: QtWidgets.QWidget, layer: typing.Optional[_core.QgsVectorLayer] = ...) -> None: ...

    def changed(self) -> None: ...
    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, QtGui.QGradient]) -> None: ...
    def layer(self) -> _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: _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) -> _core.QgsExpressionContext: ...
    def setExpressionContext(self, context: _core.QgsExpressionContext) -> None: ...
    def messageBar(self) -> QgsMessageBar: ...
    def setMessageBar(self, bar: QgsMessageBar) -> None: ...
    def mapCanvas(self) -> QgsMapCanvas: ...
    def setMapCanvas(self, canvas: QgsMapCanvas) -> None: ...


class QgsVectorFieldSymbolLayerWidget(QgsSymbolLayerWidget):

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

    def symbolLayer(self) -> _core.QgsSymbolLayer: ...
    def setSymbolLayer(self, layer: _core.QgsSymbolLayer) -> None: ...
    @staticmethod
    def create(vl: _core.QgsVectorLayer) -> QgsSymbolLayerWidget: ...


class QgsSettingsRegistryGui(_core.QgsSettingsRegistry):

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


class QgsTableEditorDialog(QtWidgets.QMainWindow):

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

    def closeEvent(self, a0: QtGui.QCloseEvent) -> None: ...
    def includeHeaderChanged(self, included: bool) -> None: ...
    def tableChanged(self) -> None: ...
    def registerExpressionContextGenerator(self, generator: _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: ...

    def activeCellChanged(self) -> None: ...
    def tableChanged(self) -> None: ...
    def keyPressEvent(self, event: 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, QtGui.QGradient]) -> None: ...
    def setSelectionForegroundColor(self, color: typing.Union[QtGui.QColor, QtCore.Qt.GlobalColor, QtGui.QGradient]) -> 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) -> _core.QgsNumericFormat: ...
    def setSelectionNumericFormat(self, format: _core.QgsNumericFormat) -> None: ...
    def tableContents(self) -> typing.Any: ...
    def setTableContents(self, contents: typing.Any) -> None: ...


class QgsVectorTileLayerProperties(QgsOptionsDialogBase):

    def __init__(self, lyr: _core.QgsVectorTileLayer, canvas: QgsMapCanvas, messageBar: QgsMessageBar, parent: typing.Optional[QtWidgets.QWidget] = ..., a4: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...


class QgsQmlWidgetWrapper(QgsWidgetWrapper):

    def __init__(self, layer: _core.QgsVectorLayer, editor: QtWidgets.QWidget, parent: QtWidgets.QWidget) -> None: ...

    def setFeature(self, feature: _core.QgsFeature) -> None: ...
    def setQmlCode(self, qmlCode: str) -> None: ...
    def reinitWidget(self) -> None: ...
    def initWidget(self, editor: QtWidgets.QWidget) -> None: ...
    def createWidget(self, parent: QtWidgets.QWidget) -> QtWidgets.QWidget: ...
    def valid(self) -> bool: ...


class QgsAdvancedDigitizingCanvasItem(QgsMapCanvasItem):

    def __init__(self, canvas: QgsMapCanvas, cadDockWidget: QgsAdvancedDigitizingDockWidget) -> None: ...

    def updatePosition(self) -> None: ...
    def paint(self, painter: QtGui.QPainter) -> None: ...
