from _typeshed import Incomplete
from qSide import QCodeScheme as QCodeScheme, QEvent, QKeyEvent as QKeyEvent, QMainWindow, QObject, QPoint as QPoint, QResizeEvent as QResizeEvent, QWidget

class XTermFindWidget(QWidget):
    MAX_HIGHLIGHT_MATCHES: int
    view: XTermView
    findEdit: Incomplete
    newLineAction: Incomplete
    matchCaseAction: Incomplete
    matchedCountLabel: Incomplete
    previousOccurrenceButton: Incomplete
    nextOccurrenceButton: Incomplete
    closeButton: Incomplete
    splitter: Incomplete
    def __init__(self, view: XTermView) -> None: ...
    def eventFilter(self, widget: QWidget, event: QEvent) -> bool: ...
    def setNumberMatches(self, current: int, total: int): ...

class XTermJsEventHandler(QObject):
    term: Incomplete
    def __init__(self, term: XTermView) -> None: ...
    def onJsReady(self) -> None: ...
    def onReady(self) -> None: ...
    def onClose(self) -> None: ...
    def onWebLinkClicked(self, uri: str): ...
    def onSearchResultChanged(self, index: int, count: int): ...

class XTermView(QWidget):
    def __init__(self, parent=None) -> None: ...
    def theme(self) -> QCodeScheme: ...
    def setTheme(self, theme: QCodeScheme): ...
    def exec(self, cmd: str): ...
    def clear(self) -> None: ...
    def setFontSize(self, size: int): ...
    def fontSize(self) -> int: ...
    def findNext(self, text: str, caseSensitive: bool): ...
    def openPty(self, url: str, shell: str, cwd: str | None = None, *, onReady=None): ...
    def closePty(self) -> None: ...
    def isPtyOpened(self) -> bool: ...
    def isPtyClosed(self) -> bool: ...
    def findPrevious(self, text: str, caseSensitive: bool): ...
    def clearMatchDecorations(self) -> None: ...
    def resizeEvent(self, event: QResizeEvent): ...

class TerminalManager(QWidget):
    tabs: Incomplete
    def __init__(self, parent=None) -> None: ...
    def add_terminal(self, shell=None, cwd=None) -> None: ...
    def close_tab(self, index: int): ...
    def current_terminal(self) -> XTermView | None: ...

class MainWindow(QMainWindow):
    fontSizeInput: Incomplete
    shell_input: Incomplete
    cwd_input: Incomplete
    manager: Incomplete
    def __init__(self) -> None: ...
    def add_new_terminal(self) -> None: ...
    def run_test(self) -> None: ...
    def reload_current(self) -> None: ...
    def close_current_terminal(self) -> None: ...
    def print_font_size(self) -> None: ...
    def set_font_size(self) -> None: ...
    def toggle_theme(self, checked: bool): ...
