from .layout import MARGIN_MEDIUM as MARGIN_MEDIUM, PADDING_MEDIUM as PADDING_MEDIUM, PADDING_SMALL as PADDING_SMALL, QHBox as QHBox, QVBox as QVBox, SPACING_EXTREME_SMALL as SPACING_EXTREME_SMALL
from .qt import Property as Property, QApplication as QApplication, QContextMenuEvent as QContextMenuEvent, QEvent as QEvent, QFrame as QFrame, QIcon as QIcon, QLabel as QLabel, QObject as QObject, QPaintEvent as QPaintEvent, QPainter as QPainter, QPalette as QPalette, QPoint as QPoint, QRect as QRect, QScrollArea as QScrollArea, QSizePolicy as QSizePolicy, QStackedWidget as QStackedWidget, QWheelEvent as QWheelEvent, QWidget as QWidget, Qt as Qt, Signal as Signal
from .scrollbar import QScrollDelegate as QScrollDelegate
from .theme import QIconProvider as QIconProvider, QTheme as QTheme
from .toolbutton import QToolButton as QToolButton
from .tooltip import QToolTipFilter as QToolTipFilter
from _typeshed import Incomplete

class Tab(QFrame):
    label: Incomplete
    closeButton: Incomplete
    def __init__(self, text: str, parent=None) -> None: ...
    def setIcon(self, icon: QIcon | str, themed: bool = True): ...
    def icon(self) -> QIcon: ...
    def setSelected(self, selected: bool): ...
    def isSelected(self) -> bool: ...
    def setCloseable(self, closable: bool): ...
    def isCloseable(self) -> bool: ...
    def paintEvent(self, event: QPaintEvent): ...
    def eventFilter(self, obj, event: QEvent): ...
    def leaveEvent(self, e: QEvent): ...

class TabStrip(QWidget):
    currentChanged: Incomplete
    tabBarClicked: Incomplete
    tabBarDoubleClicked: Incomplete
    tabCloseRequested: Incomplete
    tabMoved: Incomplete
    def __init__(self, parent=None) -> None: ...
    def currentIndex(self) -> int: ...
    def setCurrentIndex(self, index: int): ...
    def addWidget(self, widget: Tab): ...
    def insertWidget(self, index: int, widget: Tab): ...
    def indexOf(self, widget: Tab): ...
    def widgetAt(self, index: int): ...
    def removeAt(self, index: int): ...
    def removeWidget(self, widget: Tab): ...
    def count(self) -> int: ...
    def eventFilter(self, obj: QObject, event: QEvent): ...

class QTabBarEx(QScrollArea):
    currentChanged: Incomplete
    tabBarClicked: Incomplete
    tabBarDoubleClicked: Incomplete
    tabCloseRequested: Incomplete
    tabMoved: Incomplete
    def __init__(self, parent=None) -> None: ...
    def setCurrentIndex(self, index: int): ...
    def currentIndex(self) -> int: ...
    def addTab(self, text: str, icon: QIcon | str | None = None) -> int: ...
    def removeTab(self, index: int): ...
    def insertTab(self, index: int, text: str, icon: QIcon | str | None = None) -> int: ...
    def tabAt(self, position: QPoint) -> int: ...
    def count(self) -> int: ...
    def tabText(self, index: int) -> str: ...
    def setTabText(self, index: int, text: str): ...
    def tabToolTip(self, index: int) -> str: ...
    def setTabToolTip(self, index: int, text: str): ...
    def tabIcon(self, index: int) -> QIcon: ...
    def setTabIcon(self, index: int, icon: QIcon): ...
    def setTabCloseable(self, index: int, closeable: bool): ...
    def isTabCloseable(self, index: int) -> bool: ...
    def wheelEvent(self, e: QWheelEvent): ...
    def getDrawBase(self) -> bool: ...
    def setDrawBase(self, drawBase: bool): ...
    drawBase: Incomplete

class QTabWidget(QWidget):
    tabContextMenuRequested: Incomplete
    def __init__(self, parent=None) -> None: ...
    def addTab(self, page: QWidget, label: str, icon: QIcon | str | None = None) -> int: ...
    def insertTab(self, index: int, page: QWidget, label: str, icon: QIcon | str | None = None) -> int: ...
    def removeTab(self, index: int): ...
    def count(self) -> int: ...
    def clear(self) -> None: ...
    def currentIndex(self) -> int: ...
    def setCurrentIndex(self, index: int): ...
    def tabToolTip(self, index: int) -> str: ...
    def setTabToolTip(self, index: int, text: str): ...
    def contextMenuEvent(self, event: QContextMenuEvent): ...
    def setCornerWidget(self, widget: QWidget, corner=...): ...
    def tabsClosable(self) -> bool: ...
    def setTabsClosable(self, closable: bool): ...
