from .utils import start_system_move as start_system_move
from _typeshed import Incomplete
from enum import IntEnum, StrEnum
from qSide.layout import QHBox as QHBox
from qSide.pushbutton import QPushButton as QPushButton
from qSide.qt import QEvent as QEvent, QFrame as QFrame, QLabel as QLabel, QMouseEvent as QMouseEvent, QSize as QSize, QWidget as QWidget, Qt as Qt

class MaximizeButtonIcon(StrEnum):
    Restore = 'restore'
    Maximize = 'maximize'

class MaximizeButtonState(IntEnum):
    Hover = 0
    Normal = 1

class TitleBarButton(QPushButton):
    def __init__(self, *args, **kwargs) -> None: ...

class MaximizeButton(TitleBarButton):
    def setState(self, state: MaximizeButtonState) -> None: ...

class CloseButton(TitleBarButton):
    def __init__(self, parent: QWidget | None) -> None: ...

class QTitleBar(QFrame):
    buttonBox: Incomplete
    maximizeButton: Incomplete
    minimizeButton: Incomplete
    closeButton: Incomplete
    buttonBoxLayout: Incomplete
    label: Incomplete
    def __init__(self, parent: QWidget | None = None) -> None: ...
    def closeButtonClicked(self) -> None: ...
    def maximizeButtonClicked(self) -> None: ...
    def minimizeButtonClicked(self) -> None: ...
    def setMaximizeButtonIcon(self, icon: MaximizeButtonIcon): ...
    def eventFilter(self, obj, e): ...
    def mouseMoveEvent(self, event: QMouseEvent) -> None: ...
    def setText(self, text: str): ...
    def text(self) -> str: ...
    def setButtonBoxVisible(self, vis: bool): ...
    def isButtonBoxVisible(self) -> bool: ...
