"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import collections.abc
import sys
import typing

import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.struct_pb2

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _MessageKind:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _MessageKindEnumTypeWrapper(
    google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MessageKind.ValueType],
    builtins.type,
):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    MESSAGE_KIND_UNSPECIFIED: _MessageKind.ValueType  # 0
    MESSAGE_KIND_ACTION_DISPATCH: _MessageKind.ValueType  # 1
    """Server -> Worker: execute this action"""
    MESSAGE_KIND_ACTION_RESULT: _MessageKind.ValueType  # 2
    """Worker -> Server: here's the result"""
    MESSAGE_KIND_ACK: _MessageKind.ValueType  # 3
    """Worker -> Server: message received"""
    MESSAGE_KIND_HEARTBEAT: _MessageKind.ValueType  # 4
    """Bidirectional: keep-alive signal"""
    MESSAGE_KIND_WORKER_HELLO: _MessageKind.ValueType  # 5
    """Worker -> Server: handshake on connect"""

class MessageKind(_MessageKind, metaclass=_MessageKindEnumTypeWrapper):
    """=============================================================================
    Worker Bridge Communication
    =============================================================================
    These messages handle the core communication between the Rust server and
    Python workers. Workers connect via gRPC streaming and execute actions.
    """

MESSAGE_KIND_UNSPECIFIED: MessageKind.ValueType  # 0
MESSAGE_KIND_ACTION_DISPATCH: MessageKind.ValueType  # 1
"""Server -> Worker: execute this action"""
MESSAGE_KIND_ACTION_RESULT: MessageKind.ValueType  # 2
"""Worker -> Server: here's the result"""
MESSAGE_KIND_ACK: MessageKind.ValueType  # 3
"""Worker -> Server: message received"""
MESSAGE_KIND_HEARTBEAT: MessageKind.ValueType  # 4
"""Bidirectional: keep-alive signal"""
MESSAGE_KIND_WORKER_HELLO: MessageKind.ValueType  # 5
"""Worker -> Server: handshake on connect"""
Global___MessageKind: typing_extensions.TypeAlias = MessageKind

class _ScheduleType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _ScheduleTypeEnumTypeWrapper(
    google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ScheduleType.ValueType],
    builtins.type,
):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    SCHEDULE_TYPE_UNSPECIFIED: _ScheduleType.ValueType  # 0
    SCHEDULE_TYPE_CRON: _ScheduleType.ValueType  # 1
    SCHEDULE_TYPE_INTERVAL: _ScheduleType.ValueType  # 2

class ScheduleType(_ScheduleType, metaclass=_ScheduleTypeEnumTypeWrapper):
    """=============================================================================
    Workflow Schedules
    =============================================================================
    Messages for scheduling workflows to run on a recurring basis.
    """

SCHEDULE_TYPE_UNSPECIFIED: ScheduleType.ValueType  # 0
SCHEDULE_TYPE_CRON: ScheduleType.ValueType  # 1
SCHEDULE_TYPE_INTERVAL: ScheduleType.ValueType  # 2
Global___ScheduleType: typing_extensions.TypeAlias = ScheduleType

class _ScheduleStatus:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _ScheduleStatusEnumTypeWrapper(
    google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ScheduleStatus.ValueType],
    builtins.type,
):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    SCHEDULE_STATUS_UNSPECIFIED: _ScheduleStatus.ValueType  # 0
    SCHEDULE_STATUS_ACTIVE: _ScheduleStatus.ValueType  # 1
    SCHEDULE_STATUS_PAUSED: _ScheduleStatus.ValueType  # 2

class ScheduleStatus(_ScheduleStatus, metaclass=_ScheduleStatusEnumTypeWrapper): ...

SCHEDULE_STATUS_UNSPECIFIED: ScheduleStatus.ValueType  # 0
SCHEDULE_STATUS_ACTIVE: ScheduleStatus.ValueType  # 1
SCHEDULE_STATUS_PAUSED: ScheduleStatus.ValueType  # 2
Global___ScheduleStatus: typing_extensions.TypeAlias = ScheduleStatus

