from __future__ import annotations
from typing import Any, Protocol, runtime_checkable

@runtime_checkable
class XUndoManager(Protocol):
    def enterUndoContext(self, iTitle: str) -> None: ...
    def isUndoPossible(self) -> bool: ...
    def isRedoPossible(self) -> bool: ...
    def getAllUndoActionTitles(self) -> list[str]: ...
    def getAllRedoActionTitles(self) -> list[str]: ...
    def reset(self) -> None: ...
    def addUndoManagerListener(self, iListener: XUndoManagerListener) -> None: ...
    def removeUndoManagerListener(self, iListener: XUndoManagerListener) -> None: ...
