# mypy: disable-error-code="misc, override, attr-defined, no-redef, assignment"

import Utils.EventModule as EventModule
from typing import Set, Tuple

class UndoEntry:
    def __init__(self, name) -> None: ...
    def getName(self): ...
    def isValid(self) -> bool: ...
    def redo(self): ...
    def setName(self, name): ...
    def undo(self): ...

class _UndoGroupEntry(UndoEntry):
    def __init__(self, name: str = ...) -> None: ...
    def _UndoGroupEntry__nonzero(self): ...
    def addEntry(self, entry: UndoEntry): ...
    def clear(self): ...
    def getName(self) -> str: ...
    def isValid(self): ...
    def redo(self): ...
    def undo(self): ...
    def __len__(self) -> int: ...

def AddEntry(entry: UndoEntry): ...
def AddEntrySync(entry): ...
def Clear(): ...
def CloseGroup(discard: bool = ...): ...
def CloseGroupSync(discard: bool = ...): ...
def DisableCapture(): ...
def DisableCaptureSync(): ...
def EnableCapture(): ...
def EnableCaptureSync(): ...
def GetLastUndoName() -> str: ...
def GetNextRedoName() -> str: ...
def GetRedoNames() -> list[str]: ...
def GetRedoSize() -> int: ...
def GetUndoNames() -> list[str]: ...
def GetUndoSize() -> int: ...
def IsInsideGroup() -> bool: ...
def IsInsideGroupSync(): ...
def IsUndoEnabled() -> bool: ...
def IsUndoEnabledSync(): ...
def IsUndoInProgress(): ...
def NoCaptureContext(): ...
def OpenGroup(groupName: str = ...): ...
def OpenGroupSync(groupName): ...
def Redo(): ...
def RegisterCallback(callback): ...
def RenameTopGroupSync(name): ...
def Undo(): ...
def UndoInitAsync(): ...
