from abc import (
    ABCMeta,
    abstractmethod,
)

from ._Sleeper import Sleeper


class AwakableSleeper(Sleeper):
    __meta__ = ABCMeta

    def hibernate(self, secs):
        # type: (float) -> None
        raise NotImplementedError()

    @abstractmethod
    def wake_up(self):
        # type: () -> None
        raise NotImplementedError()
