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

from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import wrappers_pb2 as _wrappers_pb2
import builtins as _builtins
import sys
import typing as _typing

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

DESCRIPTOR: _descriptor.FileDescriptor

@_typing.final
class Evaluation(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    @_typing.final
    class SubjectId(_message.Message):
        DESCRIPTOR: _descriptor.Descriptor

        @_typing.final
        class DocumentRetrievalId(_message.Message):
            DESCRIPTOR: _descriptor.Descriptor

            SPAN_ID_FIELD_NUMBER: _builtins.int
            DOCUMENT_POSITION_FIELD_NUMBER: _builtins.int
            span_id: _builtins.str
            document_position: _builtins.int
            """zero-based index"""
            def __init__(
                self,
                *,
                span_id: _builtins.str = ...,
                document_position: _builtins.int = ...,
            ) -> None: ...
            _ClearFieldArgType: _TypeAlias = _typing.Literal["document_position", b"document_position", "span_id", b"span_id"]  # noqa: Y015
            def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

        TRACE_ID_FIELD_NUMBER: _builtins.int
        SPAN_ID_FIELD_NUMBER: _builtins.int
        DOCUMENT_RETRIEVAL_ID_FIELD_NUMBER: _builtins.int
        trace_id: _builtins.str
        span_id: _builtins.str
        @_builtins.property
        def document_retrieval_id(self) -> Global___Evaluation.SubjectId.DocumentRetrievalId: ...
        def __init__(
            self,
            *,
            trace_id: _builtins.str = ...,
            span_id: _builtins.str = ...,
            document_retrieval_id: Global___Evaluation.SubjectId.DocumentRetrievalId | None = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["document_retrieval_id", b"document_retrieval_id", "kind", b"kind", "span_id", b"span_id", "trace_id", b"trace_id"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["document_retrieval_id", b"document_retrieval_id", "kind", b"kind", "span_id", b"span_id", "trace_id", b"trace_id"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
        _WhichOneofReturnType_kind: _TypeAlias = _typing.Literal["trace_id", "span_id", "document_retrieval_id"]  # noqa: Y015
        _WhichOneofArgType_kind: _TypeAlias = _typing.Literal["kind", b"kind"]  # noqa: Y015
        def WhichOneof(self, oneof_group: _WhichOneofArgType_kind) -> _WhichOneofReturnType_kind | None: ...

    @_typing.final
    class Result(_message.Message):
        DESCRIPTOR: _descriptor.Descriptor

        SCORE_FIELD_NUMBER: _builtins.int
        LABEL_FIELD_NUMBER: _builtins.int
        EXPLANATION_FIELD_NUMBER: _builtins.int
        @_builtins.property
        def score(self) -> _wrappers_pb2.DoubleValue: ...
        @_builtins.property
        def label(self) -> _wrappers_pb2.StringValue: ...
        @_builtins.property
        def explanation(self) -> _wrappers_pb2.StringValue: ...
        def __init__(
            self,
            *,
            score: _wrappers_pb2.DoubleValue | None = ...,
            label: _wrappers_pb2.StringValue | None = ...,
            explanation: _wrappers_pb2.StringValue | None = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["explanation", b"explanation", "label", b"label", "score", b"score"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["explanation", b"explanation", "label", b"label", "score", b"score"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

    NAME_FIELD_NUMBER: _builtins.int
    SUBJECT_ID_FIELD_NUMBER: _builtins.int
    RESULT_FIELD_NUMBER: _builtins.int
    name: _builtins.str
    @_builtins.property
    def subject_id(self) -> Global___Evaluation.SubjectId: ...
    @_builtins.property
    def result(self) -> Global___Evaluation.Result: ...
    def __init__(
        self,
        *,
        name: _builtins.str = ...,
        subject_id: Global___Evaluation.SubjectId | None = ...,
        result: Global___Evaluation.Result | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["result", b"result", "subject_id", b"subject_id"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "result", b"result", "subject_id", b"subject_id"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___Evaluation: _TypeAlias = Evaluation  # noqa: Y015