@typing.final
class Envelope(google.protobuf.message.Message):
    """Universal transport wrapper for all worker bridge messages.
    The `kind` field indicates how to decode the `payload`.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DELIVERY_ID_FIELD_NUMBER: builtins.int
    PARTITION_ID_FIELD_NUMBER: builtins.int
    KIND_FIELD_NUMBER: builtins.int
    PAYLOAD_FIELD_NUMBER: builtins.int
    delivery_id: builtins.int
    """Unique ID for correlation (ack, response)"""
    partition_id: builtins.int
    """Optional logical grouping"""
    kind: Global___MessageKind.ValueType
    """Message type discriminator"""
    payload: builtins.bytes
    """Encoded message (ActionDispatch, ActionResult, etc.)"""
    def __init__(
        self,
        *,
        delivery_id: builtins.int = ...,
        partition_id: builtins.int = ...,
        kind: Global___MessageKind.ValueType = ...,
        payload: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "delivery_id",
            b"delivery_id",
            "kind",
            b"kind",
            "partition_id",
            b"partition_id",
            "payload",
            b"payload",
        ],
    ) -> None: ...

Global___Envelope: typing_extensions.TypeAlias = Envelope

@typing.final
class ActionDispatch(google.protobuf.message.Message):
    """Server -> Worker: instruction to execute an action"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ACTION_ID_FIELD_NUMBER: builtins.int
    INSTANCE_ID_FIELD_NUMBER: builtins.int
    SEQUENCE_FIELD_NUMBER: builtins.int
    ACTION_NAME_FIELD_NUMBER: builtins.int
    MODULE_NAME_FIELD_NUMBER: builtins.int
    KWARGS_FIELD_NUMBER: builtins.int
    TIMEOUT_SECONDS_FIELD_NUMBER: builtins.int
    MAX_RETRIES_FIELD_NUMBER: builtins.int
    ATTEMPT_NUMBER_FIELD_NUMBER: builtins.int
    DISPATCH_TOKEN_FIELD_NUMBER: builtins.int
    action_id: builtins.str
    """Unique action identifier"""
    instance_id: builtins.str
    """Workflow instance this action belongs to"""
    sequence: builtins.int
    """Sequence number within instance"""
    action_name: builtins.str
    """Action execution details
    Name of the action function to call
    """
    module_name: builtins.str
    """Python module containing the action"""
    timeout_seconds: builtins.int
    """Execution policies"""
    max_retries: builtins.int
    attempt_number: builtins.int
    dispatch_token: builtins.str
    """UUID for result correlation"""
    @property
    def kwargs(self) -> Global___WorkflowArguments:
        """Keyword arguments for the action"""

    def __init__(
        self,
        *,
        action_id: builtins.str = ...,
        instance_id: builtins.str = ...,
        sequence: builtins.int = ...,
        action_name: builtins.str = ...,
        module_name: builtins.str = ...,
        kwargs: Global___WorkflowArguments | None = ...,
        timeout_seconds: builtins.int | None = ...,
        max_retries: builtins.int | None = ...,
        attempt_number: builtins.int | None = ...,
        dispatch_token: builtins.str | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "_attempt_number",
            b"_attempt_number",
            "_dispatch_token",
            b"_dispatch_token",
            "_max_retries",
            b"_max_retries",
            "_timeout_seconds",
            b"_timeout_seconds",
            "attempt_number",
            b"attempt_number",
            "dispatch_token",
            b"dispatch_token",
            "kwargs",
            b"kwargs",
            "max_retries",
            b"max_retries",
            "timeout_seconds",
            b"timeout_seconds",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "_attempt_number",
            b"_attempt_number",
            "_dispatch_token",
            b"_dispatch_token",
            "_max_retries",
            b"_max_retries",
            "_timeout_seconds",
            b"_timeout_seconds",
            "action_id",
            b"action_id",
            "action_name",
            b"action_name",
            "attempt_number",
            b"attempt_number",
            "dispatch_token",
            b"dispatch_token",
            "instance_id",
            b"instance_id",
            "kwargs",
            b"kwargs",
            "max_retries",
            b"max_retries",
            "module_name",
            b"module_name",
            "sequence",
            b"sequence",
            "timeout_seconds",
            b"timeout_seconds",
        ],
    ) -> None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_attempt_number", b"_attempt_number"]
    ) -> typing.Literal["attempt_number"] | None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_dispatch_token", b"_dispatch_token"]
    ) -> typing.Literal["dispatch_token"] | None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_max_retries", b"_max_retries"]
    ) -> typing.Literal["max_retries"] | None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_timeout_seconds", b"_timeout_seconds"]
    ) -> typing.Literal["timeout_seconds"] | None: ...

Global___ActionDispatch: typing_extensions.TypeAlias = ActionDispatch

