from .layout import BORDER_LINE_WIDTH as BORDER_LINE_WIDTH, BORDER_WINDOW_RADIUS as BORDER_WINDOW_RADIUS
from .qt import Property as Property, QColor as QColor, QEvent as QEvent, QIcon as QIcon, QLabel as QLabel, QObject as QObject, QPainter as QPainter, QRect as QRect, QSize as QSize, QSizePolicy as QSizePolicy, QWidget as QWidget, Qt as Qt
from .utils import singledispatchmethod as singledispatchmethod
from _typeshed import Incomplete
from enum import Enum

class QInfoBadge(QLabel):
    class Level(Enum):
        Information = 'Information'
        Success = 'Success'
        Attention = 'Attention'
        Warning = 'Warning'
        Error = 'Error'
    class Position(Enum):
        TopRight = 0
        BottomRight = 1
        Right = 2
        TopLeft = 3
        BottomLeft = 4
        Left = 5
    @singledispatchmethod
    def __init__(self, parent: QWidget | None, target: QWidget | None, position: Position, level: Level) -> None: ...
    @__init__.register
    def _(self, text: str, parent: QWidget | None, target: QWidget | None, position: Position, level: Level): ...
    @__init__.register
    def _(self, num: int, parent: QWidget | None, target: QWidget | None, position: Position, level: Level): ...
    @__init__.register
    def _(self, num: float, parent: QWidget | None, target: QWidget | None, position: Position, level: Level): ...
    @classmethod
    def info(cls, text: str | int | float, parent: QWidget | None = None, target: QWidget | None = None, position=...): ...
    @classmethod
    def success(cls, text: str | int | float, parent: QWidget | None = None, target: QWidget | None = None, position=...): ...
    @classmethod
    def attention(cls, text: str | int | float, parent: QWidget | None = None, target: QWidget | None = None, position=...): ...
    @classmethod
    def warn(cls, text: str | int | float, parent: QWidget | None = None, target: QWidget | None = None, position=...): ...
    @classmethod
    def error(cls, text: str | int | float, parent: QWidget | None = None, target: QWidget | None = None, position=...): ...
    def deleteLater(self) -> None: ...
    def setText(self, text: str): ...
    def adjustSize(self) -> None: ...
    def level(self) -> Level: ...
    def setLevel(self, level: Level): ...
    def setPosition(self, pos: Position): ...
    def paintEvent(self, e) -> None: ...
    def eventFilter(self, obj: QObject, e: QEvent): ...
    def getInformationColor(self) -> QColor: ...
    def setInformationColor(self, color: QColor): ...
    def getSuccessColor(self) -> QColor: ...
    def setSuccessColor(self, color: QColor): ...
    def getAttentionColor(self) -> QColor: ...
    def setAttentionColor(self, color: QColor): ...
    def getWarningColor(self) -> QColor: ...
    def setWarningColor(self, color: QColor): ...
    def getErrorColor(self) -> QColor: ...
    def setErrorColor(self, color: QColor): ...
    informationColor: Incomplete
    successColor: Incomplete
    attentionColor: Incomplete
    warningColor: Incomplete
    errorColor: Incomplete

class QDotInfoBadge(QInfoBadge):
    @singledispatchmethod
    def __init__(self, parent: QWidget | None, target: QWidget | None, position: QInfoBadge.Position, level: QInfoBadge.Level) -> None: ...
    def paintEvent(self, e) -> None: ...
    @classmethod
    def info(cls, parent: QWidget | None = None, target: QWidget | None = None, position=...): ...
    @classmethod
    def success(cls, parent: QWidget | None = None, target: QWidget | None = None, position=...): ...
    @classmethod
    def attention(cls, parent: QWidget | None = None, target: QWidget | None = None, position=...): ...
    @classmethod
    def warn(cls, parent: QWidget | None = None, target: QWidget | None = None, position=...): ...
    @classmethod
    def error(cls, parent: QWidget | None = None, target: QWidget | None = None, position=...): ...
    def eventFilter(self, obj: QObject, e: QEvent): ...

class QIconInfoBadge(QInfoBadge):
    @singledispatchmethod
    def __init__(self, parent: QWidget | None, target: QWidget | None, position: QInfoBadge.Position, level: QInfoBadge.Level) -> None: ...
    @__init__.register
    def _(self, icon: QIcon, parent: QWidget | None, target: QWidget | None, position: QInfoBadge.Position, level: QInfoBadge.Level): ...
    def setIcon(self, icon: QIcon): ...
    def icon(self) -> QIcon: ...
    def iconSize(self): ...
    def setIconSize(self, size: QSize): ...
    def paintEvent(self, e) -> None: ...
    @classmethod
    def info(cls, icon: QIcon, parent: QWidget | None = None, target: QWidget | None = None, position=...): ...
    @classmethod
    def success(cls, icon: QIcon, parent: QWidget | None = None, target: QWidget | None = None, position=...): ...
    @classmethod
    def attention(cls, icon: QIcon, parent: QWidget | None = None, target: QWidget | None = None, position=...): ...
    @classmethod
    def warn(cls, icon: QIcon, parent: QWidget | None = None, target: QWidget | None = None, position=...): ...
    @classmethod
    def error(cls, icon: QIcon, parent: QWidget | None = None, target: QWidget | None = None, position=...): ...
