// Copyright 2024 LiveKit, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//   http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// @generated by protoc-gen-es v1.10.1 with parameter "target=dts+js"
// @generated from file livekit_agent_simulation.proto (package livekit, syntax proto3)
/* eslint-disable */
// @ts-nocheck

import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage, Timestamp } from "@bufbuild/protobuf";
import { Message, proto3 } from "@bufbuild/protobuf";
import type { ChatContext, ChatRole } from "./agent/livekit_agent_session_pb.js";
import type { PresignedPostRequest } from "./livekit_cloud_agent_pb.js";
import type { TokenPagination } from "./livekit_models_pb.js";

/**
 * How the simulated user interacts with the agent under test.
 *
 * @generated from enum livekit.SimulationMode
 */
export declare enum SimulationMode {
  /**
   * @generated from enum value: SIMULATION_MODE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * The simulator chats over text streams (no audio).
   *
   * @generated from enum value: SIMULATION_MODE_TEXT = 1;
   */
  TEXT = 1,

  /**
   * The simulator publishes/subscribes audio in the room.
   *
   * @generated from enum value: SIMULATION_MODE_AUDIO = 2;
   */
  AUDIO = 2,
}

/**
 * @generated from message livekit.SimulationRunSummary
 */
export declare class SimulationRunSummary extends Message<SimulationRunSummary> {
  /**
   * @generated from field: int32 passed = 1;
   */
  passed: number;

  /**
   * @generated from field: int32 failed = 2;
   */
  failed: number;

  /**
   * @generated from field: string going_well = 3;
   */
  goingWell: string;

  /**
   * @generated from field: string to_improve = 4;
   */
  toImprove: string;

  /**
   * @generated from field: repeated livekit.SimulationRunSummary.Issue issues = 5;
   */
  issues: SimulationRunSummary_Issue[];

  /**
   * @generated from field: map<string, livekit.agent.ChatContext> chat_history = 6;
   */
  chatHistory: { [key: string]: ChatContext };

