# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
This file contains the exact signatures for all functions in module
PySide6.QtCanvasPainter, except for defaults which are replaced by "...".
"""

# mypy: disable-error-code="override, overload-overlap"
# Module `PySide6.QtCanvasPainter`

import PySide6.QtCanvasPainter
import PySide6.QtCore
import PySide6.QtGui
import PySide6.QtWidgets
import PySide6.QtQuick

import enum
import typing
import collections.abc
from PySide6.QtCore import Signal
from shiboken6 import Shiboken


class QCanvasBoxGradient(PySide6.QtCanvasPainter.QCanvasGradient):

    @typing.overload
    def __init__(self, /) -> None: ...
    @typing.overload
    def __init__(self, QCanvasBoxGradient: PySide6.QtCanvasPainter.QCanvasBoxGradient, /) -> None: ...
    @typing.overload
    def __init__(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, feather: float, /, radius: float = ...) -> None: ...
    @typing.overload
    def __init__(self, x: float, y: float, width: float, height: float, feather: float, /, radius: float = ...) -> None: ...

    def __copy__(self, /) -> typing.Self: ...
    def feather(self, /) -> float: ...
    def radius(self, /) -> float: ...
    def rect(self, /) -> PySide6.QtCore.QRectF: ...
    def setFeather(self, feather: float, /) -> None: ...
    def setRadius(self, radius: float, /) -> None: ...
    @typing.overload
    def setRect(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /) -> None: ...
    @typing.overload
    def setRect(self, x: float, y: float, width: float, height: float, /) -> None: ...


class QCanvasBoxShadow(PySide6.QtCanvasPainter.QCanvasBrush):

    @typing.overload
    def __init__(self, /) -> None: ...
    @typing.overload
    def __init__(self, QCanvasBoxShadow: PySide6.QtCanvasPainter.QCanvasBoxShadow, /) -> None: ...
    @typing.overload
    def __init__(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /, radius: float = ..., blur: float = ..., color: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int = ...) -> None: ...
    @typing.overload
    def __init__(self, x: float, y: float, width: float, height: float, /, radius: float = ..., blur: float = ..., color: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int = ...) -> None: ...

    def __copy__(self, /) -> typing.Self: ...
    def __eq__(self, rhs: PySide6.QtCanvasPainter.QCanvasBoxShadow | PySide6.QtCore.QRectF, /) -> bool: ...
    def __lshift__(self, arg__1: PySide6.QtCore.QDataStream, /) -> PySide6.QtCore.QDataStream: ...
    def __ne__(self, rhs: PySide6.QtCanvasPainter.QCanvasBoxShadow | PySide6.QtCore.QRectF, /) -> bool: ...
    def __repr__(self, /) -> str: ...
    def __rshift__(self, arg__1: PySide6.QtCore.QDataStream, /) -> PySide6.QtCore.QDataStream: ...
    def blur(self, /) -> float: ...
    def bottomLeftRadius(self, /) -> float: ...
    def bottomRightRadius(self, /) -> float: ...
    def boundingRect(self, /) -> PySide6.QtCore.QRectF: ...
    def color(self, /) -> PySide6.QtGui.QColor: ...
    def radius(self, /) -> float: ...
    def rect(self, /) -> PySide6.QtCore.QRectF: ...
    def setBlur(self, blur: float, /) -> None: ...
    def setBottomLeftRadius(self, radius: float, /) -> None: ...
    def setBottomRightRadius(self, radius: float, /) -> None: ...
    def setColor(self, color: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int, /) -> None: ...
    def setRadius(self, radius: float, /) -> None: ...
    @typing.overload
    def setRect(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /) -> None: ...
    @typing.overload
    def setRect(self, x: float, y: float, width: float, height: float, /) -> None: ...
    def setSpread(self, spread: float, /) -> None: ...
    def setTopLeftRadius(self, radius: float, /) -> None: ...
    def setTopRightRadius(self, radius: float, /) -> None: ...
    def spread(self, /) -> float: ...
    def topLeftRadius(self, /) -> float: ...
    def topRightRadius(self, /) -> float: ...


class QCanvasBrush(Shiboken.Object):

    class BrushType(enum.Enum):

        Invalid                   = 0x0
        LinearGradient            = 0x1
        RadialGradient            = 0x2
        ConicalGradient           = 0x3
        BoxGradient               = 0x4
        BoxShadow                 = 0x5
        ImagePattern              = 0x6
        GridPattern               = 0x7
        Custom                    = 0x3e8


    @typing.overload
    def __init__(self, /) -> None: ...
    @typing.overload
    def __init__(self, brush: PySide6.QtCanvasPainter.QCanvasBrush, /) -> None: ...

    def __copy__(self, /) -> typing.Self: ...
    def __repr__(self, /) -> str: ...
    def swap(self, other: PySide6.QtCanvasPainter.QCanvasBrush, /) -> None: ...
    def type(self, /) -> PySide6.QtCanvasPainter.QCanvasBrush.BrushType: ...


class QCanvasConicalGradient(PySide6.QtCanvasPainter.QCanvasGradient):

    @typing.overload
    def __init__(self, /) -> None: ...
    @typing.overload
    def __init__(self, QCanvasConicalGradient: PySide6.QtCanvasPainter.QCanvasConicalGradient, /) -> None: ...
    @typing.overload
    def __init__(self, center: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, startAngle: float, /) -> None: ...
    @typing.overload
    def __init__(self, centerX: float, centerY: float, startAngle: float, /) -> None: ...

    def __copy__(self, /) -> typing.Self: ...
    def angle(self, /) -> float: ...
    def centerPosition(self, /) -> PySide6.QtCore.QPointF: ...
    def setAngle(self, angle: float, /) -> None: ...
    @typing.overload
    def setCenterPosition(self, center: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def setCenterPosition(self, x: float, y: float, /) -> None: ...


class QCanvasCustomBrush(PySide6.QtCanvasPainter.QCanvasBrush):

    @typing.overload
    def __init__(self, /) -> None: ...
    @typing.overload
    def __init__(self, QCanvasCustomBrush: PySide6.QtCanvasPainter.QCanvasCustomBrush, /) -> None: ...
    @typing.overload
    def __init__(self, fragmentShader: str, /, vertexShader: str = ...) -> None: ...

    def __copy__(self, /) -> typing.Self: ...
    def __eq__(self, rhs: PySide6.QtCanvasPainter.QCanvasCustomBrush | str, /) -> bool: ...
    def __ne__(self, rhs: PySide6.QtCanvasPainter.QCanvasCustomBrush | str, /) -> bool: ...
    def __repr__(self, /) -> str: ...
    def setData1(self, data: PySide6.QtGui.QVector4D, /) -> None: ...
    def setData2(self, data: PySide6.QtGui.QVector4D, /) -> None: ...
    def setData3(self, data: PySide6.QtGui.QVector4D, /) -> None: ...
    def setData4(self, data: PySide6.QtGui.QVector4D, /) -> None: ...
    @typing.overload
    def setFragmentShader(self, fragmentShader: PySide6.QtGui.QShader, /) -> None: ...
    @typing.overload
    def setFragmentShader(self, fragmentShader: str, /) -> None: ...
    def setTimeRunning(self, running: bool, /) -> None: ...
    @typing.overload
    def setVertexShader(self, vertexShader: PySide6.QtGui.QShader, /) -> None: ...
    @typing.overload
    def setVertexShader(self, vertexShader: str, /) -> None: ...
    def timeRunning(self, /) -> bool: ...


class QCanvasGradient(PySide6.QtCanvasPainter.QCanvasBrush):

    def __init__(self, QCanvasGradient: PySide6.QtCanvasPainter.QCanvasGradient, /) -> None: ...

    def __copy__(self, /) -> typing.Self: ...
    def __eq__(self, rhs: PySide6.QtCanvasPainter.QCanvasGradient, /) -> bool: ...
    def __lshift__(self, arg__1: PySide6.QtCore.QDataStream, /) -> PySide6.QtCore.QDataStream: ...
    def __ne__(self, rhs: PySide6.QtCanvasPainter.QCanvasGradient, /) -> bool: ...
    def __repr__(self, /) -> str: ...
    def __rshift__(self, arg__1: PySide6.QtCore.QDataStream, /) -> PySide6.QtCore.QDataStream: ...
    def endColor(self, /) -> PySide6.QtGui.QColor: ...
    def setColorAt(self, position: float, color: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int, /) -> None: ...
    def setEndColor(self, color: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int, /) -> None: ...
    def setStartColor(self, color: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int, /) -> None: ...
    def startColor(self, /) -> PySide6.QtGui.QColor: ...
    def type(self, /) -> PySide6.QtCanvasPainter.QCanvasBrush.BrushType: ...


class QCanvasGridPattern(PySide6.QtCanvasPainter.QCanvasBrush):

    @typing.overload
    def __init__(self, /) -> None: ...
    @typing.overload
    def __init__(self, QCanvasGridPattern: PySide6.QtCanvasPainter.QCanvasGridPattern, /) -> None: ...
    @typing.overload
    def __init__(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /, lineColor: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int = ..., backgroundColor: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int = ..., lineWidth: float = ..., feather: float = ..., angle: float = ...) -> None: ...
    @typing.overload
    def __init__(self, x: float, y: float, width: float, height: float, /, lineColor: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int = ..., backgroundColor: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int = ..., lineWidth: float = ..., feather: float = ..., angle: float = ...) -> None: ...

    def __copy__(self, /) -> typing.Self: ...
    def __eq__(self, rhs: PySide6.QtCanvasPainter.QCanvasGridPattern | PySide6.QtCore.QRectF, /) -> bool: ...
    def __lshift__(self, arg__1: PySide6.QtCore.QDataStream, /) -> PySide6.QtCore.QDataStream: ...
    def __ne__(self, rhs: PySide6.QtCanvasPainter.QCanvasGridPattern | PySide6.QtCore.QRectF, /) -> bool: ...
    def __repr__(self, /) -> str: ...
    def __rshift__(self, arg__1: PySide6.QtCore.QDataStream, /) -> PySide6.QtCore.QDataStream: ...
    def backgroundColor(self, /) -> PySide6.QtGui.QColor: ...
    def cellSize(self, /) -> PySide6.QtCore.QSizeF: ...
    def feather(self, /) -> float: ...
    def lineColor(self, /) -> PySide6.QtGui.QColor: ...
    def lineWidth(self, /) -> float: ...
    def rotation(self, /) -> float: ...
    def setBackgroundColor(self, color: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int, /) -> None: ...
    @typing.overload
    def setCellSize(self, size: PySide6.QtCore.QSizeF | PySide6.QtCore.QSize, /) -> None: ...
    @typing.overload
    def setCellSize(self, width: float, height: float, /) -> None: ...
    def setFeather(self, feather: float, /) -> None: ...
    def setLineColor(self, color: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int, /) -> None: ...
    def setLineWidth(self, width: float, /) -> None: ...
    def setRotation(self, rotation: float, /) -> None: ...
    @typing.overload
    def setStartPosition(self, point: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def setStartPosition(self, x: float, y: float, /) -> None: ...
    def startPosition(self, /) -> PySide6.QtCore.QPointF: ...


class QCanvasImage(Shiboken.Object):

    @typing.overload
    def __init__(self, /) -> None: ...
    @typing.overload
    def __init__(self, image: PySide6.QtCanvasPainter.QCanvasImage, /) -> None: ...

    def __copy__(self, /) -> typing.Self: ...
    def __eq__(self, rhs: PySide6.QtCanvasPainter.QCanvasImage, /) -> bool: ...
    def __ne__(self, rhs: PySide6.QtCanvasPainter.QCanvasImage, /) -> bool: ...
    def __repr__(self, /) -> str: ...
    def height(self, /) -> int: ...
    def id(self, /) -> int: ...
    def isNull(self, /) -> bool: ...
    def setTintColor(self, color: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int, /) -> None: ...
    def size(self, /) -> PySide6.QtCore.QSize: ...
    def sizeInBytes(self, /) -> int: ...
    def swap(self, other: PySide6.QtCanvasPainter.QCanvasImage, /) -> None: ...
    def tintColor(self, /) -> PySide6.QtGui.QColor: ...
    def width(self, /) -> int: ...


class QCanvasImagePattern(PySide6.QtCanvasPainter.QCanvasBrush):

    @typing.overload
    def __init__(self, /) -> None: ...
    @typing.overload
    def __init__(self, QCanvasImagePattern: PySide6.QtCanvasPainter.QCanvasImagePattern, /) -> None: ...
    @typing.overload
    def __init__(self, image: PySide6.QtCanvasPainter.QCanvasImage, /) -> None: ...
    @typing.overload
    def __init__(self, image: PySide6.QtCanvasPainter.QCanvasImage, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /, angle: float = ..., tintColor: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int = ...) -> None: ...
    @typing.overload
    def __init__(self, image: PySide6.QtCanvasPainter.QCanvasImage, x: float, y: float, width: float, height: float, /, angle: float = ..., tintColor: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int = ...) -> None: ...

    def __copy__(self, /) -> typing.Self: ...
    def __eq__(self, rhs: PySide6.QtCanvasPainter.QCanvasImagePattern | PySide6.QtCanvasPainter.QCanvasImage, /) -> bool: ...
    def __lshift__(self, arg__1: PySide6.QtCore.QDataStream, /) -> PySide6.QtCore.QDataStream: ...
    def __ne__(self, rhs: PySide6.QtCanvasPainter.QCanvasImagePattern | PySide6.QtCanvasPainter.QCanvasImage, /) -> bool: ...
    def __repr__(self, /) -> str: ...
    def __rshift__(self, arg__1: PySide6.QtCore.QDataStream, /) -> PySide6.QtCore.QDataStream: ...
    def image(self, /) -> PySide6.QtCanvasPainter.QCanvasImage: ...
    def imageSize(self, /) -> PySide6.QtCore.QSizeF: ...
    def rotation(self, /) -> float: ...
    def setImage(self, image: PySide6.QtCanvasPainter.QCanvasImage, /) -> None: ...
    @typing.overload
    def setImageSize(self, size: PySide6.QtCore.QSizeF | PySide6.QtCore.QSize, /) -> None: ...
    @typing.overload
    def setImageSize(self, width: float, height: float, /) -> None: ...
    def setRotation(self, rotation: float, /) -> None: ...
    @typing.overload
    def setStartPosition(self, point: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def setStartPosition(self, x: float, y: float, /) -> None: ...
    def setTintColor(self, color: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int, /) -> None: ...
    def startPosition(self, /) -> PySide6.QtCore.QPointF: ...
    def tintColor(self, /) -> PySide6.QtGui.QColor: ...


class QCanvasLinearGradient(PySide6.QtCanvasPainter.QCanvasGradient):

    @typing.overload
    def __init__(self, /) -> None: ...
    @typing.overload
    def __init__(self, QCanvasLinearGradient: PySide6.QtCanvasPainter.QCanvasLinearGradient, /) -> None: ...
    @typing.overload
    def __init__(self, start: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, end: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def __init__(self, startX: float, startY: float, endX: float, endY: float, /) -> None: ...

    def __copy__(self, /) -> typing.Self: ...
    def endPosition(self, /) -> PySide6.QtCore.QPointF: ...
    @typing.overload
    def setEndPosition(self, end: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def setEndPosition(self, x: float, y: float, /) -> None: ...
    @typing.overload
    def setStartPosition(self, start: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def setStartPosition(self, x: float, y: float, /) -> None: ...
    def startPosition(self, /) -> PySide6.QtCore.QPointF: ...


class QCanvasOffscreenCanvas(Shiboken.Object):

    class Flag(enum.Flag):

        PreserveContents          = 0x1
        MipMaps                   = 0x2


    @typing.overload
    def __init__(self, /) -> None: ...
    @typing.overload
    def __init__(self, canvas: PySide6.QtCanvasPainter.QCanvasOffscreenCanvas, /) -> None: ...

    def __copy__(self, /) -> typing.Self: ...
    def __eq__(self, rhs: PySide6.QtCanvasPainter.QCanvasOffscreenCanvas, /) -> bool: ...
    def __ne__(self, rhs: PySide6.QtCanvasPainter.QCanvasOffscreenCanvas, /) -> bool: ...
    def fillColor(self, /) -> PySide6.QtGui.QColor: ...
    def flags(self, /) -> PySide6.QtCanvasPainter.QCanvasOffscreenCanvas.Flag: ...
    def isNull(self, /) -> bool: ...
    def setFillColor(self, color: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int, /) -> None: ...
    def swap(self, other: PySide6.QtCanvasPainter.QCanvasOffscreenCanvas, /) -> None: ...
    def texture(self, /) -> PySide6.QtGui.QRhiTexture: ...


class QCanvasPainter(Shiboken.Object):

    class CompositeOperation(enum.Enum):

        SourceOver                = 0x0
        SourceAtop                = 0x1
        DestinationOut            = 0x2

    class ImageFlag(enum.Flag):

        GenerateMipmaps           = 0x1
        RepeatX                   = 0x2
        RepeatY                   = 0x4
        Repeat                    = 0x6
        FlipY                     = 0x8
        Premultiplied             = 0x10
        Nearest                   = 0x20
        NativeTexture             = 0x40

    class LineCap(enum.Enum):

        Butt                      = 0x0
        Round                     = 0x1
        Square                    = 0x2

    class LineJoin(enum.Enum):

        Round                     = 0x0
        Bevel                     = 0x1
        Miter                     = 0x2

    class PathConnection(enum.Enum):

        NotConnected              = 0x0
        Connected                 = 0x1

    class PathWinding(enum.Enum):

        CounterClockWise          = 0x0
        ClockWise                 = 0x1

    class RenderHint(enum.Flag):

        Antialiasing              = 0x1
        HighQualityStroking       = 0x2
        DisableWindingEnforce     = 0x4

    class TextAlign(enum.Enum):

        Left                      = 0x0
        Right                     = 0x1
        Center                    = 0x2
        Start                     = 0x3
        End                       = 0x4

    class TextBaseline(enum.Enum):

        Top                       = 0x0
        Hanging                   = 0x1
        Middle                    = 0x2
        Alphabetic                = 0x3
        Bottom                    = 0x4

    class TextDirection(enum.Enum):

        LeftToRight               = 0x0
        RightToLeft               = 0x1
        Inherit                   = 0x2
        Auto                      = 0x3

    class WrapMode(enum.Enum):

        NoWrap                    = 0x0
        Wrap                      = 0x1
        WordWrap                  = 0x2
        WrapAnywhere              = 0x3


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

    def activeImageCount(self, /) -> int: ...
    def activeImageMemoryUsage(self, /) -> int: ...
    @typing.overload
    def addImage(self, image: PySide6.QtGui.QImage, /, flags: PySide6.QtCanvasPainter.QCanvasPainter.ImageFlag = ...) -> PySide6.QtCanvasPainter.QCanvasImage: ...
    @typing.overload
    def addImage(self, texture: PySide6.QtGui.QRhiTexture, /, flags: PySide6.QtCanvasPainter.QCanvasPainter.ImageFlag = ...) -> PySide6.QtCanvasPainter.QCanvasImage: ...
    @typing.overload
    def addImage(self, canvas: PySide6.QtCanvasPainter.QCanvasOffscreenCanvas, /, flags: PySide6.QtCanvasPainter.QCanvasPainter.ImageFlag = ...) -> PySide6.QtCanvasPainter.QCanvasImage: ...
    @typing.overload
    def addPath(self, path: PySide6.QtGui.QPainterPath, /) -> None: ...
    @typing.overload
    def addPath(self, path: PySide6.QtCanvasPainter.QCanvasPath | int, /, transform: PySide6.QtGui.QTransform = ...) -> None: ...
    @typing.overload
    def addPath(self, path: PySide6.QtCanvasPainter.QCanvasPath | int, start: int, count: int, /, transform: PySide6.QtGui.QTransform = ...) -> None: ...
    @typing.overload
    def arc(self, centerPoint: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, radius: float, a0: float, a1: float, /, direction: PySide6.QtCanvasPainter.QCanvasPainter.PathWinding = ..., connection: PySide6.QtCanvasPainter.QCanvasPainter.PathConnection = ...) -> None: ...
    @typing.overload
    def arc(self, centerX: float, centerY: float, radius: float, a0: float, a1: float, /, direction: PySide6.QtCanvasPainter.QCanvasPainter.PathWinding = ..., connection: PySide6.QtCanvasPainter.QCanvasPainter.PathConnection = ...) -> None: ...
    @typing.overload
    def arcTo(self, controlPoint1: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, controlPoint2: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, radius: float, /) -> None: ...
    @typing.overload
    def arcTo(self, x1: float, y1: float, x2: float, y2: float, radius: float, /) -> None: ...
    def beginHoleSubPath(self, /) -> None: ...
    def beginPath(self, /) -> None: ...
    def beginSolidSubPath(self, /) -> None: ...
    @typing.overload
    def bezierCurveTo(self, controlPoint1: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, controlPoint2: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, endPoint: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def bezierCurveTo(self, cp1X: float, cp1Y: float, cp2X: float, cp2Y: float, x: float, y: float, /) -> None: ...
    @typing.overload
    def circle(self, centerPoint: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, radius: float, /) -> None: ...
    @typing.overload
    def circle(self, centerX: float, centerY: float, radius: float, /) -> None: ...
    def cleanupResources(self, /) -> None: ...
    @typing.overload
    def clearRect(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /) -> None: ...
    @typing.overload
    def clearRect(self, x: float, y: float, width: float, height: float, /) -> None: ...
    def closePath(self, /) -> None: ...
    def createCanvas(self, pixelSize: PySide6.QtCore.QSize, /, sampleCount: int = ..., flags: PySide6.QtCanvasPainter.QCanvasOffscreenCanvas.Flag = ...) -> PySide6.QtCanvasPainter.QCanvasOffscreenCanvas: ...
    def destroyCanvas(self, canvas: PySide6.QtCanvasPainter.QCanvasOffscreenCanvas, /) -> None: ...
    def devicePixelRatio(self, /) -> float: ...
    def drawBoxShadow(self, shadow: PySide6.QtCanvasPainter.QCanvasBoxShadow | PySide6.QtCore.QRectF, /) -> None: ...
    @typing.overload
    def drawImage(self, image: PySide6.QtCanvasPainter.QCanvasImage, destinationRect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /) -> None: ...
    @typing.overload
    def drawImage(self, image: PySide6.QtCanvasPainter.QCanvasImage, sourceRect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, destinationRect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /) -> None: ...
    @typing.overload
    def drawImage(self, image: PySide6.QtCanvasPainter.QCanvasImage, x: float, y: float, /) -> None: ...
    @typing.overload
    def drawImage(self, image: PySide6.QtCanvasPainter.QCanvasImage, x: float, y: float, width: float, height: float, /) -> None: ...
    @typing.overload
    def ellipse(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /) -> None: ...
    @typing.overload
    def ellipse(self, centerPoint: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, radiusX: float, radiusY: float, /) -> None: ...
    @typing.overload
    def ellipse(self, centerX: float, centerY: float, radiusX: float, radiusY: float, /) -> None: ...
    @typing.overload
    def fill(self, /) -> None: ...
    @typing.overload
    def fill(self, path: PySide6.QtCanvasPainter.QCanvasPath | int, /, pathGroup: int | None = ...) -> None: ...
    @typing.overload
    def fillRect(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /) -> None: ...
    @typing.overload
    def fillRect(self, x: float, y: float, width: float, height: float, /) -> None: ...
    @typing.overload
    def fillText(self, text: str, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /) -> None: ...
    @typing.overload
    def fillText(self, text: str, point: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /, maxWidth: float = ...) -> None: ...
    @typing.overload
    def fillText(self, text: str, x: float, y: float, /, maxWidth: float = ...) -> None: ...
    def getTransform(self, /) -> PySide6.QtGui.QTransform: ...
    @typing.overload
    def lineTo(self, point: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def lineTo(self, x: float, y: float, /) -> None: ...
    @staticmethod
    def mmToPx(mm: float, /) -> float: ...
    @typing.overload
    def moveTo(self, point: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def moveTo(self, x: float, y: float, /) -> None: ...
    @staticmethod
    def ptToPx(pt: float, /) -> float: ...
    @typing.overload
    def quadraticCurveTo(self, controlPoint: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, endPoint: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def quadraticCurveTo(self, cpX: float, cpY: float, x: float, y: float, /) -> None: ...
    @typing.overload
    def rect(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /) -> None: ...
    @typing.overload
    def rect(self, x: float, y: float, width: float, height: float, /) -> None: ...
    def removeImage(self, image: PySide6.QtCanvasPainter.QCanvasImage, /) -> None: ...
    def removePathGroup(self, pathGroup: int, /) -> None: ...
    def renderHints(self, /) -> PySide6.QtCanvasPainter.QCanvasPainter.RenderHint: ...
    def reset(self, /) -> None: ...
    def resetClipping(self, /) -> None: ...
    def resetTransform(self, /) -> None: ...
    def restore(self, /) -> None: ...
    def rotate(self, angle: float, /) -> None: ...
    @typing.overload
    def roundRect(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, radius: float, /) -> None: ...
    @typing.overload
    def roundRect(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, radiusTopLeft: float, radiusTopRight: float, radiusBottomRight: float, radiusBottomLeft: float, /) -> None: ...
    @typing.overload
    def roundRect(self, x: float, y: float, width: float, height: float, radius: float, /) -> None: ...
    @typing.overload
    def roundRect(self, x: float, y: float, width: float, height: float, radiusTopLeft: float, radiusTopRight: float, radiusBottomRight: float, radiusBottomLeft: float, /) -> None: ...
    def save(self, /) -> None: ...
    @typing.overload
    def scale(self, scale: float, /) -> None: ...
    @typing.overload
    def scale(self, scaleX: float, scaleY: float, /) -> None: ...
    def setAntialias(self, antialias: float, /) -> None: ...
    def setBrushTransform(self, transform: PySide6.QtGui.QTransform, /) -> None: ...
    @typing.overload
    def setClipRect(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /) -> None: ...
    @typing.overload
    def setClipRect(self, x: float, y: float, width: float, height: float, /) -> None: ...
    @typing.overload
    def setFillStyle(self, brush: PySide6.QtCanvasPainter.QCanvasBrush, /) -> None: ...
    @typing.overload
    def setFillStyle(self, color: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int, /) -> None: ...
    def setFont(self, font: PySide6.QtGui.QFont | str | collections.abc.Sequence[str], /) -> None: ...
    def setGlobalAlpha(self, alpha: float, /) -> None: ...
    def setGlobalBrightness(self, value: float, /) -> None: ...
    def setGlobalCompositeOperation(self, operation: PySide6.QtCanvasPainter.QCanvasPainter.CompositeOperation, /) -> None: ...
    def setGlobalContrast(self, value: float, /) -> None: ...
    def setGlobalSaturate(self, value: float, /) -> None: ...
    def setLineCap(self, cap: PySide6.QtCanvasPainter.QCanvasPainter.LineCap, /) -> None: ...
    def setLineJoin(self, join: PySide6.QtCanvasPainter.QCanvasPainter.LineJoin, /) -> None: ...
    def setLineWidth(self, width: float, /) -> None: ...
    def setMiterLimit(self, limit: float, /) -> None: ...
    def setPathWinding(self, winding: PySide6.QtCanvasPainter.QCanvasPainter.PathWinding, /) -> None: ...
    def setRenderHint(self, hint: PySide6.QtCanvasPainter.QCanvasPainter.RenderHint, /, on: bool = ...) -> None: ...
    def setRenderHints(self, hints: PySide6.QtCanvasPainter.QCanvasPainter.RenderHint, /, on: bool = ...) -> None: ...
    @typing.overload
    def setStrokeStyle(self, brush: PySide6.QtCanvasPainter.QCanvasBrush, /) -> None: ...
    @typing.overload
    def setStrokeStyle(self, color: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int, /) -> None: ...
    def setTextAlign(self, align: PySide6.QtCanvasPainter.QCanvasPainter.TextAlign, /) -> None: ...
    def setTextAntialias(self, antialias: float, /) -> None: ...
    def setTextBaseline(self, baseline: PySide6.QtCanvasPainter.QCanvasPainter.TextBaseline, /) -> None: ...
    def setTextDirection(self, direction: PySide6.QtCanvasPainter.QCanvasPainter.TextDirection, /) -> None: ...
    def setTextLineHeight(self, height: float, /) -> None: ...
    def setTextWrapMode(self, wrapMode: PySide6.QtCanvasPainter.QCanvasPainter.WrapMode, /) -> None: ...
    def setTransform(self, transform: PySide6.QtGui.QTransform, /) -> None: ...
    def skew(self, angleX: float, /, angleY: float = ...) -> None: ...
    @typing.overload
    def stroke(self, /) -> None: ...
    @typing.overload
    def stroke(self, path: PySide6.QtCanvasPainter.QCanvasPath | int, /, pathGroup: int | None = ...) -> None: ...
    @typing.overload
    def strokeRect(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /) -> None: ...
    @typing.overload
    def strokeRect(self, x: float, y: float, width: float, height: float, /) -> None: ...
    @typing.overload
    def textBoundingBox(self, text: str, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /) -> PySide6.QtCore.QRectF: ...
    @typing.overload
    def textBoundingBox(self, text: str, point: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /, maxWidth: float = ...) -> PySide6.QtCore.QRectF: ...
    @typing.overload
    def textBoundingBox(self, text: str, x: float, y: float, /, maxWidth: float = ...) -> PySide6.QtCore.QRectF: ...
    def transform(self, transform: PySide6.QtGui.QTransform, /) -> None: ...
    @typing.overload
    def translate(self, point: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def translate(self, x: float, y: float, /) -> None: ...


class QCanvasPainterFactory(Shiboken.Object):

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

    def create(self, rhi: PySide6.QtGui.QRhi, /) -> PySide6.QtCanvasPainter.QCanvasPainter: ...
    def destroy(self, /) -> None: ...
    def isValid(self, /) -> bool: ...
    def paintDriver(self, /) -> PySide6.QtCanvasPainter.QCanvasRhiPaintDriver: ...
    def painter(self, /) -> PySide6.QtCanvasPainter.QCanvasPainter: ...
    @staticmethod
    def sharedInstance(rhi: PySide6.QtGui.QRhi, /) -> PySide6.QtCanvasPainter.QCanvasPainterFactory: ...


class QCanvasPainterItem(PySide6.QtQuick.QQuickRhiItem):

    debugChanged             : typing.ClassVar[Signal] = ... # debugChanged()
    fillColorChanged         : typing.ClassVar[Signal] = ... # fillColorChanged()

    def __init__(self, /, parent: PySide6.QtQuick.QQuickItem | None = ..., *, fillColor: PySide6.QtGui.QColor | None = ..., debug: typing.Optional[typing.Dict[str, typing.Any]] = ...) -> None: ...

    def createItemRenderer(self, /) -> PySide6.QtCanvasPainter.QCanvasPainterItemRenderer: ...
    def createRenderer(self, /) -> PySide6.QtQuick.QQuickRhiItemRenderer: ...
    def debug(self, /) -> typing.Dict[str, typing.Any]: ...
    def fillColor(self, /) -> PySide6.QtGui.QColor: ...
    def setFillColor(self, color: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int, /) -> None: ...


class QCanvasPainterItemRenderer(PySide6.QtQuick.QQuickRhiItemRenderer):

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

    def beginCanvasPainting(self, canvas: PySide6.QtCanvasPainter.QCanvasOffscreenCanvas, /) -> None: ...
    def endCanvasPainting(self, /) -> None: ...
    def fillColor(self, /) -> PySide6.QtGui.QColor: ...
    def hasSharedPainter(self, /) -> bool: ...
    def height(self, /) -> float: ...
    def initialize(self, cb: PySide6.QtGui.QRhiCommandBuffer, /) -> None: ...
    def initializeResources(self, painter: PySide6.QtCanvasPainter.QCanvasPainter, /) -> None: ...
    def paint(self, painter: PySide6.QtCanvasPainter.QCanvasPainter, /) -> None: ...
    def painter(self, /) -> PySide6.QtCanvasPainter.QCanvasPainter: ...
    def prePaint(self, painter: PySide6.QtCanvasPainter.QCanvasPainter, /) -> None: ...
    def render(self, cb: PySide6.QtGui.QRhiCommandBuffer, /) -> None: ...
    def setSharedPainter(self, enable: bool, /) -> None: ...
    @typing.overload
    def synchronize(self, item: PySide6.QtCanvasPainter.QCanvasPainterItem, /) -> None: ...
    @typing.overload
    def synchronize(self, item: PySide6.QtQuick.QQuickRhiItem, /) -> None: ...
    def width(self, /) -> float: ...


class QCanvasPainterWidget(PySide6.QtWidgets.QRhiWidget):

    def __init__(self, /, parent: PySide6.QtWidgets.QWidget | None = ...) -> None: ...

    def beginCanvasPainting(self, canvas: PySide6.QtCanvasPainter.QCanvasOffscreenCanvas, /) -> None: ...
    def endCanvasPainting(self, /) -> None: ...
    def fillColor(self, /) -> PySide6.QtGui.QColor: ...
    def grabCanvas(self, canvas: PySide6.QtCanvasPainter.QCanvasOffscreenCanvas, resultCallback: collections.abc.Callable[..., typing.Any], /) -> None: ...
    def graphicsResourcesInvalidated(self, /) -> None: ...
    def hasSharedPainter(self, /) -> bool: ...
    def initialize(self, cb: PySide6.QtGui.QRhiCommandBuffer, /) -> None: ...
    def initializeResources(self, painter: PySide6.QtCanvasPainter.QCanvasPainter, /) -> None: ...
    def paint(self, painter: PySide6.QtCanvasPainter.QCanvasPainter, /) -> None: ...
    def prePaint(self, painter: PySide6.QtCanvasPainter.QCanvasPainter, /) -> None: ...
    def releaseResources(self, /) -> None: ...
    @typing.overload
    def render(self, cb: PySide6.QtGui.QRhiCommandBuffer, /) -> None: ...
    @typing.overload
    def render(self, target: PySide6.QtGui.QPaintDevice, /, targetOffset: PySide6.QtCore.QPoint = ..., sourceRegion: PySide6.QtGui.QRegion | PySide6.QtGui.QBitmap | PySide6.QtGui.QPolygon | PySide6.QtCore.QRect = ..., renderFlags: PySide6.QtWidgets.QWidget.RenderFlag = ...) -> None: ...
    @typing.overload
    def render(self, painter: PySide6.QtGui.QPainter, targetOffset: PySide6.QtCore.QPoint, /, sourceRegion: PySide6.QtGui.QRegion | PySide6.QtGui.QBitmap | PySide6.QtGui.QPolygon | PySide6.QtCore.QRect = ..., renderFlags: PySide6.QtWidgets.QWidget.RenderFlag = ...) -> None: ...
    def setFillColor(self, color: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int, /) -> None: ...
    def setSharedPainter(self, enable: bool, /) -> None: ...


class QCanvasPath(Shiboken.Object):

    @typing.overload
    def __init__(self, /) -> None: ...
    @typing.overload
    def __init__(self, path: PySide6.QtCanvasPainter.QCanvasPath, /) -> None: ...
    @typing.overload
    def __init__(self, commandsSize: int, /, commandsDataSize: int = ...) -> None: ...

    def __copy__(self, /) -> typing.Self: ...
    def __eq__(self, rhs: PySide6.QtCanvasPainter.QCanvasPath | int, /) -> bool: ...
    def __ne__(self, rhs: PySide6.QtCanvasPainter.QCanvasPath | int, /) -> bool: ...
    @typing.overload
    def addPath(self, path: PySide6.QtCanvasPainter.QCanvasPath | int, /, transform: PySide6.QtGui.QTransform = ...) -> None: ...
    @typing.overload
    def addPath(self, path: PySide6.QtCanvasPainter.QCanvasPath | int, start: int, count: int, /, transform: PySide6.QtGui.QTransform = ...) -> None: ...
    @typing.overload
    def arc(self, centerPoint: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, radius: float, a0: float, a1: float, /, direction: PySide6.QtCanvasPainter.QCanvasPainter.PathWinding = ..., connection: PySide6.QtCanvasPainter.QCanvasPainter.PathConnection = ...) -> None: ...
    @typing.overload
    def arc(self, centerX: float, centerY: float, radius: float, a0: float, a1: float, /, direction: PySide6.QtCanvasPainter.QCanvasPainter.PathWinding = ..., connection: PySide6.QtCanvasPainter.QCanvasPainter.PathConnection = ...) -> None: ...
    @typing.overload
    def arcTo(self, controlPoint1: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, controlPoint2: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, radius: float, /) -> None: ...
    @typing.overload
    def arcTo(self, c1x: float, c1y: float, c2x: float, c2y: float, radius: float, /) -> None: ...
    def beginHoleSubPath(self, /) -> None: ...
    def beginSolidSubPath(self, /) -> None: ...
    @typing.overload
    def bezierCurveTo(self, controlPoint1: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, controlPoint2: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, endPoint: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def bezierCurveTo(self, c1x: float, c1y: float, c2x: float, c2y: float, x: float, y: float, /) -> None: ...
    @typing.overload
    def circle(self, centerPoint: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, radius: float, /) -> None: ...
    @typing.overload
    def circle(self, x: float, y: float, radius: float, /) -> None: ...
    def clear(self, /) -> None: ...
    def closePath(self, /) -> None: ...
    def commandsCapacity(self, /) -> int: ...
    def commandsDataCapacity(self, /) -> int: ...
    def commandsDataSize(self, /) -> int: ...
    def commandsSize(self, /) -> int: ...
    def currentPosition(self, /) -> PySide6.QtCore.QPointF: ...
    @typing.overload
    def ellipse(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /) -> None: ...
    @typing.overload
    def ellipse(self, x: float, y: float, radiusX: float, radiusY: float, /) -> None: ...
    def isEmpty(self, /) -> bool: ...
    @typing.overload
    def lineTo(self, point: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def lineTo(self, x: float, y: float, /) -> None: ...
    @typing.overload
    def moveTo(self, point: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def moveTo(self, x: float, y: float, /) -> None: ...
    def positionAt(self, index: int, /) -> PySide6.QtCore.QPointF: ...
    @typing.overload
    def quadraticCurveTo(self, controlPoint: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, endPoint: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def quadraticCurveTo(self, cx: float, cy: float, x: float, y: float, /) -> None: ...
    @typing.overload
    def rect(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, /) -> None: ...
    @typing.overload
    def rect(self, x: float, y: float, width: float, height: float, /) -> None: ...
    @typing.overload
    def reserve(self, commandsSize: int, /) -> None: ...
    @typing.overload
    def reserve(self, commandsSize: int, commandsDataSize: int, /) -> None: ...
    @typing.overload
    def roundRect(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, radius: float, /) -> None: ...
    @typing.overload
    def roundRect(self, rect: PySide6.QtCore.QRectF | PySide6.QtCore.QRect, radiusTopLeft: float, radiusTopRight: float, radiusBottomRight: float, radiusBottomLeft: float, /) -> None: ...
    @typing.overload
    def roundRect(self, x: float, y: float, width: float, height: float, radius: float, /) -> None: ...
    @typing.overload
    def roundRect(self, x: float, y: float, width: float, height: float, radiusTopLeft: float, radiusTopRight: float, radiusBottomRight: float, radiusBottomLeft: float, /) -> None: ...
    def setPathWinding(self, winding: PySide6.QtCanvasPainter.QCanvasPainter.PathWinding, /) -> None: ...
    def sliced(self, start: int, count: int, /, transform: PySide6.QtGui.QTransform = ...) -> PySide6.QtCanvasPainter.QCanvasPath: ...
    def squeeze(self, /) -> None: ...
    def swap(self, other: PySide6.QtCanvasPainter.QCanvasPath | int, /) -> None: ...


class QCanvasRadialGradient(PySide6.QtCanvasPainter.QCanvasGradient):

    @typing.overload
    def __init__(self, /) -> None: ...
    @typing.overload
    def __init__(self, QCanvasRadialGradient: PySide6.QtCanvasPainter.QCanvasRadialGradient, /) -> None: ...
    @typing.overload
    def __init__(self, center: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, outerRadius: float, /, innerRadius: float = ...) -> None: ...
    @typing.overload
    def __init__(self, centerX: float, centerY: float, outerRadius: float, /, innerRadius: float = ...) -> None: ...

    def __copy__(self, /) -> typing.Self: ...
    def centerPosition(self, /) -> PySide6.QtCore.QPointF: ...
    def innerRadius(self, /) -> float: ...
    def outerRadius(self, /) -> float: ...
    @typing.overload
    def setCenterPosition(self, center: PySide6.QtCore.QPointF | PySide6.QtCore.QPoint | PySide6.QtGui.QPainterPath.Element, /) -> None: ...
    @typing.overload
    def setCenterPosition(self, x: float, y: float, /) -> None: ...
    def setInnerRadius(self, radius: float, /) -> None: ...
    def setOuterRadius(self, radius: float, /) -> None: ...


class QCanvasRhiPaintDriver(Shiboken.Object):

    class BeginPaintFlag(enum.Flag):

        DepthTest                 = 0x1

    class EndPaintFlag(enum.Flag):

        DoNotRecordRenderPass     = 0x1


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

    @typing.overload
    def beginPaint(self, cb: PySide6.QtGui.QRhiCommandBuffer, rt: PySide6.QtGui.QRhiRenderTarget, matrix: PySide6.QtGui.QMatrix4x4 | PySide6.QtGui.QTransform, /, flags: PySide6.QtCanvasPainter.QCanvasRhiPaintDriver.BeginPaintFlag = ...) -> None: ...
    @typing.overload
    def beginPaint(self, cb: PySide6.QtGui.QRhiCommandBuffer, rt: PySide6.QtGui.QRhiRenderTarget, /, fillColor: PySide6.QtGui.QColor | str | PySide6.QtGui.QRgba64 | typing.Any | PySide6.QtCore.Qt.GlobalColor | int = ..., logicalSize: PySide6.QtCore.QSize = ..., dpr: float = ..., flags: PySide6.QtCanvasPainter.QCanvasRhiPaintDriver.BeginPaintFlag = ...) -> None: ...
    @typing.overload
    def beginPaint(self, canvas: PySide6.QtCanvasPainter.QCanvasOffscreenCanvas, cb: PySide6.QtGui.QRhiCommandBuffer, /, flags: PySide6.QtCanvasPainter.QCanvasRhiPaintDriver.BeginPaintFlag = ...) -> None: ...
    def endPaint(self, /, flags: PySide6.QtCanvasPainter.QCanvasRhiPaintDriver.EndPaintFlag = ...) -> None: ...
    def grabCanvas(self, canvas: PySide6.QtCanvasPainter.QCanvasOffscreenCanvas, resultCallback: collections.abc.Callable[..., typing.Any], /) -> None: ...
    def renderPaint(self, /) -> None: ...
    def resetForNewFrame(self, /) -> None: ...


class QIntList: ...


# eof
