from typing import Tuple, Set, Iterable, List


class ICallback:
    def OnExecuted(self, widget: Thread) -> None: ...


class IHandler:
    def Abort(self) -> None: ...
    def Create(self) -> None: ...
    def CreateCurrent(self) -> None: ...
    def CreateMain(self) -> None: ...
    @property
    def IsAlive(self) -> bool: ...
    @property
    def IsMain(self) -> bool: ...
    def Start(self) -> None: ...


class Thread(Widget):
    def __init__(self, action: Action): ...
    def Abort(self) -> None: ...
    @property
    def CurrentThread() -> Thread: ...
    @property
    def IsAlive(self) -> bool: ...
    @property
    def IsMain(self) -> bool: ...
    @property
    def IsMainThread() -> bool: ...
    @property
    def MainThread() -> Thread: ...
    def Start(self) -> None: ...
