diff options
Diffstat (limited to 'src/hrc/typing.py')
| -rw-r--r-- | src/hrc/typing.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/hrc/typing.py b/src/hrc/typing.py new file mode 100644 index 0000000..a207c80 --- /dev/null +++ b/src/hrc/typing.py @@ -0,0 +1,23 @@ +# ruff: noqa: TCH001 +from typing import TYPE_CHECKING, Awaitable, Callable, Optional, TypeVar + +if TYPE_CHECKING: + from typing import Any + + from hrc.service import Service + from hrc.core import Core + from hrc.config import ConfigModel + from hrc.event import Event + from hrc.rule import Rule + + +StateT = TypeVar("StateT") +EventT = TypeVar("EventT", bound="Event[Any]") +RuleT = TypeVar("RuleT", bound="Rule[Any, Any, Any]") +ConfigT = TypeVar("ConfigT", bound=Optional["ConfigModel"]) +ServiceT = TypeVar("ServiceT", bound="Service[Any, Any]") + +CoreHook = Callable[["Core"], Awaitable[None]] +RuleHook = Callable[["Rule"], Awaitable[None]] +ServiceHook = Callable[["Service[Any, Any]"], Awaitable[None]] +EventHook = Callable[["Event[Any]"], Awaitable[None]] |
