"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
from isolate.connections.grpc.definitions import common_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.struct_pb2
import sys

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class BoundFunction(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ENVIRONMENTS_FIELD_NUMBER: builtins.int
    FUNCTION_FIELD_NUMBER: builtins.int
    @property
    def environments(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___EnvironmentDefinition
    ]: ...
    @property
    def function(self) -> common_pb2.SerializedObject: ...
    def __init__(
        self,
        *,
        environments: collections.abc.Iterable[global___EnvironmentDefinition]
        | None = ...,
        function: common_pb2.SerializedObject | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["function", b"function"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "environments", b"environments", "function", b"function"
        ],
    ) -> None: ...

global___BoundFunction = BoundFunction

@typing_extensions.final
class EnvironmentDefinition(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    KIND_FIELD_NUMBER: builtins.int
    CONFIGURATION_FIELD_NUMBER: builtins.int
    kind: builtins.str
    """Kind of the isolate environment."""
    @property
    def configuration(self) -> google.protobuf.struct_pb2.Struct:
        """A free-form definition of environment properties."""
    def __init__(
        self,
        *,
        kind: builtins.str = ...,
        configuration: google.protobuf.struct_pb2.Struct | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["configuration", b"configuration"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "configuration", b"configuration", "kind", b"kind"
        ],
    ) -> None: ...

global___EnvironmentDefinition = EnvironmentDefinition
