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

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.timestamp_pb2
import insightproto.proto.common.v1.common_pb2
import insightproto.proto.jobs.v1.jobs_pb2
import sys
import typing

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

    ORG_FIELD_NUMBER: builtins.int
    SIMULATOR_JOB_FIELD_NUMBER: builtins.int
    AGENT_JOB_IDS_FIELD_NUMBER: builtins.int
    STARTED_AT_FIELD_NUMBER: builtins.int
    COMPLETED_AT_FIELD_NUMBER: builtins.int
    EVALUATION_RESULT_FIELD_NUMBER: builtins.int
    @property
    def org(self) -> insightproto.proto.common.v1.common_pb2.Organisation:
        """Organization context"""

    @property
    def simulator_job(self) -> insightproto.proto.jobs.v1.jobs_pb2.SimulatorJob:
        """Full simulator job definition (includes job ID and configuration)"""

    @property
    def agent_job_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Multiple agents can be triggered"""

    @property
    def started_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Execution timing metadata"""

    @property
    def completed_at(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def evaluation_result(self) -> Global___EvaluationResult:
        """Evaluation results"""

    def __init__(
        self,
        *,
        org: insightproto.proto.common.v1.common_pb2.Organisation | None = ...,
        simulator_job: insightproto.proto.jobs.v1.jobs_pb2.SimulatorJob | None = ...,
        agent_job_ids: collections.abc.Iterable[builtins.str] | None = ...,
        started_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        completed_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        evaluation_result: Global___EvaluationResult | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["completed_at", b"completed_at", "evaluation_result", b"evaluation_result", "org", b"org", "simulator_job", b"simulator_job", "started_at", b"started_at"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["agent_job_ids", b"agent_job_ids", "completed_at", b"completed_at", "evaluation_result", b"evaluation_result", "org", b"org", "simulator_job", b"simulator_job", "started_at", b"started_at"]) -> None: ...

Global___SimulatorResultsRequest: typing_extensions.TypeAlias = SimulatorResultsRequest

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

    SUMMARY_FIELD_NUMBER: builtins.int
    OVERALL_SCORE_FIELD_NUMBER: builtins.int
    ANALYSIS_QUALITY_FIELD_NUMBER: builtins.int
    ACCURACY_ASSESSMENT_FIELD_NUMBER: builtins.int
    AREAS_FOR_IMPROVEMENT_FIELD_NUMBER: builtins.int
    STRENGTHS_FIELD_NUMBER: builtins.int
    summary: builtins.str
    """Summary inherited from AgentResult"""
    overall_score: builtins.int
    """Core evaluation metrics
    0-100,
    """
    analysis_quality: builtins.str
    accuracy_assessment: builtins.str
    areas_for_improvement: builtins.str
    """Optional improvement insights"""
    strengths: builtins.str
    def __init__(
        self,
        *,
        summary: builtins.str = ...,
        overall_score: builtins.int = ...,
        analysis_quality: builtins.str = ...,
        accuracy_assessment: builtins.str = ...,
        areas_for_improvement: builtins.str | None = ...,
        strengths: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_areas_for_improvement", b"_areas_for_improvement", "_strengths", b"_strengths", "areas_for_improvement", b"areas_for_improvement", "strengths", b"strengths"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_areas_for_improvement", b"_areas_for_improvement", "_strengths", b"_strengths", "accuracy_assessment", b"accuracy_assessment", "analysis_quality", b"analysis_quality", "areas_for_improvement", b"areas_for_improvement", "overall_score", b"overall_score", "strengths", b"strengths", "summary", b"summary"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_areas_for_improvement", b"_areas_for_improvement"]) -> typing.Literal["areas_for_improvement"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_strengths", b"_strengths"]) -> typing.Literal["strengths"] | None: ...

Global___EvaluationResult: typing_extensions.TypeAlias = EvaluationResult
