from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class TaskConfigEntry(_message.Message):
    __slots__ = ("id", "type", "config_file", "enable", "run_mode", "control_period_s")
    class TaskType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
        __slots__ = ()
        TASK_TYPE_UNKNOWN: _ClassVar[TaskConfigEntry.TaskType]
        TASK_TYPE_TOUCH_SCREEN: _ClassVar[TaskConfigEntry.TaskType]
        TASK_TYPE_GRPC_SERVER: _ClassVar[TaskConfigEntry.TaskType]
    TASK_TYPE_UNKNOWN: TaskConfigEntry.TaskType
    TASK_TYPE_TOUCH_SCREEN: TaskConfigEntry.TaskType
    TASK_TYPE_GRPC_SERVER: TaskConfigEntry.TaskType
    class TaskRunMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
        __slots__ = ()
        TASK_RUN_MODE_UNKNOWN: _ClassVar[TaskConfigEntry.TaskRunMode]
        TASK_RUN_MODE_PERIODIC_STEP: _ClassVar[TaskConfigEntry.TaskRunMode]
        TASK_RUN_MODE_BLOCKING_SERVICE: _ClassVar[TaskConfigEntry.TaskRunMode]
    TASK_RUN_MODE_UNKNOWN: TaskConfigEntry.TaskRunMode
    TASK_RUN_MODE_PERIODIC_STEP: TaskConfigEntry.TaskRunMode
    TASK_RUN_MODE_BLOCKING_SERVICE: TaskConfigEntry.TaskRunMode
    ID_FIELD_NUMBER: _ClassVar[int]
    TYPE_FIELD_NUMBER: _ClassVar[int]
    CONFIG_FILE_FIELD_NUMBER: _ClassVar[int]
    ENABLE_FIELD_NUMBER: _ClassVar[int]
    RUN_MODE_FIELD_NUMBER: _ClassVar[int]
    CONTROL_PERIOD_S_FIELD_NUMBER: _ClassVar[int]
    id: str
    type: TaskConfigEntry.TaskType
    config_file: str
    enable: bool
    run_mode: TaskConfigEntry.TaskRunMode
    control_period_s: float
    def __init__(self, id: _Optional[str] = ..., type: _Optional[_Union[TaskConfigEntry.TaskType, str]] = ..., config_file: _Optional[str] = ..., enable: _Optional[bool] = ..., run_mode: _Optional[_Union[TaskConfigEntry.TaskRunMode, str]] = ..., control_period_s: _Optional[float] = ...) -> None: ...

class TaskManagerConfig(_message.Message):
    __slots__ = ("tasks",)
    TASKS_FIELD_NUMBER: _ClassVar[int]
    tasks: _containers.RepeatedCompositeFieldContainer[TaskConfigEntry]
    def __init__(self, tasks: _Optional[_Iterable[_Union[TaskConfigEntry, _Mapping]]] = ...) -> None: ...

class TaskManagerRootConfig(_message.Message):
    __slots__ = ("task_manager",)
    TASK_MANAGER_FIELD_NUMBER: _ClassVar[int]
    task_manager: TaskManagerConfig
    def __init__(self, task_manager: _Optional[_Union[TaskManagerConfig, _Mapping]] = ...) -> None: ...
