import VASSAL.build
import VASSAL.build.module
import VASSAL.build.module.documentation
import VASSAL.command
import VASSAL.configure
import java.awt.event
import typing



class ChessClock(VASSAL.build.AbstractConfigurable, VASSAL.command.CommandEncoder, VASSAL.build.module.GameComponent, java.awt.event.ActionListener):
    DELIMITER: typing.ClassVar[str] = ...
    COMMAND_PREFIX: typing.ClassVar[str] = ...
    ICON: typing.ClassVar[str] = ...
    SIDE: typing.ClassVar[str] = ...
    TOOLTIP: typing.ClassVar[str] = ...
    BUTTON_TEXT: typing.ClassVar[str] = ...
    TICKING_BACKGROUND_COLOR: typing.ClassVar[str] = ...
    TICKING_FONT_COLOR: typing.ClassVar[str] = ...
    TOCKING_FONT_COLOR: typing.ClassVar[str] = ...
    GENERIC: typing.ClassVar[str] = ...
    CHESSMENU_START: typing.ClassVar[str] = ...
    CHESSMENU_STOP: typing.ClassVar[str] = ...
    CHESSMENU_RESET: typing.ClassVar[str] = ...
    @typing.overload
    def __init__(self): ...
    @typing.overload
    def __init__(self, string: str): ...
    def actionPerformed(self, actionEvent: java.awt.event.ActionEvent) -> None: ...
    def addTo(self, buildable: VASSAL.build.Buildable) -> None: ...
    def addToToolbar(self) -> None: ...
    def decode(self, string: str) -> VASSAL.command.Command: ...
    def encode(self, command: VASSAL.command.Command) -> str: ...
    def getAllowableConfigureComponents(self) -> typing.List[typing.Type]: ...
    def getAttributeDescriptions(self) -> typing.List[str]: ...
    def getAttributeNames(self) -> typing.List[str]: ...
    def getAttributeTypes(self) -> typing.List[typing.Type[typing.Any]]: ...
    def getAttributeValueString(self, string: str) -> str: ...
    @staticmethod
    def getConfigureTypeName() -> str: ...
    def getElapsed(self) -> int: ...
    def getHelpFile(self) -> VASSAL.build.module.documentation.HelpFile: ...
    def getName(self) -> str: ...
    def getRestoreCommand(self) -> VASSAL.command.Command: ...
    def getSide(self) -> str: ...
    def getVerified(self) -> int: ...
    def hideClock(self) -> None: ...
    def isTicking(self) -> bool: ...
    def removeFrom(self, buildable: VASSAL.build.Buildable) -> None: ...
    def resetState(self) -> VASSAL.command.Command: ...
    def setAttribute(self, string: str, object: typing.Any) -> None: ...
    def setTimerButton(self) -> bool: ...
    def setup(self, boolean: bool) -> None: ...
    def showClock(self) -> None: ...
    def updateDisplay(self) -> None: ...
    def updateState(self, boolean: bool) -> VASSAL.command.Command: ...
    class ColorConfig(VASSAL.configure.ConfigurerFactory):
        def __init__(self): ...
        def getConfigurer(self, autoConfigurable: VASSAL.build.AutoConfigurable, string: str, string2: str) -> VASSAL.configure.Configurer: ...
    class ColorConfig2(VASSAL.configure.ConfigurerFactory):
        def __init__(self): ...
        def getConfigurer(self, autoConfigurable: VASSAL.build.AutoConfigurable, string: str, string2: str) -> VASSAL.configure.Configurer: ...
    class ColorConfig3(VASSAL.configure.ConfigurerFactory):
        def __init__(self): ...
        def getConfigurer(self, autoConfigurable: VASSAL.build.AutoConfigurable, string: str, string2: str) -> VASSAL.configure.Configurer: ...
    class IconConfig(VASSAL.configure.ConfigurerFactory):
        def __init__(self): ...
        def getConfigurer(self, autoConfigurable: VASSAL.build.AutoConfigurable, string: str, string2: str) -> VASSAL.configure.Configurer: ...
    class PlayerSidesConfig(VASSAL.configure.TranslatableStringEnum):
        def __init__(self): ...
        def getI18nKeys(self, autoConfigurable: VASSAL.build.AutoConfigurable) -> typing.List[str]: ...
        def getValidValues(self, autoConfigurable: VASSAL.build.AutoConfigurable) -> typing.List[str]: ...


class __module_protocol__(typing.Protocol):
    # A module protocol which reflects the result of ``jp.JPackage("VASSAL.build.module.chessclockcontrol")``.

    ChessClock: typing.Type[ChessClock]
