Defer the execution of a function for some number of seconds.

        Args:
            wait (typing.Union[int, float]): A numeric value that represents
                the number of seconds that must pass before the callback
                becomes available for execution. All given values must be
                positive.
            func (typing.Callable[[], typing.Any]): A callable that accepts no
                arguments. All return values are ignored.

        Returns:
            typing.Any: An opaque identifier that represents the callback
                uniquely within the processor. This identifier is used to
                modify the callback scheduling.

def defer_for(
            self,
            wait: typing.Union[int, float],
            func: typing.Callable[[], typing.Any],
    ) -> typing.Any:
        """Defer the execution of a function for some number of seconds.

        Args:
            wait (typing.Union[int, float]): A numeric value that represents
                the number of seconds that must pass before the callback
                becomes available for execution. All given values must be
                positive.
            func (typing.Callable[[], typing.Any]): A callable that accepts no
                arguments. All return values are ignored.

        Returns:
            typing.Any: An opaque identifier that represents the callback
                uniquely within the processor. This identifier is used to
                modify the callback scheduling.
        """
        raise NotImplementedError()