  constructor(data?: PartialMessage<SimulationRunSummary>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRunSummary";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRunSummary;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRunSummary;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRunSummary;

  static equals(a: SimulationRunSummary | PlainMessage<SimulationRunSummary> | undefined, b: SimulationRunSummary | PlainMessage<SimulationRunSummary> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRunSummary.Issue
 */
export declare class SimulationRunSummary_Issue extends Message<SimulationRunSummary_Issue> {
  /**
   * @generated from field: string description = 1;
   */
  description: string;

  /**
   * @generated from field: string suggestion = 2;
   */
  suggestion: string;

  /**
   * @generated from field: string label = 3;
   */
  label: string;

  constructor(data?: PartialMessage<SimulationRunSummary_Issue>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRunSummary.Issue";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRunSummary_Issue;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRunSummary_Issue;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRunSummary_Issue;

  static equals(a: SimulationRunSummary_Issue | PlainMessage<SimulationRunSummary_Issue> | undefined, b: SimulationRunSummary_Issue | PlainMessage<SimulationRunSummary_Issue> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun
 */
export declare class SimulationRun extends Message<SimulationRun> {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string project_id = 2;
   */
  projectId: string;

  /**
   * @generated from field: livekit.SimulationRun.Status status = 3;
   */
  status: SimulationRun_Status;

  /**
   * @generated from field: string agent_description = 4;
   */
  agentDescription: string;

  /**
   * @generated from field: string error = 5;
   */
  error: string;

  /**
   * @generated from field: google.protobuf.Timestamp created_at = 6;
   */
  createdAt?: Timestamp;

  /**
   * @generated from field: repeated livekit.SimulationRun.Job jobs = 7;
   */
  jobs: SimulationRun_Job[];

  /**
   * @generated from field: string agent_name = 9;
   */
  agentName: string;

  /**
   * @generated from field: livekit.ScenarioGroup scenario_group = 10;
   */
  scenarioGroup?: ScenarioGroup;

  /**
   * @generated from field: google.protobuf.Timestamp ended_at = 11;
   */
  endedAt?: Timestamp;

  /**
   * @generated from field: int32 job_count = 12;
   */
  jobCount: number;

  /**
   * @generated from field: int32 passed_count = 13;
   */
  passedCount: number;

  /**
   * @generated from field: int32 failed_count = 14;
   */
  failedCount: number;

  /**
   * @generated from field: int32 num_simulations = 15;
   */
  numSimulations: number;

  /**
   * Aggregate usage across all jobs in this run (sum of Job.usage).
   *
   * @generated from field: livekit.SimulationRun.Usage usage = 16;
   */
  usage?: SimulationRun_Usage;

  /**
   * Maximum simulate jobs running in parallel for this run (0 = server default).
   *
   * @generated from field: int32 concurrency = 17;
   */
  concurrency: number;

  /**
   * Conversation mode for every job in this run; unspecified = TEXT.
   *
   * @generated from field: livekit.SimulationMode mode = 18;
   */
  mode: SimulationMode;

  /**
   * Run-level metric aggregates.
   *
   * @generated from field: livekit.SimulationRun.RunMetrics metrics = 19;
   */
  metrics?: SimulationRun_RunMetrics;

  /**
   * zstd-compressed SimulationRunSummary: decompress, then proto.Unmarshal.
   * Compressed by default so the blob ships as-is on every hop.
   *
   * @generated from field: bytes summary_zstd = 20;
   */
  summaryZstd: Uint8Array;

  constructor(data?: PartialMessage<SimulationRun>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun;

  static equals(a: SimulationRun | PlainMessage<SimulationRun> | undefined, b: SimulationRun | PlainMessage<SimulationRun> | undefined): boolean;
}

/**
 * @generated from enum livekit.SimulationRun.Status
 */
export declare enum SimulationRun_Status {
  /**
   * @generated from enum value: STATUS_PENDING_UPLOAD = 0;
   */
  PENDING_UPLOAD = 0,

  /**
   * @generated from enum value: STATUS_GENERATING = 1;
   */
  GENERATING = 1,

  /**
   * @generated from enum value: STATUS_RUNNING = 2;
   */
  RUNNING = 2,

  /**
   * @generated from enum value: STATUS_SUMMARIZING = 3;
   */
  SUMMARIZING = 3,

  /**
   * @generated from enum value: STATUS_COMPLETED = 4;
   */
  COMPLETED = 4,

  /**
   * @generated from enum value: STATUS_FAILED = 5;
   */
  FAILED = 5,

  /**
   * @generated from enum value: STATUS_CANCELLED = 6;
   */
  CANCELLED = 6,
}

/**
 * @generated from message livekit.SimulationRun.Job
 */
export declare class SimulationRun_Job extends Message<SimulationRun_Job> {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: livekit.SimulationRun.Job.Status status = 2;
   */
  status: SimulationRun_Job_Status;

  /**
   * @generated from field: string instructions = 3;
   */
  instructions: string;

  /**
   * @generated from field: string error = 4;
   */
  error: string;

  /**
   * @generated from field: string agent_expectations = 5;
   */
  agentExpectations: string;

  /**
   * @generated from field: string label = 6;
   */
  label: string;

  /**
   * @generated from field: repeated string tags = 7;
   */
  tags: string[];

  /**
   * @generated from field: string room_name = 8;
   */
  roomName: string;

  /**
   * @generated from field: google.protobuf.Timestamp started_at = 10;
   */
  startedAt?: Timestamp;

  /**
   * @generated from field: google.protobuf.Timestamp ended_at = 11;
   */
  endedAt?: Timestamp;

  /**
   * @generated from field: string room_id = 12;
   */
  roomId: string;

  /**
   * @generated from field: livekit.SimulationRun.Job.Usage usage = 13;
   */
  usage?: SimulationRun_Job_Usage;

  /**
   * Quality metrics for this job's call. Unset when the job produced none.
   *
   * @generated from field: livekit.SimulationRun.JobMetrics metrics = 14;
   */
  metrics?: SimulationRun_JobMetrics;

  constructor(data?: PartialMessage<SimulationRun_Job>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.Job";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Job;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Job;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Job;

  static equals(a: SimulationRun_Job | PlainMessage<SimulationRun_Job> | undefined, b: SimulationRun_Job | PlainMessage<SimulationRun_Job> | undefined): boolean;
}

/**
 * @generated from enum livekit.SimulationRun.Job.Status
 */
export declare enum SimulationRun_Job_Status {
  /**
   * @generated from enum value: STATUS_PENDING = 0;
   */
  PENDING = 0,

  /**
   * @generated from enum value: STATUS_RUNNING = 1;
   */
  RUNNING = 1,

  /**
   * @generated from enum value: STATUS_COMPLETED = 2;
   */
  COMPLETED = 2,

  /**
   * @generated from enum value: STATUS_FAILED = 3;
   */
  FAILED = 3,

  /**
   * @generated from enum value: STATUS_CANCELLED = 4;
   */
  CANCELLED = 4,
}

/**
 * @generated from message livekit.SimulationRun.Job.Usage
 */
export declare class SimulationRun_Job_Usage extends Message<SimulationRun_Job_Usage> {
  /**
   * @generated from field: int32 text_turns_count = 1;
   */
  textTurnsCount: number;

  /**
   * @generated from field: int32 audio_turns_count = 2;
   */
  audioTurnsCount: number;

  constructor(data?: PartialMessage<SimulationRun_Job_Usage>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.Job.Usage";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Job_Usage;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Job_Usage;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Job_Usage;

  static equals(a: SimulationRun_Job_Usage | PlainMessage<SimulationRun_Job_Usage> | undefined, b: SimulationRun_Job_Usage | PlainMessage<SimulationRun_Job_Usage> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.JobMetrics
 */
export declare class SimulationRun_JobMetrics extends Message<SimulationRun_JobMetrics> {
  /**
   * Headline scores, 0-1, computed by the worker as weighted means over the
   * members that ran (a missing member renormalizes the rest):
   *   accuracy   = task_completion x3 + stt.keyterm_recall + (1 - stt.wer) + tts.enunciation_score
   *   experience = conversation.turn_taking_score x2 + tts.naturalness_score + llm.conciseness_score
   *
   * absent when the simulator spoiled the call
   *
   * @generated from field: optional float accuracy_score = 1;
   */
  accuracyScore?: number;

  /**
   * absent when the simulator spoiled the call
   *
   * @generated from field: optional float experience_score = 2;
   */
  experienceScore?: number;

  /**
   * The accuracy anchor: the scenario verdict as 1/0, or the fraction of the declared target state the call reached.
   *
   * absent when the simulator spoiled the call
   *
   * @generated from field: optional float task_completion = 3;
   */
  taskCompletion?: number;

  /**
   * @generated from field: livekit.SimulationRun.JobMetrics.STT stt = 4;
   */
  stt?: SimulationRun_JobMetrics_STT;

  /**
   * @generated from field: livekit.SimulationRun.JobMetrics.LLM llm = 5;
   */
  llm?: SimulationRun_JobMetrics_LLM;

  /**
   * @generated from field: livekit.SimulationRun.JobMetrics.TTS tts = 6;
   */
  tts?: SimulationRun_JobMetrics_TTS;

  /**
   * @generated from field: livekit.SimulationRun.JobMetrics.Conversation conversation = 7;
   */
  conversation?: SimulationRun_JobMetrics_Conversation;

  /**
   * @generated from field: livekit.SimulationRun.JobMetrics.Simulator simulator = 8;
   */
  simulator?: SimulationRun_JobMetrics_Simulator;

  /**
   * Conversation timeline: one entry per transcript turn, both speakers.
   *
   * @generated from field: repeated livekit.SimulationRun.JobMetrics.Turn turns = 9;
   */
  turns: SimulationRun_JobMetrics_Turn[];

  /**
   * text judge for judged scores; "" if none ran
   *
   * @generated from field: string judge_model = 10;
   */
  judgeModel: string;

  /**
   * audio (LALM) judge; "" if none ran
   *
   * @generated from field: string audio_judge_model = 11;
   */
  audioJudgeModel: string;

  /**
   * false = waveform-only capture (e.g. SIP)
   *
   * @generated from field: bool has_remote_session = 12;
   */
  hasRemoteSession: boolean;

  /**
   * audio only; call start (first speech edge); turn times relative to it
   *
   * @generated from field: google.protobuf.Timestamp t0 = 13;
   */
  t0?: Timestamp;

  constructor(data?: PartialMessage<SimulationRun_JobMetrics>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.JobMetrics";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_JobMetrics;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics;

  static equals(a: SimulationRun_JobMetrics | PlainMessage<SimulationRun_JobMetrics> | undefined, b: SimulationRun_JobMetrics | PlainMessage<SimulationRun_JobMetrics> | undefined): boolean;
}

/**
 * The agent's perception of the caller. Audio only.
 *
 * @generated from message livekit.SimulationRun.JobMetrics.STT
 */
export declare class SimulationRun_JobMetrics_STT extends Message<SimulationRun_JobMetrics_STT> {
  /**
   * needs the RemoteSession; word error rate, pooled: word_errors / words
   *
   * @generated from field: optional float wer = 1;
   */
  wer?: number;

  /**
   * needs the RemoteSession; pooling stats: run WER = sum errors / sum words
   *
   * @generated from field: optional uint32 words = 2;
   */
  words?: number;

  /**
   * needs the RemoteSession
   *
   * @generated from field: optional uint32 word_errors = 3;
   */
  wordErrors?: number;

  /**
   * needs the RemoteSession; character error rate, pooled
   *
   * @generated from field: optional float cer = 4;
   */
  cer?: number;

  /**
   * needs the RemoteSession
   *
   * @generated from field: optional uint32 chars = 9;
   */
  chars?: number;

  /**
   * needs the RemoteSession
   *
   * @generated from field: optional uint32 char_errors = 10;
   */
  charErrors?: number;

  /**
   * needs the RemoteSession; recall of uttered key entities (names, IDs, amounts)
   *
   * @generated from field: optional float keyterm_recall = 5;
   */
  keytermRecall?: number;

  /**
   * needs the RemoteSession
   *
   * @generated from field: optional uint32 keyterms_uttered = 6;
   */
  keytermsUttered?: number;

  /**
   * needs the RemoteSession
   *
   * @generated from field: optional uint32 keyterms_recognized = 7;
   */
  keytermsRecognized?: number;

  /**
   * needs the RemoteSession; agent-reported STT/endpointing delay, mean
   *
   * @generated from field: optional uint32 transcription_latency_ms = 8;
   */
  transcriptionLatencyMs?: number;

  constructor(data?: PartialMessage<SimulationRun_JobMetrics_STT>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.JobMetrics.STT";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_JobMetrics_STT;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics_STT;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics_STT;

  static equals(a: SimulationRun_JobMetrics_STT | PlainMessage<SimulationRun_JobMetrics_STT> | undefined, b: SimulationRun_JobMetrics_STT | PlainMessage<SimulationRun_JobMetrics_STT> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.JobMetrics.LLM
 */
export declare class SimulationRun_JobMetrics_LLM extends Message<SimulationRun_JobMetrics_LLM> {
  /**
   * needs the RemoteSession; time to first token, mean (per-turn in turns)
   *
   * @generated from field: optional uint32 ttft_ms = 1;
   */
  ttftMs?: number;

  /**
   * needs the RemoteSession; time to first sentence (the smallest speakable unit)
   *
   * @generated from field: optional uint32 ttfs_ms = 2;
   */
  ttfsMs?: number;

  /**
   * needs the RemoteSession; decode rate, mean (per-turn in turns.llm)
   *
   * @generated from field: optional float tokens_per_second = 3;
   */
  tokensPerSecond?: number;

  /**
   * audio only; needs the audio judge; judged 0-1: brief enough for voice
   *
   * @generated from field: optional float conciseness_score = 4;
   */
  concisenessScore?: number;

  constructor(data?: PartialMessage<SimulationRun_JobMetrics_LLM>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.JobMetrics.LLM";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_JobMetrics_LLM;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics_LLM;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics_LLM;

  static equals(a: SimulationRun_JobMetrics_LLM | PlainMessage<SimulationRun_JobMetrics_LLM> | undefined, b: SimulationRun_JobMetrics_LLM | PlainMessage<SimulationRun_JobMetrics_LLM> | undefined): boolean;
}

/**
 * The agent's voice. audio only.
 *
 * @generated from message livekit.SimulationRun.JobMetrics.TTS
 */
export declare class SimulationRun_JobMetrics_TTS extends Message<SimulationRun_JobMetrics_TTS> {
  /**
   * needs the RemoteSession
   *
   * @generated from field: optional uint32 ttfa_ms = 1;
   */
  ttfaMs?: number;

  /**
   * needs the RemoteSession; provider byte-level TTFB
   *
   * @generated from field: optional uint32 ttfb_ms = 2;
   */
  ttfbMs?: number;

  /**
   * needs the RemoteSession; word error rate, pooled: word_errors / words
   *
   * @generated from field: optional float wer = 3;
   */
  wer?: number;

  /**
   * needs the RemoteSession
   *
   * @generated from field: optional uint32 words = 7;
   */
  words?: number;

  /**
   * needs the RemoteSession
   *
   * @generated from field: optional uint32 word_errors = 8;
   */
  wordErrors?: number;

  /**
   * needs the RemoteSession; character error rate, pooled
   *
   * @generated from field: optional float cer = 9;
   */
  cer?: number;

  /**
   * needs the RemoteSession
   *
   * @generated from field: optional uint32 chars = 10;
   */
  chars?: number;

  /**
   * needs the RemoteSession
   *
   * @generated from field: optional uint32 char_errors = 11;
   */
  charErrors?: number;

  /**
   * speaking rate; conversational English ~110-150
   *
   * @generated from field: optional float speech_rate_wpm = 4;
   */
  speechRateWpm?: number;

  /**
   * pooling stats for speech_rate_wpm: raw heard words (not WER tokens)
   *
   * @generated from field: optional uint32 heard_words = 12;
   */
  heardWords?: number;

  /**
   * agent voiced time, sum of raw VAD segments
   *
   * @generated from field: optional uint32 speech_ms = 13;
   */
  speechMs?: number;

  /**
   * needs the audio judge; judged 0-1: prosody / expressiveness
   *
   * @generated from field: optional float naturalness_score = 5;
   */
  naturalnessScore?: number;

  /**
   * needs the audio judge; judged 0-1: key entities audibly intact
   *
   * @generated from field: optional float enunciation_score = 6;
   */
  enunciationScore?: number;

  constructor(data?: PartialMessage<SimulationRun_JobMetrics_TTS>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.JobMetrics.TTS";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_JobMetrics_TTS;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics_TTS;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics_TTS;

  static equals(a: SimulationRun_JobMetrics_TTS | PlainMessage<SimulationRun_JobMetrics_TTS> | undefined, b: SimulationRun_JobMetrics_TTS | PlainMessage<SimulationRun_JobMetrics_TTS> | undefined): boolean;
}

/**
 * Audio only.
 *
 * @generated from message livekit.SimulationRun.JobMetrics.Conversation
 */
export declare class SimulationRun_JobMetrics_Conversation extends Message<SimulationRun_JobMetrics_Conversation> {
  /**
   * 0-1: latency curve + cut-in/barge-in/missed-turn penalties
   *
   * @generated from field: optional float turn_taking_score = 1;
   */
  turnTakingScore?: number;

  /**
   * floor-transfer offset; a gap is > 0, an overlap < 0
   *
   * @generated from field: optional int32 response_latency_p50_ms = 2;
   */
  responseLatencyP50Ms?: number;

  /**
   * @generated from field: optional int32 response_latency_p95_ms = 3;
   */
  responseLatencyP95Ms?: number;

  /**
   * @generated from field: optional int32 response_latency_p99_ms = 4;
   */
  responseLatencyP99Ms?: number;

  /**
   * one turn's floor-transfer offset, cut-in if negative; job/run serve the percentiles
   *
   * @generated from field: optional int32 response_latency_ms = 16;
   */
  responseLatencyMs?: number;

  /**
   * agent audio continuing past a barge-in — per turn: on the barging persona row (presence = barge-in); job: mean
   *
   * @generated from field: optional uint32 agent_yield_latency_ms = 5;
   */
  agentYieldLatencyMs?: number;

  /**
   * agent started before the caller's turn ended; 0/1 per turn
   *
   * @generated from field: optional uint32 eot_misprediction_count = 6;
   */
  eotMispredictionCount?: number;

  /**
   * overlapping speech / total speech
   *
   * @generated from field: optional float overlap_ratio = 7;
   */
  overlapRatio?: number;

  /**
   * pooling stats for overlap_ratio
   *
   * @generated from field: optional uint32 overlap_speech_ms = 8;
   */
  overlapSpeechMs?: number;

  /**
   * @generated from field: optional uint32 total_speech_ms = 9;
   */
  totalSpeechMs?: number;

  /**
   * dead air within the conversation
   *
   * @generated from field: optional uint32 silence_total_ms = 10;
   */
  silenceTotalMs?: number;

  /**
   * gaps past the natural-pause threshold; 0/1 per turn
   *
   * @generated from field: optional uint32 awkward_silence_count = 11;
   */
  awkwardSilenceCount?: number;

  /**
   * the simulated party spoke, the agent never responded; 0/1 per turn
   *
   * @generated from field: optional uint32 unanswered_persona_turns = 12;
   */
  unansweredPersonaTurns?: number;

  /**
   * needs the RemoteSession; agent paused for a non-interruption
   *
   * @generated from field: optional uint32 false_interruption_count = 13;
   */
  falseInterruptionCount?: number;

  /**
   * needs the RemoteSession; of those, never resumed
   *
   * @generated from field: optional uint32 false_interruption_unrecovered_count = 14;
   */
  falseInterruptionUnrecoveredCount?: number;

  /**
   * needs the RemoteSession; the agent's own claim, mean
   *
   * @generated from field: optional uint32 agent_reported_e2e_latency_ms = 15;
   */
  agentReportedE2eLatencyMs?: number;

  constructor(data?: PartialMessage<SimulationRun_JobMetrics_Conversation>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.JobMetrics.Conversation";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_JobMetrics_Conversation;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics_Conversation;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics_Conversation;

  static equals(a: SimulationRun_JobMetrics_Conversation | PlainMessage<SimulationRun_JobMetrics_Conversation> | undefined, b: SimulationRun_JobMetrics_Conversation | PlainMessage<SimulationRun_JobMetrics_Conversation> | undefined): boolean;
}

/**
 * Was the call spoiled by the simulator, not the agent? Diagnostic only —
 * never folded into the scores; run aggregation excludes flagged calls
 * from the two headline scores.
 *
 * @generated from message livekit.SimulationRun.JobMetrics.Simulator
 */
export declare class SimulationRun_JobMetrics_Simulator extends Message<SimulationRun_JobMetrics_Simulator> {
  /**
   * simulator ended a still-progressing call
   *
   * @generated from field: optional bool early_termination = 1;
   */
  earlyTermination?: boolean;

  /**
   * simulator dragged on after the goal was met
   *
   * @generated from field: optional bool late_termination = 2;
   */
  lateTermination?: boolean;

  constructor(data?: PartialMessage<SimulationRun_JobMetrics_Simulator>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.JobMetrics.Simulator";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_JobMetrics_Simulator;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics_Simulator;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics_Simulator;

  static equals(a: SimulationRun_JobMetrics_Simulator | PlainMessage<SimulationRun_JobMetrics_Simulator> | undefined, b: SimulationRun_JobMetrics_Simulator | PlainMessage<SimulationRun_JobMetrics_Simulator> | undefined): boolean;
}

/**
 * Rows exist for text and audio;
 *
 * @generated from message livekit.SimulationRun.JobMetrics.Turn
 */
export declare class SimulationRun_JobMetrics_Turn extends Message<SimulationRun_JobMetrics_Turn> {
  /**
   * 1-based, conversation order
   *
   * @generated from field: uint32 index = 1;
   */
  index: number;

  /**
   * ASSISTANT — the agent under test, USER — simulator persona.
   *
   * @generated from field: livekit.agent.ChatRole role = 2;
   */
  role: ChatRole;

  /**
   * audio only; relative to t0; unset if the turn could not be aligned to the audio
   *
   * @generated from field: optional uint32 start_ms = 3;
   */
  startMs?: number;

  /**
   * audio only
   *
   * @generated from field: optional uint32 end_ms = 4;
   */
  endMs?: number;

  /**
   * Job groups hold means/pools of these; a field with no per-turn measurement stays unset here.
   *
   * transcription_latency_ms
   *
   * @generated from field: livekit.SimulationRun.JobMetrics.STT stt = 5;
   */
  stt?: SimulationRun_JobMetrics_STT;

  /**
   * ttft_ms, ttfs_ms, tokens_per_second, conciseness_score
   *
   * @generated from field: livekit.SimulationRun.JobMetrics.LLM llm = 6;
   */
  llm?: SimulationRun_JobMetrics_LLM;

  /**
   * ttfa_ms, ttfb_ms, naturalness_score, enunciation_score
   *
   * @generated from field: livekit.SimulationRun.JobMetrics.TTS tts = 7;
   */
  tts?: SimulationRun_JobMetrics_TTS;

  /**
   * response_latency_ms, agent_yield_latency_ms, agent_reported_e2e_latency_ms, 0/1 counts
   *
   * @generated from field: livekit.SimulationRun.JobMetrics.Conversation conversation = 8;
   */
  conversation?: SimulationRun_JobMetrics_Conversation;

  constructor(data?: PartialMessage<SimulationRun_JobMetrics_Turn>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.JobMetrics.Turn";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_JobMetrics_Turn;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics_Turn;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics_Turn;

  static equals(a: SimulationRun_JobMetrics_Turn | PlainMessage<SimulationRun_JobMetrics_Turn> | undefined, b: SimulationRun_JobMetrics_Turn | PlainMessage<SimulationRun_JobMetrics_Turn> | undefined): boolean;
}

/**
 * Aggregates over this run's jobs. Reuses the JobMetrics group shapes.
 *
 * @generated from message livekit.SimulationRun.RunMetrics
 */
export declare class SimulationRun_RunMetrics extends Message<SimulationRun_RunMetrics> {
  /**
   * mean over scored jobs
   *
   * @generated from field: optional float accuracy_score = 1;
   */
  accuracyScore?: number;

  /**
   * @generated from field: optional float experience_score = 2;
   */
  experienceScore?: number;

  /**
   * share of jobs whose scenario verdict passed
   *
   * @generated from field: optional float scenario_pass_rate = 3;
   */
  scenarioPassRate?: number;

  /**
   * @generated from field: livekit.SimulationRun.JobMetrics.STT stt = 4;
   */
  stt?: SimulationRun_JobMetrics_STT;

  /**
   * @generated from field: livekit.SimulationRun.JobMetrics.LLM llm = 5;
   */
  llm?: SimulationRun_JobMetrics_LLM;

  /**
   * @generated from field: livekit.SimulationRun.JobMetrics.TTS tts = 6;
   */
  tts?: SimulationRun_JobMetrics_TTS;

  /**
   * @generated from field: livekit.SimulationRun.JobMetrics.Conversation conversation = 7;
   */
  conversation?: SimulationRun_JobMetrics_Conversation;

  /**
   * @generated from field: uint32 jobs_total = 9;
   */
  jobsTotal: number;

  /**
   * composites cover jobs_measured - jobs_simulator_fault
   *
   * @generated from field: uint32 jobs_measured = 10;
   */
  jobsMeasured: number;

  /**
   * spoiled by the simulator: flagged, not scored
   *
   * @generated from field: uint32 jobs_simulator_fault = 11;
   */
  jobsSimulatorFault: number;

  constructor(data?: PartialMessage<SimulationRun_RunMetrics>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.RunMetrics";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_RunMetrics;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_RunMetrics;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_RunMetrics;

  static equals(a: SimulationRun_RunMetrics | PlainMessage<SimulationRun_RunMetrics> | undefined, b: SimulationRun_RunMetrics | PlainMessage<SimulationRun_RunMetrics> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.Create
 */
export declare class SimulationRun_Create extends Message<SimulationRun_Create> {
  constructor(data?: PartialMessage<SimulationRun_Create>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.Create";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Create;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Create;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Create;

  static equals(a: SimulationRun_Create | PlainMessage<SimulationRun_Create> | undefined, b: SimulationRun_Create | PlainMessage<SimulationRun_Create> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.Create.Request
 */
export declare class SimulationRun_Create_Request extends Message<SimulationRun_Create_Request> {
  /**
   * @generated from field: string project_id = 1;
   */
  projectId: string;

  /**
   * @generated from field: string agent_name = 2;
   */
  agentName: string;

  /**
   * @generated from field: int32 num_simulations = 4;
   */
  numSimulations: number;

  /**
   * @generated from field: string region = 6;
   */
  region: string;

  /**
   * When set, run these scenarios (loaded from a scenarios.yaml).
   * When unset, generate num_simulations scenarios from the uploaded agent source.
   *
   * @generated from field: optional livekit.ScenarioGroup scenario_group = 7;
   */
  scenarioGroup?: ScenarioGroup;

  /**
   * Maximum simulate jobs running in parallel for this run. Clamped to the
   * project's concurrency quota; 0/unset uses the server default.
   *
   * @generated from field: optional int32 concurrency = 8;
   */
  concurrency?: number;

  /**
   * Conversation mode for every job in this run; unspecified = TEXT.
   *
   * @generated from field: livekit.SimulationMode mode = 9;
   */
  mode: SimulationMode;

  constructor(data?: PartialMessage<SimulationRun_Create_Request>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.Create.Request";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Create_Request;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Create_Request;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Create_Request;

  static equals(a: SimulationRun_Create_Request | PlainMessage<SimulationRun_Create_Request> | undefined, b: SimulationRun_Create_Request | PlainMessage<SimulationRun_Create_Request> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.Create.Response
 */
export declare class SimulationRun_Create_Response extends Message<SimulationRun_Create_Response> {
  /**
   * @generated from field: string simulation_run_id = 1;
   */
  simulationRunId: string;

  /**
   * @generated from field: livekit.PresignedPostRequest presigned_post_request = 2;
   */
  presignedPostRequest?: PresignedPostRequest;

  constructor(data?: PartialMessage<SimulationRun_Create_Response>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.Create.Response";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Create_Response;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Create_Response;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Create_Response;

  static equals(a: SimulationRun_Create_Response | PlainMessage<SimulationRun_Create_Response> | undefined, b: SimulationRun_Create_Response | PlainMessage<SimulationRun_Create_Response> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.ConfirmSourceUpload
 */
export declare class SimulationRun_ConfirmSourceUpload extends Message<SimulationRun_ConfirmSourceUpload> {
  constructor(data?: PartialMessage<SimulationRun_ConfirmSourceUpload>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.ConfirmSourceUpload";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_ConfirmSourceUpload;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_ConfirmSourceUpload;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_ConfirmSourceUpload;

  static equals(a: SimulationRun_ConfirmSourceUpload | PlainMessage<SimulationRun_ConfirmSourceUpload> | undefined, b: SimulationRun_ConfirmSourceUpload | PlainMessage<SimulationRun_ConfirmSourceUpload> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.ConfirmSourceUpload.Request
 */
export declare class SimulationRun_ConfirmSourceUpload_Request extends Message<SimulationRun_ConfirmSourceUpload_Request> {
  /**
   * @generated from field: string project_id = 1;
   */
  projectId: string;

  /**
   * @generated from field: string simulation_run_id = 2;
   */
  simulationRunId: string;

  /**
   * @generated from field: string code_entrypoint = 3;
   */
  codeEntrypoint: string;

  constructor(data?: PartialMessage<SimulationRun_ConfirmSourceUpload_Request>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.ConfirmSourceUpload.Request";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_ConfirmSourceUpload_Request;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_ConfirmSourceUpload_Request;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_ConfirmSourceUpload_Request;

  static equals(a: SimulationRun_ConfirmSourceUpload_Request | PlainMessage<SimulationRun_ConfirmSourceUpload_Request> | undefined, b: SimulationRun_ConfirmSourceUpload_Request | PlainMessage<SimulationRun_ConfirmSourceUpload_Request> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.ConfirmSourceUpload.Response
 */
export declare class SimulationRun_ConfirmSourceUpload_Response extends Message<SimulationRun_ConfirmSourceUpload_Response> {
  constructor(data?: PartialMessage<SimulationRun_ConfirmSourceUpload_Response>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.ConfirmSourceUpload.Response";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_ConfirmSourceUpload_Response;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_ConfirmSourceUpload_Response;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_ConfirmSourceUpload_Response;

  static equals(a: SimulationRun_ConfirmSourceUpload_Response | PlainMessage<SimulationRun_ConfirmSourceUpload_Response> | undefined, b: SimulationRun_ConfirmSourceUpload_Response | PlainMessage<SimulationRun_ConfirmSourceUpload_Response> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.Get
 */
export declare class SimulationRun_Get extends Message<SimulationRun_Get> {
  constructor(data?: PartialMessage<SimulationRun_Get>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.Get";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Get;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Get;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Get;

  static equals(a: SimulationRun_Get | PlainMessage<SimulationRun_Get> | undefined, b: SimulationRun_Get | PlainMessage<SimulationRun_Get> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.Get.Request
 */
export declare class SimulationRun_Get_Request extends Message<SimulationRun_Get_Request> {
  /**
   * @generated from field: string project_id = 1;
   */
  projectId: string;

  /**
   * @generated from field: string simulation_run_id = 2;
   */
  simulationRunId: string;

  constructor(data?: PartialMessage<SimulationRun_Get_Request>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.Get.Request";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Get_Request;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Get_Request;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Get_Request;

  static equals(a: SimulationRun_Get_Request | PlainMessage<SimulationRun_Get_Request> | undefined, b: SimulationRun_Get_Request | PlainMessage<SimulationRun_Get_Request> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.Get.Response
 */
export declare class SimulationRun_Get_Response extends Message<SimulationRun_Get_Response> {
  /**
   * @generated from field: livekit.SimulationRun run = 1;
   */
  run?: SimulationRun;

  constructor(data?: PartialMessage<SimulationRun_Get_Response>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.Get.Response";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Get_Response;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Get_Response;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Get_Response;

  static equals(a: SimulationRun_Get_Response | PlainMessage<SimulationRun_Get_Response> | undefined, b: SimulationRun_Get_Response | PlainMessage<SimulationRun_Get_Response> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.List
 */
export declare class SimulationRun_List extends Message<SimulationRun_List> {
  constructor(data?: PartialMessage<SimulationRun_List>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.List";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_List;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_List;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_List;

  static equals(a: SimulationRun_List | PlainMessage<SimulationRun_List> | undefined, b: SimulationRun_List | PlainMessage<SimulationRun_List> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.List.Request
 */
export declare class SimulationRun_List_Request extends Message<SimulationRun_List_Request> {
  /**
   * @generated from field: string project_id = 1;
   */
  projectId: string;

  /**
   * @generated from field: optional livekit.SimulationRun.Status status = 2;
   */
  status?: SimulationRun_Status;

  /**
   * @generated from field: optional livekit.TokenPagination page_token = 3;
   */
  pageToken?: TokenPagination;

  constructor(data?: PartialMessage<SimulationRun_List_Request>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.List.Request";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_List_Request;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_List_Request;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_List_Request;

  static equals(a: SimulationRun_List_Request | PlainMessage<SimulationRun_List_Request> | undefined, b: SimulationRun_List_Request | PlainMessage<SimulationRun_List_Request> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.List.Response
 */
export declare class SimulationRun_List_Response extends Message<SimulationRun_List_Response> {
  /**
   * @generated from field: repeated livekit.SimulationRun runs = 1;
   */
  runs: SimulationRun[];

  /**
   * @generated from field: livekit.TokenPagination next_page_token = 2;
   */
  nextPageToken?: TokenPagination;

  constructor(data?: PartialMessage<SimulationRun_List_Response>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.List.Response";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_List_Response;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_List_Response;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_List_Response;

  static equals(a: SimulationRun_List_Response | PlainMessage<SimulationRun_List_Response> | undefined, b: SimulationRun_List_Response | PlainMessage<SimulationRun_List_Response> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.Cancel
 */
export declare class SimulationRun_Cancel extends Message<SimulationRun_Cancel> {
  constructor(data?: PartialMessage<SimulationRun_Cancel>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.Cancel";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Cancel;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Cancel;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Cancel;

  static equals(a: SimulationRun_Cancel | PlainMessage<SimulationRun_Cancel> | undefined, b: SimulationRun_Cancel | PlainMessage<SimulationRun_Cancel> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.Cancel.Request
 */
export declare class SimulationRun_Cancel_Request extends Message<SimulationRun_Cancel_Request> {
  /**
   * @generated from field: string project_id = 1;
   */
  projectId: string;

  /**
   * @generated from field: string simulation_run_id = 2;
   */
  simulationRunId: string;

  constructor(data?: PartialMessage<SimulationRun_Cancel_Request>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.Cancel.Request";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Cancel_Request;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Cancel_Request;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Cancel_Request;

  static equals(a: SimulationRun_Cancel_Request | PlainMessage<SimulationRun_Cancel_Request> | undefined, b: SimulationRun_Cancel_Request | PlainMessage<SimulationRun_Cancel_Request> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.Cancel.Response
 */
export declare class SimulationRun_Cancel_Response extends Message<SimulationRun_Cancel_Response> {
  constructor(data?: PartialMessage<SimulationRun_Cancel_Response>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.Cancel.Response";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Cancel_Response;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Cancel_Response;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Cancel_Response;

  static equals(a: SimulationRun_Cancel_Response | PlainMessage<SimulationRun_Cancel_Response> | undefined, b: SimulationRun_Cancel_Response | PlainMessage<SimulationRun_Cancel_Response> | undefined): boolean;
}

/**
 * @generated from message livekit.SimulationRun.Usage
 */
export declare class SimulationRun_Usage extends Message<SimulationRun_Usage> {
  /**
   * @generated from field: int32 text_turns_count = 1;
   */
  textTurnsCount: number;

  /**
   * @generated from field: int32 audio_turns_count = 2;
   */
  audioTurnsCount: number;

  constructor(data?: PartialMessage<SimulationRun_Usage>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationRun.Usage";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Usage;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Usage;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Usage;

  static equals(a: SimulationRun_Usage | PlainMessage<SimulationRun_Usage> | undefined, b: SimulationRun_Usage | PlainMessage<SimulationRun_Usage> | undefined): boolean;
}

/**
 * A single scenario, mirroring one entry in a scenarios.yaml file. Scenarios
 * are no longer stored server-side; the yaml file is the source of truth.
 *
 * @generated from message livekit.Scenario
 */
export declare class Scenario extends Message<Scenario> {
  /**
   * @generated from field: string label = 1;
   */
  label: string;

  /**
   * @generated from field: string instructions = 2;
   */
  instructions: string;

  /**
   * @generated from field: string agent_expectations = 3;
   */
  agentExpectations: string;

  /**
   * Set as participant attributes on the simulation participant's access token.
   *
   * @generated from field: map<string, string> tags = 4;
   */
  tags: { [key: string]: string };

  /**
   * Arbitrary JSON-encoded object, surfaced to the agent under test as
   * SimulationContext userdata (e.g. inputs and benchmark target state).
   *
   * @generated from field: string userdata = 5;
   */
  userdata: string;

  constructor(data?: PartialMessage<Scenario>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.Scenario";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Scenario;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Scenario;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Scenario;

  static equals(a: Scenario | PlainMessage<Scenario> | undefined, b: Scenario | PlainMessage<Scenario> | undefined): boolean;
}

/**
 * @generated from message livekit.Scenario.CreateFromSession
 */
export declare class Scenario_CreateFromSession extends Message<Scenario_CreateFromSession> {
  constructor(data?: PartialMessage<Scenario_CreateFromSession>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.Scenario.CreateFromSession";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Scenario_CreateFromSession;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Scenario_CreateFromSession;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Scenario_CreateFromSession;

  static equals(a: Scenario_CreateFromSession | PlainMessage<Scenario_CreateFromSession> | undefined, b: Scenario_CreateFromSession | PlainMessage<Scenario_CreateFromSession> | undefined): boolean;
}

/**
 * @generated from message livekit.Scenario.CreateFromSession.Request
 */
export declare class Scenario_CreateFromSession_Request extends Message<Scenario_CreateFromSession_Request> {
  /**
   * @generated from field: string project_id = 1;
   */
  projectId: string;

  /**
   * @generated from field: string room_id = 2;
   */
  roomId: string;

  /**
   * @generated from field: string region = 3;
   */
  region: string;

  constructor(data?: PartialMessage<Scenario_CreateFromSession_Request>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.Scenario.CreateFromSession.Request";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Scenario_CreateFromSession_Request;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Scenario_CreateFromSession_Request;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Scenario_CreateFromSession_Request;

  static equals(a: Scenario_CreateFromSession_Request | PlainMessage<Scenario_CreateFromSession_Request> | undefined, b: Scenario_CreateFromSession_Request | PlainMessage<Scenario_CreateFromSession_Request> | undefined): boolean;
}

/**
 * @generated from message livekit.Scenario.CreateFromSession.Response
 */
export declare class Scenario_CreateFromSession_Response extends Message<Scenario_CreateFromSession_Response> {
  /**
   * @generated from field: livekit.Scenario scenario = 1;
   */
  scenario?: Scenario;

  constructor(data?: PartialMessage<Scenario_CreateFromSession_Response>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.Scenario.CreateFromSession.Response";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Scenario_CreateFromSession_Response;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Scenario_CreateFromSession_Response;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Scenario_CreateFromSession_Response;

  static equals(a: Scenario_CreateFromSession_Response | PlainMessage<Scenario_CreateFromSession_Response> | undefined, b: Scenario_CreateFromSession_Response | PlainMessage<Scenario_CreateFromSession_Response> | undefined): boolean;
}

/**
 * A named group of scenarios, mirroring a whole scenarios.yaml file.
 *
 * @generated from message livekit.ScenarioGroup
 */
export declare class ScenarioGroup extends Message<ScenarioGroup> {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: repeated livekit.Scenario scenarios = 2;
   */
  scenarios: Scenario[];

  constructor(data?: PartialMessage<ScenarioGroup>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.ScenarioGroup";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ScenarioGroup;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ScenarioGroup;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ScenarioGroup;

  static equals(a: ScenarioGroup | PlainMessage<ScenarioGroup> | undefined, b: ScenarioGroup | PlainMessage<ScenarioGroup> | undefined): boolean;
}

/**
 * Carried (protojson-encoded) in the simulation room's metadata so the agent
 * under test can read the scenario + run identity synchronously at connect.
 *
 * @generated from message livekit.SimulationDispatch
 */
export declare class SimulationDispatch extends Message<SimulationDispatch> {
  /**
   * @generated from field: string simulation_run_id = 1;
   */
  simulationRunId: string;

  /**
   * @generated from field: string job_id = 2;
   */
  jobId: string;

  /**
   * @generated from field: livekit.Scenario scenario = 3;
   */
  scenario?: Scenario;

  /**
   * @generated from field: livekit.SimulationMode mode = 4;
   */
  mode: SimulationMode;

  constructor(data?: PartialMessage<SimulationDispatch>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SimulationDispatch";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationDispatch;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationDispatch;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationDispatch;

  static equals(a: SimulationDispatch | PlainMessage<SimulationDispatch> | undefined, b: SimulationDispatch | PlainMessage<SimulationDispatch> | undefined): boolean;
}

