from .action import QAction as QAction
from .layout import QHBox as QHBox, SPACING_EXTREME_SMALL as SPACING_EXTREME_SMALL, SPACING_SMALL as SPACING_SMALL
from .menu import QRoundMenu as QRoundMenu
from .qt import Property as Property, QAbstractItemModel as QAbstractItemModel, QColor as QColor, QCompleter as QCompleter, QIcon as QIcon, QKeyEvent as QKeyEvent, QModelIndex as QModelIndex, QPainter as QPainter, QPainterPath as QPainterPath, QRectF as QRectF, QTimer as QTimer, QWidget as QWidget, Qt as Qt, Signal as Signal
from .toolbutton import QToolButton as QToolButton
from _typeshed import Incomplete
from qtpy import QtWidgets

class QLineEditButton(QToolButton):
    def __init__(self, name: str, icon: QIcon, parent=None) -> None: ...
    def setAction(self, action: QAction): ...
    def action(self): ...

class ClearButton(QLineEditButton):
    def enterEvent(self, e) -> None: ...
    def leaveEvent(self, e) -> None: ...

class QLineEdit(QtWidgets.QLineEdit):
    def __init__(self, parent=None) -> None: ...
    def isClearButtonEnabled(self): ...
    def setClearButtonEnabled(self, enable: bool): ...
    def addAction(self, action: QAction, position=...): ...
    def addActions(self, actions: list[QAction], position=...): ...
    def focusOutEvent(self, e) -> None: ...
    def focusInEvent(self, e) -> None: ...
    def setCompleter(self, completer: QCompleter): ...
    def completer(self): ...
    def keyPressEvent(self, e: QKeyEvent): ...
    def paintEvent(self, e) -> None: ...
    def getFocusedBorderColor(self) -> QColor: ...
    def setFocusedBorderColor(self, color: QColor): ...
    focusedBorderColor: Incomplete

class CompleterMenu(QRoundMenu):
    activated: Incomplete
    indexActivated: Incomplete
    items: Incomplete
    indexes: Incomplete
    def __init__(self) -> None: ...
    def setCompletion(self, model: QAbstractItemModel, column: int = 0): ...
    def setItems(self, items: list[str]): ...
    def selectedItem(self) -> str | None: ...