@typing.final
class ActionResult(google.protobuf.message.Message):
    """Worker -> Server: result of action execution"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ACTION_ID_FIELD_NUMBER: builtins.int
    SUCCESS_FIELD_NUMBER: builtins.int
    PAYLOAD_FIELD_NUMBER: builtins.int
    WORKER_START_NS_FIELD_NUMBER: builtins.int
    WORKER_END_NS_FIELD_NUMBER: builtins.int
    DISPATCH_TOKEN_FIELD_NUMBER: builtins.int
    ERROR_TYPE_FIELD_NUMBER: builtins.int
    ERROR_MESSAGE_FIELD_NUMBER: builtins.int
    action_id: builtins.str
    success: builtins.bool
    worker_start_ns: builtins.int
    """Perf counter at execution start"""
    worker_end_ns: builtins.int
    """Perf counter at execution end"""
    dispatch_token: builtins.str
    error_type: builtins.str
    """Exception type if success=false"""
    error_message: builtins.str
    """Exception message if success=false"""
    @property
    def payload(self) -> Global___WorkflowArguments:
        """Result or error details"""

    def __init__(
        self,
        *,
        action_id: builtins.str = ...,
        success: builtins.bool = ...,
        payload: Global___WorkflowArguments | None = ...,
        worker_start_ns: builtins.int = ...,
        worker_end_ns: builtins.int = ...,
        dispatch_token: builtins.str | None = ...,
        error_type: builtins.str | None = ...,
        error_message: builtins.str | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "_dispatch_token",
            b"_dispatch_token",
            "_error_message",
            b"_error_message",
            "_error_type",
            b"_error_type",
            "dispatch_token",
            b"dispatch_token",
            "error_message",
            b"error_message",
            "error_type",
            b"error_type",
            "payload",
            b"payload",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "_dispatch_token",
            b"_dispatch_token",
            "_error_message",
            b"_error_message",
            "_error_type",
            b"_error_type",
            "action_id",
            b"action_id",
            "dispatch_token",
            b"dispatch_token",
            "error_message",
            b"error_message",
            "error_type",
            b"error_type",
            "payload",
            b"payload",
            "success",
            b"success",
            "worker_end_ns",
            b"worker_end_ns",
            "worker_start_ns",
            b"worker_start_ns",
        ],
    ) -> None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_dispatch_token", b"_dispatch_token"]
    ) -> typing.Literal["dispatch_token"] | None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_error_message", b"_error_message"]
    ) -> typing.Literal["error_message"] | None: ...
    @typing.overload
    def WhichOneof(
        self, oneof_group: typing.Literal["_error_type", b"_error_type"]
    ) -> typing.Literal["error_type"] | None: ...

Global___ActionResult: typing_extensions.TypeAlias = ActionResult

@typing.final
class Ack(google.protobuf.message.Message):
    """Worker -> Server: acknowledgment of message receipt"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ACKED_DELIVERY_ID_FIELD_NUMBER: builtins.int
    acked_delivery_id: builtins.int
    def __init__(
        self,
        *,
        acked_delivery_id: builtins.int = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing.Literal["acked_delivery_id", b"acked_delivery_id"]
    ) -> None: ...

Global___Ack: typing_extensions.TypeAlias = Ack

@typing.final
class WorkerHello(google.protobuf.message.Message):
    """Worker -> Server: initial handshake when connecting"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WORKER_ID_FIELD_NUMBER: builtins.int
    worker_id: builtins.int
    def __init__(
        self,
        *,
        worker_id: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["worker_id", b"worker_id"]) -> None: ...

Global___WorkerHello: typing_extensions.TypeAlias = WorkerHello

@typing.final
class WorkflowArgumentValue(google.protobuf.message.Message):
    """=============================================================================
    Value Serialization
    =============================================================================
    All values passed between Rust and Python must be JSON-serializable.
    These messages define the wire format for workflow arguments and results.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PRIMITIVE_FIELD_NUMBER: builtins.int
    BASEMODEL_FIELD_NUMBER: builtins.int
    EXCEPTION_FIELD_NUMBER: builtins.int
    LIST_VALUE_FIELD_NUMBER: builtins.int
    TUPLE_VALUE_FIELD_NUMBER: builtins.int
    DICT_VALUE_FIELD_NUMBER: builtins.int
    @property
    def primitive(self) -> Global___PrimitiveWorkflowArgument: ...
    @property
    def basemodel(self) -> Global___BaseModelWorkflowArgument: ...
    @property
    def exception(self) -> Global___WorkflowErrorValue: ...
    @property
    def list_value(self) -> Global___WorkflowListArgument: ...
    @property
    def tuple_value(self) -> Global___WorkflowTupleArgument: ...
    @property
    def dict_value(self) -> Global___WorkflowDictArgument: ...
    def __init__(
        self,
        *,
        primitive: Global___PrimitiveWorkflowArgument | None = ...,
        basemodel: Global___BaseModelWorkflowArgument | None = ...,
        exception: Global___WorkflowErrorValue | None = ...,
        list_value: Global___WorkflowListArgument | None = ...,
        tuple_value: Global___WorkflowTupleArgument | None = ...,
        dict_value: Global___WorkflowDictArgument | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "basemodel",
            b"basemodel",
            "dict_value",
            b"dict_value",
            "exception",
            b"exception",
            "kind",
            b"kind",
            "list_value",
            b"list_value",
            "primitive",
            b"primitive",
            "tuple_value",
            b"tuple_value",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "basemodel",
            b"basemodel",
            "dict_value",
            b"dict_value",
            "exception",
            b"exception",
            "kind",
            b"kind",
            "list_value",
            b"list_value",
            "primitive",
            b"primitive",
            "tuple_value",
            b"tuple_value",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["kind", b"kind"]
    ) -> (
        typing.Literal[
            "primitive", "basemodel", "exception", "list_value", "tuple_value", "dict_value"
        ]
        | None
    ): ...

Global___WorkflowArgumentValue: typing_extensions.TypeAlias = WorkflowArgumentValue

