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

import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage, Timestamp } from "@bufbuild/protobuf";
import { Message, proto3 } from "@bufbuild/protobuf";

/**
 * @generated from enum livekit.agent.ChatRole
 */
export declare enum ChatRole {
  /**
   * @generated from enum value: DEVELOPER = 0;
   */
  DEVELOPER = 0,

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

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

  /**
   * @generated from enum value: ASSISTANT = 3;
   */
  ASSISTANT = 3,
}

/**
 * @generated from message livekit.agent.MetricsReport
 */
export declare class MetricsReport extends Message<MetricsReport> {
  /**
   * @generated from field: google.protobuf.Timestamp started_speaking_at = 1;
   */
  startedSpeakingAt?: Timestamp;

  /**
   * @generated from field: google.protobuf.Timestamp stopped_speaking_at = 2;
   */
  stoppedSpeakingAt?: Timestamp;

  /**
   * @generated from field: optional double transcription_delay = 3;
   */
  transcriptionDelay?: number;

  /**
   * @generated from field: optional double end_of_turn_delay = 4;
   */
  endOfTurnDelay?: number;

  /**
   * @generated from field: optional double on_user_turn_completed_delay = 5;
   */
  onUserTurnCompletedDelay?: number;

  /**
   * @generated from field: optional double llm_node_ttft = 6;
   */
  llmNodeTtft?: number;

  /**
   * @generated from field: optional double tts_node_ttfb = 7;
   */
  ttsNodeTtfb?: number;

  /**
   * @generated from field: optional double e2e_latency = 8;
   */
  e2eLatency?: number;

  constructor(data?: PartialMessage<MetricsReport>);

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

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

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

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

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

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

  /**
   * @generated from field: livekit.agent.ChatRole role = 2;
   */
  role: ChatRole;

  /**
   * @generated from field: repeated livekit.agent.ChatMessage.ChatContent content = 3;
   */
  content: ChatMessage_ChatContent[];

  /**
   * @generated from field: bool interrupted = 4;
   */
  interrupted: boolean;

  /**
   * @generated from field: optional double transcript_confidence = 5;
   */
  transcriptConfidence?: number;

  /**
   * @generated from field: map<string, string> extra = 6;
   */
  extra: { [key: string]: string };

  /**
   * @generated from field: livekit.agent.MetricsReport metrics = 7;
   */
  metrics?: MetricsReport;

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

  constructor(data?: PartialMessage<ChatMessage>);

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

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

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

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

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

/**
 * @generated from message livekit.agent.ChatMessage.ChatContent
 */
export declare class ChatMessage_ChatContent extends Message<ChatMessage_ChatContent> {
  /**
   * @generated from oneof livekit.agent.ChatMessage.ChatContent.payload
   */
  payload: {
    /**
     * @generated from field: string text = 1;
     */
    value: string;
    case: "text";
  } | { case: undefined; value?: undefined };

  constructor(data?: PartialMessage<ChatMessage_ChatContent>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.agent.ChatMessage.ChatContent";
  static readonly fields: FieldList;

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

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

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

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

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

  /**
   * @generated from field: string call_id = 2;
   */
  callId: string;

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

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

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

  constructor(data?: PartialMessage<FunctionCall>);

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

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

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

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

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

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

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

  /**
   * @generated from field: string call_id = 3;
   */
  callId: string;

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

  /**
   * @generated from field: bool is_error = 5;
   */
  isError: boolean;

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

  constructor(data?: PartialMessage<FunctionCallOutput>);

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

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

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

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

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

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

  /**
   * @generated from field: optional string old_agent_id = 2;
   */
  oldAgentId?: string;

  /**
   * @generated from field: string new_agent_id = 3;
   */
  newAgentId: string;

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

  constructor(data?: PartialMessage<AgentHandoff>);

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

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

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

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

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

/**
 * @generated from message livekit.agent.ChatContext
 */
export declare class ChatContext extends Message<ChatContext> {
  /**
   * @generated from field: repeated livekit.agent.ChatContext.ChatItem items = 1;
   */
  items: ChatContext_ChatItem[];

  constructor(data?: PartialMessage<ChatContext>);

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

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

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

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

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

/**
 * @generated from message livekit.agent.ChatContext.ChatItem
 */
export declare class ChatContext_ChatItem extends Message<ChatContext_ChatItem> {
  /**
   * @generated from oneof livekit.agent.ChatContext.ChatItem.item
   */
  item: {
    /**
     * @generated from field: livekit.agent.ChatMessage message = 1;
     */
    value: ChatMessage;
    case: "message";
  } | {
    /**
     * @generated from field: livekit.agent.FunctionCall function_call = 2;
     */
    value: FunctionCall;
    case: "functionCall";
  } | {
    /**
     * @generated from field: livekit.agent.FunctionCallOutput function_call_output = 3;
     */
    value: FunctionCallOutput;
    case: "functionCallOutput";
  } | {
    /**
     * @generated from field: livekit.agent.AgentHandoff agent_handoff = 4;
     */
    value: AgentHandoff;
    case: "agentHandoff";
  } | { case: undefined; value?: undefined };

  constructor(data?: PartialMessage<ChatContext_ChatItem>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.agent.ChatContext.ChatItem";
  static readonly fields: FieldList;

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

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

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

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