@typing.final
class WorkflowArgument(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    KEY_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    key: builtins.str
    @property
    def value(self) -> Global___WorkflowArgumentValue: ...
    def __init__(
        self,
        *,
        key: builtins.str = ...,
        value: Global___WorkflowArgumentValue | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

Global___WorkflowArgument: typing_extensions.TypeAlias = WorkflowArgument

@typing.final
class WorkflowArguments(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ARGUMENTS_FIELD_NUMBER: builtins.int
    @property
    def arguments(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        Global___WorkflowArgument
    ]: ...
    def __init__(
        self,
        *,
        arguments: collections.abc.Iterable[Global___WorkflowArgument] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["arguments", b"arguments"]) -> None: ...

Global___WorkflowArguments: typing_extensions.TypeAlias = WorkflowArguments

@typing.final
class PrimitiveWorkflowArgument(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STRING_VALUE_FIELD_NUMBER: builtins.int
    DOUBLE_VALUE_FIELD_NUMBER: builtins.int
    INT_VALUE_FIELD_NUMBER: builtins.int
    BOOL_VALUE_FIELD_NUMBER: builtins.int
    NULL_VALUE_FIELD_NUMBER: builtins.int
    string_value: builtins.str
    double_value: builtins.float
    int_value: builtins.int
    bool_value: builtins.bool
    null_value: google.protobuf.struct_pb2.NullValue.ValueType
    def __init__(
        self,
        *,
        string_value: builtins.str = ...,
        double_value: builtins.float = ...,
        int_value: builtins.int = ...,
        bool_value: builtins.bool = ...,
        null_value: google.protobuf.struct_pb2.NullValue.ValueType = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "bool_value",
            b"bool_value",
            "double_value",
            b"double_value",
            "int_value",
            b"int_value",
            "kind",
            b"kind",
            "null_value",
            b"null_value",
            "string_value",
            b"string_value",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "bool_value",
            b"bool_value",
            "double_value",
            b"double_value",
            "int_value",
            b"int_value",
            "kind",
            b"kind",
            "null_value",
            b"null_value",
            "string_value",
            b"string_value",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["kind", b"kind"]
    ) -> (
        typing.Literal["string_value", "double_value", "int_value", "bool_value", "null_value"]
        | None
    ): ...

Global___PrimitiveWorkflowArgument: typing_extensions.TypeAlias = PrimitiveWorkflowArgument

@typing.final
class BaseModelWorkflowArgument(google.protobuf.message.Message):
    """Pydantic BaseModel or similar structured types"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODULE_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    module: builtins.str
    name: builtins.str
    @property
    def data(self) -> Global___WorkflowDictArgument: ...
    def __init__(
        self,
        *,
        module: builtins.str = ...,
        name: builtins.str = ...,
        data: Global___WorkflowDictArgument | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["data", b"data"]) -> builtins.bool: ...
    def ClearField(
        self, field_name: typing.Literal["data", b"data", "module", b"module", "name", b"name"]
    ) -> None: ...

Global___BaseModelWorkflowArgument: typing_extensions.TypeAlias = BaseModelWorkflowArgument

@typing.final
class WorkflowErrorValue(google.protobuf.message.Message):
    """Serialized exception for error propagation"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TYPE_FIELD_NUMBER: builtins.int
    MODULE_FIELD_NUMBER: builtins.int
    MESSAGE_FIELD_NUMBER: builtins.int
    TRACEBACK_FIELD_NUMBER: builtins.int
    VALUES_FIELD_NUMBER: builtins.int
    TYPE_HIERARCHY_FIELD_NUMBER: builtins.int
    type: builtins.str
    module: builtins.str
    message: builtins.str
    traceback: builtins.str
    @property
    def values(self) -> Global___WorkflowDictArgument: ...
    @property
    def type_hierarchy(
        self,
    ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Exception class hierarchy (MRO) for proper except matching.
        e.g., for KeyError: ["KeyError", "LookupError", "Exception", "BaseException"]
        This allows `except LookupError:` to catch KeyError.
        """

    def __init__(
        self,
        *,
        type: builtins.str = ...,
        module: builtins.str = ...,
        message: builtins.str = ...,
        traceback: builtins.str = ...,
        values: Global___WorkflowDictArgument | None = ...,
        type_hierarchy: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["values", b"values"]) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "message",
            b"message",
            "module",
            b"module",
            "traceback",
            b"traceback",
            "type",
            b"type",
            "type_hierarchy",
            b"type_hierarchy",
            "values",
            b"values",
        ],
    ) -> None: ...

Global___WorkflowErrorValue: typing_extensions.TypeAlias = WorkflowErrorValue

@typing.final
class WorkflowListArgument(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ITEMS_FIELD_NUMBER: builtins.int
    @property
    def items(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        Global___WorkflowArgumentValue
    ]: ...
    def __init__(
        self,
        *,
        items: collections.abc.Iterable[Global___WorkflowArgumentValue] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["items", b"items"]) -> None: ...

Global___WorkflowListArgument: typing_extensions.TypeAlias = WorkflowListArgument

@typing.final
class WorkflowTupleArgument(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ITEMS_FIELD_NUMBER: builtins.int
    @property
    def items(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        Global___WorkflowArgumentValue
    ]: ...
    def __init__(
        self,
        *,
        items: collections.abc.Iterable[Global___WorkflowArgumentValue] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["items", b"items"]) -> None: ...

Global___WorkflowTupleArgument: typing_extensions.TypeAlias = WorkflowTupleArgument

@typing.final
class WorkflowDictArgument(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ENTRIES_FIELD_NUMBER: builtins.int
    @property
    def entries(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        Global___WorkflowArgument
    ]: ...
    def __init__(
        self,
        *,
        entries: collections.abc.Iterable[Global___WorkflowArgument] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["entries", b"entries"]) -> None: ...

Global___WorkflowDictArgument: typing_extensions.TypeAlias = WorkflowDictArgument

@typing.final
class WorkflowRegistration(google.protobuf.message.Message):
    """=============================================================================
    Workflow Registration
    =============================================================================
    Messages for registering workflows and starting instances.

    Workflow registration containing the IR program
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WORKFLOW_NAME_FIELD_NUMBER: builtins.int
    IR_FIELD_NUMBER: builtins.int
    IR_HASH_FIELD_NUMBER: builtins.int
    INITIAL_CONTEXT_FIELD_NUMBER: builtins.int
    CONCURRENT_FIELD_NUMBER: builtins.int
    PRIORITY_FIELD_NUMBER: builtins.int
    workflow_name: builtins.str
    ir: builtins.bytes
    """Serialized IR program (from ast.proto)"""
    ir_hash: builtins.str
    """Hash of the IR for versioning"""
    concurrent: builtins.bool
    """Whether multiple instances can run"""
    priority: builtins.int
    """Priority for queue ordering (higher values are processed first, default 0)"""
    @property
    def initial_context(self) -> Global___WorkflowArguments: ...
    def __init__(
        self,
        *,
        workflow_name: builtins.str = ...,
        ir: builtins.bytes = ...,
        ir_hash: builtins.str = ...,
        initial_context: Global___WorkflowArguments | None = ...,
        concurrent: builtins.bool = ...,
        priority: builtins.int | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "_priority",
            b"_priority",
            "initial_context",
            b"initial_context",
            "priority",
            b"priority",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "_priority",
            b"_priority",
            "concurrent",
            b"concurrent",
            "initial_context",
            b"initial_context",
            "ir",
            b"ir",
            "ir_hash",
            b"ir_hash",
            "priority",
            b"priority",
            "workflow_name",
            b"workflow_name",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["_priority", b"_priority"]
    ) -> typing.Literal["priority"] | None: ...

Global___WorkflowRegistration: typing_extensions.TypeAlias = WorkflowRegistration

@typing.final
class RegisterWorkflowRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REGISTRATION_FIELD_NUMBER: builtins.int
    @property
    def registration(self) -> Global___WorkflowRegistration: ...
    def __init__(
        self,
        *,
        registration: Global___WorkflowRegistration | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["registration", b"registration"]
    ) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["registration", b"registration"]) -> None: ...

Global___RegisterWorkflowRequest: typing_extensions.TypeAlias = RegisterWorkflowRequest

@typing.final
class RegisterWorkflowResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WORKFLOW_VERSION_ID_FIELD_NUMBER: builtins.int
    WORKFLOW_INSTANCE_ID_FIELD_NUMBER: builtins.int
    workflow_version_id: builtins.str
    workflow_instance_id: builtins.str
    def __init__(
        self,
        *,
        workflow_version_id: builtins.str = ...,
        workflow_instance_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "workflow_instance_id",
            b"workflow_instance_id",
            "workflow_version_id",
            b"workflow_version_id",
        ],
    ) -> None: ...

Global___RegisterWorkflowResponse: typing_extensions.TypeAlias = RegisterWorkflowResponse

@typing.final
class RegisterWorkflowBatchRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REGISTRATION_FIELD_NUMBER: builtins.int
    COUNT_FIELD_NUMBER: builtins.int
    INPUTS_FIELD_NUMBER: builtins.int
    INPUTS_LIST_FIELD_NUMBER: builtins.int
    BATCH_SIZE_FIELD_NUMBER: builtins.int
    INCLUDE_INSTANCE_IDS_FIELD_NUMBER: builtins.int
    count: builtins.int
    """Total number of instances to create when inputs_list is empty."""
    batch_size: builtins.int
    """Batch size for database inserts."""
    include_instance_ids: builtins.bool
    """Whether to return instance IDs in the response."""
    @property
    def registration(self) -> Global___WorkflowRegistration: ...
    @property
    def inputs(self) -> Global___WorkflowArguments:
        """Base inputs to apply to each instance when inputs_list is empty."""

    @property
    def inputs_list(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        Global___WorkflowArguments
    ]:
        """Per-instance inputs (overrides count/inputs when provided)."""

    def __init__(
        self,
        *,
        registration: Global___WorkflowRegistration | None = ...,
        count: builtins.int = ...,
        inputs: Global___WorkflowArguments | None = ...,
        inputs_list: collections.abc.Iterable[Global___WorkflowArguments] | None = ...,
        batch_size: builtins.int = ...,
        include_instance_ids: builtins.bool = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["inputs", b"inputs", "registration", b"registration"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "batch_size",
            b"batch_size",
            "count",
            b"count",
            "include_instance_ids",
            b"include_instance_ids",
            "inputs",
            b"inputs",
            "inputs_list",
            b"inputs_list",
            "registration",
            b"registration",
        ],
    ) -> None: ...

Global___RegisterWorkflowBatchRequest: typing_extensions.TypeAlias = RegisterWorkflowBatchRequest

@typing.final
class RegisterWorkflowBatchResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WORKFLOW_VERSION_ID_FIELD_NUMBER: builtins.int
    WORKFLOW_INSTANCE_IDS_FIELD_NUMBER: builtins.int
    QUEUED_FIELD_NUMBER: builtins.int
    workflow_version_id: builtins.str
    queued: builtins.int
    @property
    def workflow_instance_ids(
        self,
    ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        workflow_version_id: builtins.str = ...,
        workflow_instance_ids: collections.abc.Iterable[builtins.str] | None = ...,
        queued: builtins.int = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "queued",
            b"queued",
            "workflow_instance_ids",
            b"workflow_instance_ids",
            "workflow_version_id",
            b"workflow_version_id",
        ],
    ) -> None: ...

Global___RegisterWorkflowBatchResponse: typing_extensions.TypeAlias = RegisterWorkflowBatchResponse

@typing.final
class WaitForInstanceRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INSTANCE_ID_FIELD_NUMBER: builtins.int
    POLL_INTERVAL_SECS_FIELD_NUMBER: builtins.int
    instance_id: builtins.str
    poll_interval_secs: builtins.float
    def __init__(
        self,
        *,
        instance_id: builtins.str = ...,
        poll_interval_secs: builtins.float = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "instance_id", b"instance_id", "poll_interval_secs", b"poll_interval_secs"
        ],
    ) -> None: ...

Global___WaitForInstanceRequest: typing_extensions.TypeAlias = WaitForInstanceRequest

@typing.final
class WaitForInstanceResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PAYLOAD_FIELD_NUMBER: builtins.int
    payload: builtins.bytes
    def __init__(
        self,
        *,
        payload: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["payload", b"payload"]) -> None: ...

Global___WaitForInstanceResponse: typing_extensions.TypeAlias = WaitForInstanceResponse

@typing.final
class WorkflowStreamRequest(google.protobuf.message.Message):
    """=============================================================================
    In-memory workflow execution (local broker)
    =============================================================================

    Client -> server messages for workflow execution streaming.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REGISTRATION_FIELD_NUMBER: builtins.int
    ACTION_RESULT_FIELD_NUMBER: builtins.int
    SKIP_SLEEP_FIELD_NUMBER: builtins.int
    skip_sleep: builtins.bool
    """Skip sleep/backoff delays in in-memory execution (e.g., pytest)."""
    @property
    def registration(self) -> Global___WorkflowRegistration: ...
    @property
    def action_result(self) -> Global___ActionResult: ...
    def __init__(
        self,
        *,
        registration: Global___WorkflowRegistration | None = ...,
        action_result: Global___ActionResult | None = ...,
        skip_sleep: builtins.bool = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "action_result", b"action_result", "kind", b"kind", "registration", b"registration"
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "action_result",
            b"action_result",
            "kind",
            b"kind",
            "registration",
            b"registration",
            "skip_sleep",
            b"skip_sleep",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["kind", b"kind"]
    ) -> typing.Literal["registration", "action_result"] | None: ...

Global___WorkflowStreamRequest: typing_extensions.TypeAlias = WorkflowStreamRequest

@typing.final
class WorkflowExecutionResult(google.protobuf.message.Message):
    """Server -> client final workflow result payload."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PAYLOAD_FIELD_NUMBER: builtins.int
    payload: builtins.bytes
    def __init__(
        self,
        *,
        payload: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["payload", b"payload"]) -> None: ...

Global___WorkflowExecutionResult: typing_extensions.TypeAlias = WorkflowExecutionResult

@typing.final
class WorkflowStreamResponse(google.protobuf.message.Message):
    """Server -> client messages for workflow execution streaming."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ACTION_DISPATCH_FIELD_NUMBER: builtins.int
    WORKFLOW_RESULT_FIELD_NUMBER: builtins.int
    @property
    def action_dispatch(self) -> Global___ActionDispatch: ...
    @property
    def workflow_result(self) -> Global___WorkflowExecutionResult: ...
    def __init__(
        self,
        *,
        action_dispatch: Global___ActionDispatch | None = ...,
        workflow_result: Global___WorkflowExecutionResult | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "action_dispatch",
            b"action_dispatch",
            "kind",
            b"kind",
            "workflow_result",
            b"workflow_result",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "action_dispatch",
            b"action_dispatch",
            "kind",
            b"kind",
            "workflow_result",
            b"workflow_result",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["kind", b"kind"]
    ) -> typing.Literal["action_dispatch", "workflow_result"] | None: ...

Global___WorkflowStreamResponse: typing_extensions.TypeAlias = WorkflowStreamResponse

@typing.final
class ScheduleDefinition(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TYPE_FIELD_NUMBER: builtins.int
    CRON_EXPRESSION_FIELD_NUMBER: builtins.int
    INTERVAL_SECONDS_FIELD_NUMBER: builtins.int
    JITTER_SECONDS_FIELD_NUMBER: builtins.int
    type: Global___ScheduleType.ValueType
    cron_expression: builtins.str
    """For cron: the cron expression (e.g., "0 * * * *")"""
    interval_seconds: builtins.int
    """For interval: duration in seconds"""
    jitter_seconds: builtins.int
    """Optional: jitter window in seconds (random 0..jitter_seconds)"""
    def __init__(
        self,
        *,
        type: Global___ScheduleType.ValueType = ...,
        cron_expression: builtins.str = ...,
        interval_seconds: builtins.int = ...,
        jitter_seconds: builtins.int = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "cron_expression",
            b"cron_expression",
            "interval_seconds",
            b"interval_seconds",
            "jitter_seconds",
            b"jitter_seconds",
            "type",
            b"type",
        ],
    ) -> None: ...

Global___ScheduleDefinition: typing_extensions.TypeAlias = ScheduleDefinition

@typing.final
class RegisterScheduleRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WORKFLOW_NAME_FIELD_NUMBER: builtins.int
    SCHEDULE_FIELD_NUMBER: builtins.int
    INPUTS_FIELD_NUMBER: builtins.int
    REGISTRATION_FIELD_NUMBER: builtins.int
    SCHEDULE_NAME_FIELD_NUMBER: builtins.int
    PRIORITY_FIELD_NUMBER: builtins.int
    workflow_name: builtins.str
    schedule_name: builtins.str
    """Required: unique name for this schedule. Allows multiple schedules per workflow
    with different inputs. Must be unique within a workflow.
    """
    priority: builtins.int
    """Priority for queue ordering (higher values are processed first, default 0)"""
    @property
    def schedule(self) -> Global___ScheduleDefinition: ...
    @property
    def inputs(self) -> Global___WorkflowArguments:
        """Optional: inputs to pass to each scheduled run"""

    @property
    def registration(self) -> Global___WorkflowRegistration:
        """Optional: workflow registration to register the DAG before scheduling.
        If provided, the workflow version will be registered (or updated) before
        the schedule is created. This ensures the workflow can execute when the
        schedule fires.
        """

    def __init__(
        self,
        *,
        workflow_name: builtins.str = ...,
        schedule: Global___ScheduleDefinition | None = ...,
        inputs: Global___WorkflowArguments | None = ...,
        registration: Global___WorkflowRegistration | None = ...,
        schedule_name: builtins.str = ...,
        priority: builtins.int | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "_priority",
            b"_priority",
            "inputs",
            b"inputs",
            "priority",
            b"priority",
            "registration",
            b"registration",
            "schedule",
            b"schedule",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "_priority",
            b"_priority",
            "inputs",
            b"inputs",
            "priority",
            b"priority",
            "registration",
            b"registration",
            "schedule",
            b"schedule",
            "schedule_name",
            b"schedule_name",
            "workflow_name",
            b"workflow_name",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["_priority", b"_priority"]
    ) -> typing.Literal["priority"] | None: ...

Global___RegisterScheduleRequest: typing_extensions.TypeAlias = RegisterScheduleRequest

@typing.final
class RegisterScheduleResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SCHEDULE_ID_FIELD_NUMBER: builtins.int
    NEXT_RUN_AT_FIELD_NUMBER: builtins.int
    schedule_id: builtins.str
    next_run_at: builtins.str
    """The computed next_run_at timestamp (ISO 8601)"""
    def __init__(
        self,
        *,
        schedule_id: builtins.str = ...,
        next_run_at: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal["next_run_at", b"next_run_at", "schedule_id", b"schedule_id"],
    ) -> None: ...

Global___RegisterScheduleResponse: typing_extensions.TypeAlias = RegisterScheduleResponse

@typing.final
class UpdateScheduleStatusRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WORKFLOW_NAME_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    SCHEDULE_NAME_FIELD_NUMBER: builtins.int
    workflow_name: builtins.str
    status: Global___ScheduleStatus.ValueType
    schedule_name: builtins.str
    """Required: name of the schedule to update."""
    def __init__(
        self,
        *,
        workflow_name: builtins.str = ...,
        status: Global___ScheduleStatus.ValueType = ...,
        schedule_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "schedule_name",
            b"schedule_name",
            "status",
            b"status",
            "workflow_name",
            b"workflow_name",
        ],
    ) -> None: ...

Global___UpdateScheduleStatusRequest: typing_extensions.TypeAlias = UpdateScheduleStatusRequest

@typing.final
class UpdateScheduleStatusResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUCCESS_FIELD_NUMBER: builtins.int
    success: builtins.bool
    def __init__(
        self,
        *,
        success: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["success", b"success"]) -> None: ...

Global___UpdateScheduleStatusResponse: typing_extensions.TypeAlias = UpdateScheduleStatusResponse

@typing.final
class DeleteScheduleRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WORKFLOW_NAME_FIELD_NUMBER: builtins.int
    SCHEDULE_NAME_FIELD_NUMBER: builtins.int
    workflow_name: builtins.str
    schedule_name: builtins.str
    """Required: name of the schedule to delete."""
    def __init__(
        self,
        *,
        workflow_name: builtins.str = ...,
        schedule_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "schedule_name", b"schedule_name", "workflow_name", b"workflow_name"
        ],
    ) -> None: ...

Global___DeleteScheduleRequest: typing_extensions.TypeAlias = DeleteScheduleRequest

@typing.final
class DeleteScheduleResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUCCESS_FIELD_NUMBER: builtins.int
    success: builtins.bool
    def __init__(
        self,
        *,
        success: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["success", b"success"]) -> None: ...

Global___DeleteScheduleResponse: typing_extensions.TypeAlias = DeleteScheduleResponse

@typing.final
class ListSchedulesRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STATUS_FILTER_FIELD_NUMBER: builtins.int
    status_filter: builtins.str
    """Optional filter by status ("active", "paused"). If empty, returns all non-deleted."""
    def __init__(
        self,
        *,
        status_filter: builtins.str | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "_status_filter", b"_status_filter", "status_filter", b"status_filter"
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "_status_filter", b"_status_filter", "status_filter", b"status_filter"
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["_status_filter", b"_status_filter"]
    ) -> typing.Literal["status_filter"] | None: ...

Global___ListSchedulesRequest: typing_extensions.TypeAlias = ListSchedulesRequest

@typing.final
class ScheduleInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    WORKFLOW_NAME_FIELD_NUMBER: builtins.int
    SCHEDULE_TYPE_FIELD_NUMBER: builtins.int
    CRON_EXPRESSION_FIELD_NUMBER: builtins.int
    INTERVAL_SECONDS_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    NEXT_RUN_AT_FIELD_NUMBER: builtins.int
    LAST_RUN_AT_FIELD_NUMBER: builtins.int
    LAST_INSTANCE_ID_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    UPDATED_AT_FIELD_NUMBER: builtins.int
    SCHEDULE_NAME_FIELD_NUMBER: builtins.int
    JITTER_SECONDS_FIELD_NUMBER: builtins.int
    id: builtins.str
    workflow_name: builtins.str
    schedule_type: Global___ScheduleType.ValueType
    cron_expression: builtins.str
    """Empty if interval-based"""
    interval_seconds: builtins.int
    """0 if cron-based"""
    status: Global___ScheduleStatus.ValueType
    next_run_at: builtins.str
    """ISO 8601 timestamp"""
    last_run_at: builtins.str
    """ISO 8601 timestamp, empty if never run"""
    last_instance_id: builtins.str
    """Empty if never run"""
    created_at: builtins.str
    """ISO 8601 timestamp"""
    updated_at: builtins.str
    """ISO 8601 timestamp"""
    schedule_name: builtins.str
    """Name of this schedule (allows multiple per workflow)"""
    jitter_seconds: builtins.int
    """0 if no jitter configured"""
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        workflow_name: builtins.str = ...,
        schedule_type: Global___ScheduleType.ValueType = ...,
        cron_expression: builtins.str = ...,
        interval_seconds: builtins.int = ...,
        status: Global___ScheduleStatus.ValueType = ...,
        next_run_at: builtins.str = ...,
        last_run_at: builtins.str = ...,
        last_instance_id: builtins.str = ...,
        created_at: builtins.str = ...,
        updated_at: builtins.str = ...,
        schedule_name: builtins.str = ...,
        jitter_seconds: builtins.int = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "created_at",
            b"created_at",
            "cron_expression",
            b"cron_expression",
            "id",
            b"id",
            "interval_seconds",
            b"interval_seconds",
            "jitter_seconds",
            b"jitter_seconds",
            "last_instance_id",
            b"last_instance_id",
            "last_run_at",
            b"last_run_at",
            "next_run_at",
            b"next_run_at",
            "schedule_name",
            b"schedule_name",
            "schedule_type",
            b"schedule_type",
            "status",
            b"status",
            "updated_at",
            b"updated_at",
            "workflow_name",
            b"workflow_name",
        ],
    ) -> None: ...

Global___ScheduleInfo: typing_extensions.TypeAlias = ScheduleInfo

@typing.final
class ListSchedulesResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SCHEDULES_FIELD_NUMBER: builtins.int
    @property
    def schedules(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        Global___ScheduleInfo
    ]: ...
    def __init__(
        self,
        *,
        schedules: collections.abc.Iterable[Global___ScheduleInfo] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["schedules", b"schedules"]) -> None: ...

Global___ListSchedulesResponse: typing_extensions.TypeAlias = ListSchedulesResponse
