Skip to content

Conversation

davidmotson
Copy link
Collaborator

@davidmotson davidmotson commented Oct 16, 2025

  • Added AudioTranscription setting object
  • Added Transcription parsing and public API
  • Added TrascriptionHandler
  • Added Java API

Copy link
Contributor

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

Copy link
Contributor

github-actions bot commented Oct 16, 2025

Javadoc Changes:
--- /home/runner/diff/original/firebase-kotlindoc/android/client/firebase-ai/_toc.yaml	2025-10-17 18:09:25.884865158 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/client/firebase-ai/_toc.yaml	2025-10-17 18:06:12.241682011 +0000
@@ -52,6 +52,8 @@
   - title: "Classes"
 
     section:
+    - title: "AudioTranscriptionConfig"
+      path: "/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html"
     - title: "BlockReason"
       path: "/docs/reference/android/com/google/firebase/ai/type/BlockReason.html"
     - title: "Candidate"
@@ -232,6 +234,8 @@
       path: "/docs/reference/android/com/google/firebase/ai/type/Tool.html"
     - title: "ToolConfig"
       path: "/docs/reference/android/com/google/firebase/ai/type/ToolConfig.html"
+    - title: "Transcription"
+      path: "/docs/reference/android/com/google/firebase/ai/type/Transcription.html"
     - title: "UrlContext"
       path: "/docs/reference/android/com/google/firebase/ai/type/UrlContext.html"
     - title: "UrlContextMetadata"
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/java/LiveSessionFutures.html	2025-10-17 18:09:25.886981042 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/java/LiveSessionFutures.html	2025-10-17 18:06:12.244953015 +0000
@@ -157,6 +157,13 @@
           <tr>
             <td><code>abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</code></td>
             <td>
+              <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;Function2&lt;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;transcriptHandler<br>)</code></div>
+              <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code>.</p>
+            </td>
+          </tr>
+          <tr>
+            <td><code>abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</code></td>
+            <td>
               <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;Function1&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>,&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>&gt;&nbsp;functionCallHandler,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;enableInterruptions<br>)</code></div>
               <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
             </td>
@@ -164,6 +171,20 @@
           <tr>
             <td><code>abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</code></td>
             <td>
+              <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;Function2&lt;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;transcriptHandler,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;enableInterruptions<br>)</code></div>
+              <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+            </td>
+          </tr>
+          <tr>
+            <td><code>abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</code></td>
+            <td>
+              <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;Function1&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>,&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>&gt;&nbsp;functionCallHandler,<br>&nbsp;&nbsp;&nbsp;&nbsp;Function2&lt;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;transcriptHandler,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;enableInterruptions<br>)</code></div>
+              <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+            </td>
+          </tr>
+          <tr>
+            <td><code>abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</code></td>
+            <td>
               <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a>()</code></div>
               <p>Stops the audio conversation with the Gemini Server.</p>
             </td>
@@ -301,7 +322,7 @@
         <h3 class="api-name" id="send(com.google.firebase.ai.type.Content)">send</h3>
         <pre class="api-signature no-pretty-print">public&nbsp;abstract&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#send(com.google.firebase.ai.type.Content)">send</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/Content.html">Content</a>&nbsp;content)</pre>
         <p>Sends <code><a href="/docs/reference/android/com/google/firebase/ai/type/Content.html">data</a></code> to the model.</p>
-        <p>Calling this after <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code> will play the response audio immediately.</p>
+        <p>Calling this after <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code> will play the response audio immediately.</p>
         <div class="devsite-table-wrapper">
           <table class="responsive">
             <colgroup>
@@ -328,7 +349,7 @@
         <h3 class="api-name" id="send(kotlin.String)">send</h3>
         <pre class="api-signature no-pretty-print">public&nbsp;abstract&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#send(kotlin.String)">send</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/kotlin/java/lang/String.html">String</a>&nbsp;text)</pre>
         <p>Sends text to the model.</p>
-        <p>Calling this after <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code> will play the response audio immediately.</p>
+        <p>Calling this after <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code> will play the response audio immediately.</p>
         <div class="devsite-table-wrapper">
           <table class="responsive">
             <colgroup>
@@ -408,7 +429,7 @@
         <pre class="api-signature no-pretty-print">public&nbsp;abstract&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;<span><del><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#sendMediaStream(kotlin.collections.List)">sendMediaStream</a></del></span>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/kotlin/java/util/List.html">List</a>&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/MediaData.html">MediaData</a>&gt;&nbsp;mediaChunks)</pre>
         <aside class="caution"><strong>This method is deprecated.</strong><br>Use sendAudioRealtime, sendVideoRealtime, or sendTextRealtime instead</aside>
         <p>Streams client data to the model.</p>
-        <p>Calling this after <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code> will play the response audio immediately.</p>
+        <p>Calling this after <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code> will play the response audio immediately.</p>
         <div class="devsite-table-wrapper">
           <table class="responsive">
             <colgroup>
@@ -541,6 +562,32 @@
           </table>
         </div>
       </div>
+      <div class="api-item"><a name="startAudioConversation-kotlin.Function2-"></a><a name="startaudioconversation"></a>
+        <h3 class="api-name" id="startAudioConversation(kotlin.Function2)">startAudioConversation</h3>
+        <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br>public&nbsp;abstract&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;Function2&lt;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;transcriptHandler<br>)</pre>
+        <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code>.</p>
+        <div class="devsite-table-wrapper">
+          <table class="responsive">
+            <colgroup>
+              <col width="40%">
+              <col>
+            </colgroup>
+            <thead>
+              <tr>
+                <th colspan="100%">Parameters</th>
+              </tr>
+            </thead>
+            <tbody class="list">
+              <tr>
+                <td><code>Function2&lt;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;transcriptHandler</code></td>
+                <td>
+                  <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription</p>
+                </td>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+      </div>
       <div class="api-item"><a name="startAudioConversation(kotlin.Function1, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function1-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
         <h3 class="api-name" id="startAudioConversation(kotlin.Function1,kotlin.Boolean)">startAudioConversation</h3>
         <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br>public&nbsp;abstract&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;Function1&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>,&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>&gt;&nbsp;functionCallHandler,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;enableInterruptions<br>)</pre>
@@ -574,11 +621,83 @@
           </table>
         </div>
       </div>
+      <div class="api-item"><a name="startAudioConversation(kotlin.Function2, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function2-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
+        <h3 class="api-name" id="startAudioConversation(kotlin.Function2,kotlin.Boolean)">startAudioConversation</h3>
+        <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br>public&nbsp;abstract&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;Function2&lt;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;transcriptHandler,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;enableInterruptions<br>)</pre>
+        <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+        <div class="devsite-table-wrapper">
+          <table class="responsive">
+            <colgroup>
+              <col width="40%">
+              <col>
+            </colgroup>
+            <thead>
+              <tr>
+                <th colspan="100%">Parameters</th>
+              </tr>
+            </thead>
+            <tbody class="list">
+              <tr>
+                <td><code>Function2&lt;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;transcriptHandler</code></td>
+                <td>
+                  <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription</p>
+                </td>
+              </tr>
+              <tr>
+                <td><code>boolean&nbsp;enableInterruptions</code></td>
+                <td>
+                  <p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p>
+                  <p><b>WARNING</b>: The user interruption feature relies on device-specific support, and may not be consistently available.</p>
+                </td>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+      </div>
+      <div class="api-item"><a name="startAudioConversation(kotlin.Function1, kotlin.Function2, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function1-kotlin.Function2-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
+        <h3 class="api-name" id="startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</h3>
+        <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br>public&nbsp;abstract&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;Function1&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>,&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>&gt;&nbsp;functionCallHandler,<br>&nbsp;&nbsp;&nbsp;&nbsp;Function2&lt;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;transcriptHandler,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;enableInterruptions<br>)</pre>
+        <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+        <div class="devsite-table-wrapper">
+          <table class="responsive">
+            <colgroup>
+              <col width="40%">
+              <col>
+            </colgroup>
+            <thead>
+              <tr>
+                <th colspan="100%">Parameters</th>
+              </tr>
+            </thead>
+            <tbody class="list">
+              <tr>
+                <td><code>Function1&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>,&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>&gt;&nbsp;functionCallHandler</code></td>
+                <td>
+                  <p>A callback function that is invoked whenever the model receives a function call.</p>
+                </td>
+              </tr>
+              <tr>
+                <td><code>Function2&lt;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;transcriptHandler</code></td>
+                <td>
+                  <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription</p>
+                </td>
+              </tr>
+              <tr>
+                <td><code>boolean&nbsp;enableInterruptions</code></td>
+                <td>
+                  <p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p>
+                  <p><b>WARNING</b>: The user interruption feature relies on device-specific support, and may not be consistently available.</p>
+                </td>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+      </div>
       <div class="api-item"><a name="stopAudioConversation--"></a><a name="stopaudioconversation"></a>
         <h3 class="api-name" id="stopAudioConversation()">stopAudioConversation</h3>
         <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br>public&nbsp;abstract&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a>()</pre>
         <p>Stops the audio conversation with the Gemini Server.</p>
-        <p>This only needs to be called after a previous call to <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code>.</p>
+        <p>This only needs to be called after a previous call to <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code>.</p>
         <p>If there is no audio conversation currently active, this function does nothing.</p>
       </div>
       <div class="api-item"><a name="stopReceiving--"></a><a name="stopreceiving"></a>
@@ -586,7 +705,7 @@
         <pre class="api-signature no-pretty-print">public&nbsp;abstract&nbsp;void&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopReceiving()">stopReceiving</a>()</pre>
         <p>Stops receiving from the model.</p>
         <p>If this function is called during an ongoing audio conversation, the model's response will not be received, and no audio will be played; the live session object will no longer receive data from the server.</p>
-        <p>To resume receiving data, you must either handle it directly using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#receive()">receive</a></code>, or indirectly by using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code>.</p>
+        <p>To resume receiving data, you must either handle it directly using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#receive()">receive</a></code>, or indirectly by using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code>.</p>
         <div class="devsite-table-wrapper">
           <table class="responsive">
             <colgroup>
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html	1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html	2025-10-17 18:06:12.271298038 +0000
@@ -0,0 +1,45 @@
+<html devsite="true">
+  <head>
+    <title>AudioTranscriptionConfig</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/android/_reference-head-tags.html" %}
+  </head>
+  <body>
+    <div id="metadata-info-block"></div>
+    <h1>AudioTranscriptionConfig</h1>
+    <p>
+      <pre>public final class <a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a></pre>
+    </p>
+    <hr>
+    <p>The audio transcription configuration. Its presence enables audio transcription</p>
+    <h2>Summary</h2>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public constructors</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html#AudioTranscriptionConfig()">AudioTranscriptionConfig</a>()</code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="list">
+      <h2>Public constructors</h2>
+      <div class="api-item"><a name="AudioTranscriptionConfig--"></a><a name="audiotranscriptionconfig"></a>
+        <h3 class="api-name" id="AudioTranscriptionConfig()">AudioTranscriptionConfig</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html#AudioTranscriptionConfig()">AudioTranscriptionConfig</a>()</pre>
+      </div>
+    </div>
+  </body>
+</html>
+
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html	2025-10-17 18:09:25.930901772 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html	2025-10-17 18:06:12.271559168 +0000
@@ -34,6 +34,13 @@
             </td>
           </tr>
           <tr>
+            <td><code>final <a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#inputAudioTranscription()">inputAudioTranscription</a></code></div>
+              <p>see <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.html#inputAudioTranscription()">LiveGenerationConfig.inputAudioTranscription</a></code></p>
+            </td>
+          </tr>
+          <tr>
             <td><code>final <a href="https://developer.android.com/reference/kotlin/java/lang/Integer.html">Integer</a></code></td>
             <td>
               <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#maxOutputTokens()">maxOutputTokens</a></code></div>
@@ -41,6 +48,13 @@
             </td>
           </tr>
           <tr>
+            <td><code>final <a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#outputAudioTranscription()">outputAudioTranscription</a></code></div>
+              <p>see <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.html#outputAudioTranscription()">LiveGenerationConfig.outputAudioTranscription</a></code></p>
+            </td>
+          </tr>
+          <tr>
             <td><code>final <a href="https://developer.android.com/reference/kotlin/java/lang/Float.html">Float</a></code></td>
             <td>
               <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#presencePenalty()">presencePenalty</a></code></div>
@@ -133,12 +147,24 @@
           <tr>
             <td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
             <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setInputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setInputAudioTranscription</a>(<a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>&nbsp;config)</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
+            <td>
               <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setMaxOutputTokens(kotlin.Int)">setMaxOutputTokens</a>(<a href="https://developer.android.com/reference/kotlin/java/lang/Integer.html">Integer</a>&nbsp;maxOutputTokens)</code></div>
             </td>
           </tr>
           <tr>
             <td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
             <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setOutputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setOutputAudioTranscription</a>(<a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>&nbsp;config)</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
+            <td>
               <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setPresencePenalty(kotlin.Float)">setPresencePenalty</a>(<a href="https://developer.android.com/reference/kotlin/java/lang/Float.html">Float</a>&nbsp;presencePenalty)</code></div>
             </td>
           </tr>
@@ -182,11 +208,21 @@
         <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;<a href="https://developer.android.com/reference/kotlin/java/lang/Float.html">Float</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#frequencyPenalty()">frequencyPenalty</a></pre>
         <p>See <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.html#frequencyPenalty()">LiveGenerationConfig.frequencyPenalty</a></code></p>
       </div>
+      <div class="api-item"><a name="getInputAudioTranscription()"></a><a name="setInputAudioTranscription()"></a><a name="getInputAudioTranscription--"></a><a name="setInputAudioTranscription--"></a>
+        <h3 class="api-name" id="inputAudioTranscription()">inputAudioTranscription</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#inputAudioTranscription()">inputAudioTranscription</a></pre>
+        <p>see <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.html#inputAudioTranscription()">LiveGenerationConfig.inputAudioTranscription</a></code></p>
+      </div>
       <div class="api-item"><a name="getMaxOutputTokens()"></a><a name="setMaxOutputTokens()"></a><a name="getMaxOutputTokens--"></a><a name="setMaxOutputTokens--"></a>
         <h3 class="api-name" id="maxOutputTokens()">maxOutputTokens</h3>
         <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;<a href="https://developer.android.com/reference/kotlin/java/lang/Integer.html">Integer</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#maxOutputTokens()">maxOutputTokens</a></pre>
         <p>See <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.html#maxOutputTokens()">LiveGenerationConfig.maxOutputTokens</a></code>.</p>
       </div>
+      <div class="api-item"><a name="getOutputAudioTranscription()"></a><a name="setOutputAudioTranscription()"></a><a name="getOutputAudioTranscription--"></a><a name="setOutputAudioTranscription--"></a>
+        <h3 class="api-name" id="outputAudioTranscription()">outputAudioTranscription</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#outputAudioTranscription()">outputAudioTranscription</a></pre>
+        <p>see <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.html#outputAudioTranscription()">LiveGenerationConfig.outputAudioTranscription</a></code></p>
+      </div>
       <div class="api-item"><a name="getPresencePenalty()"></a><a name="setPresencePenalty()"></a><a name="getPresencePenalty--"></a><a name="setPresencePenalty--"></a>
         <h3 class="api-name" id="presencePenalty()">presencePenalty</h3>
         <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;<a href="https://developer.android.com/reference/kotlin/java/lang/Float.html">Float</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#presencePenalty()">presencePenalty</a></pre>
@@ -236,10 +272,18 @@
         <h3 class="api-name" id="setFrequencyPenalty(kotlin.Float)">setFrequencyPenalty</h3>
         <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setFrequencyPenalty(kotlin.Float)">setFrequencyPenalty</a>(<a href="https://developer.android.com/reference/kotlin/java/lang/Float.html">Float</a>&nbsp;frequencyPenalty)</pre>
       </div>
+      <div class="api-item"><a name="setInputAudioTranscription-com.google.firebase.ai.type.AudioTranscriptionConfig-"></a><a name="setinputaudiotranscription"></a>
+        <h3 class="api-name" id="setInputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setInputAudioTranscription</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setInputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setInputAudioTranscription</a>(<a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>&nbsp;config)</pre>
+      </div>
       <div class="api-item"><a name="setMaxOutputTokens-kotlin.Int-"></a><a name="setmaxoutputtokens"></a>
         <h3 class="api-name" id="setMaxOutputTokens(kotlin.Int)">setMaxOutputTokens</h3>
         <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setMaxOutputTokens(kotlin.Int)">setMaxOutputTokens</a>(<a href="https://developer.android.com/reference/kotlin/java/lang/Integer.html">Integer</a>&nbsp;maxOutputTokens)</pre>
       </div>
+      <div class="api-item"><a name="setOutputAudioTranscription-com.google.firebase.ai.type.AudioTranscriptionConfig-"></a><a name="setoutputaudiotranscription"></a>
+        <h3 class="api-name" id="setOutputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setOutputAudioTranscription</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setOutputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setOutputAudioTranscription</a>(<a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>&nbsp;config)</pre>
+      </div>
       <div class="api-item"><a name="setPresencePenalty-kotlin.Float-"></a><a name="setpresencepenalty"></a>
         <h3 class="api-name" id="setPresencePenalty(kotlin.Float)">setPresencePenalty</h3>
         <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setPresencePenalty(kotlin.Float)">setPresencePenalty</a>(<a href="https://developer.android.com/reference/kotlin/java/lang/Float.html">Float</a>&nbsp;presencePenalty)</pre>
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/LiveServerContent.html	2025-10-17 18:09:25.909472159 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/LiveServerContent.html	2025-10-17 18:06:12.257101463 +0000
@@ -41,6 +41,13 @@
             </td>
           </tr>
           <tr>
+            <td><code>final <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#inputTranscription()">inputTranscription</a></code></div>
+              <p>The input transcription.</p>
+            </td>
+          </tr>
+          <tr>
             <td><code>final boolean</code></td>
             <td>
               <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code></div>
@@ -48,6 +55,13 @@
             </td>
           </tr>
           <tr>
+            <td><code>final <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#outputTranscription()">outputTranscription</a></code></div>
+              <p>The output transcription.</p>
+            </td>
+          </tr>
+          <tr>
             <td><code>final boolean</code></td>
             <td>
               <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a></code></div>
@@ -71,7 +85,8 @@
         <tbody class="list">
           <tr>
             <td>
-              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)">LiveServerContent</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Content.html">Content</a>&nbsp;content,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;interrupted,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;turnComplete,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;generationComplete<br>)</code></div>
+              <div><code><span><del><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean,com.google.firebase.ai.type.Transcription,com.google.firebase.ai.type.Transcription)">LiveServerContent</a></del></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Content.html">Content</a>&nbsp;content,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;interrupted,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;turnComplete,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;generationComplete,<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>&nbsp;inputTranscription,<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>&nbsp;outputTranscription<br>)</code></div>
+              <p><strong>This method is deprecated.</strong> This class should not be constructed, only received from the Server</p>
             </td>
           </tr>
         </tbody>
@@ -92,12 +107,22 @@
         <p>For realtime playback, there will be a delay between when the model finishes generating content and the client has finished playing back the generated content. <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#generationComplete()">generationComplete</a></code> indicates that the model is done generating data, while <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a></code> indicates the model is waiting for additional client messages. Sending a message during this delay may cause an <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code> message to be sent.</p>
         <p>Note that if the model was <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code>, this will not be set. The model will go from <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code> -><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a></code>.</p>
       </div>
+      <div class="api-item"><a name="getInputTranscription()"></a><a name="setInputTranscription()"></a><a name="getInputTranscription--"></a><a name="setInputTranscription--"></a>
+        <h3 class="api-name" id="inputTranscription()">inputTranscription</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#inputTranscription()">inputTranscription</a></pre>
+        <p>The input transcription. The transcription is independent to the model turn which means it doesn't imply any ordering between transcription and model turn.</p>
+      </div>
       <div class="api-item"><a name="getInterrupted()"></a><a name="setInterrupted()"></a><a name="getInterrupted--"></a><a name="setInterrupted--"></a>
         <h3 class="api-name" id="interrupted()">interrupted</h3>
         <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;boolean&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></pre>
         <p>The model was interrupted by the client while generating data.</p>
         <p>An interruption occurs when the client sends a message while the model is actively sending data.</p>
       </div>
+      <div class="api-item"><a name="getOutputTranscription()"></a><a name="setOutputTranscription()"></a><a name="getOutputTranscription--"></a><a name="setOutputTranscription--"></a>
+        <h3 class="api-name" id="outputTranscription()">outputTranscription</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#outputTranscription()">outputTranscription</a></pre>
+        <p>The output transcription. The transcription is independent to the model turn which means it doesn't imply any ordering between transcription and model turn.</p>
+      </div>
       <div class="api-item"><a name="getTurnComplete()"></a><a name="setTurnComplete()"></a><a name="getTurnComplete--"></a><a name="setTurnComplete--"></a>
         <h3 class="api-name" id="turnComplete()">turnComplete</h3>
         <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;boolean&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a></pre>
@@ -127,9 +152,10 @@
     </div>
     <div class="list">
       <h2>Public constructors</h2>
-      <div class="api-item"><a name="LiveServerContent(com.google.firebase.ai.type.Content, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean)"></a><a name="LiveServerContent-com.google.firebase.ai.type.Content-kotlin.Boolean-kotlin.Boolean-kotlin.Boolean-"></a><a name="liveservercontent"></a>
-        <h3 class="api-name" id="LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)">LiveServerContent</h3>
-        <pre class="api-signature no-pretty-print">public&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)">LiveServerContent</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Content.html">Content</a>&nbsp;content,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;interrupted,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;turnComplete,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;generationComplete<br>)</pre>
+      <div class="api-item"><a name="LiveServerContent(com.google.firebase.ai.type.Content, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, com.google.firebase.ai.type.Transcription, com.google.firebase.ai.type.Transcription)"></a><a name="LiveServerContent-com.google.firebase.ai.type.Content-kotlin.Boolean-kotlin.Boolean-kotlin.Boolean-com.google.firebase.ai.type.Transcription-com.google.firebase.ai.type.Transcription-"></a><a name="liveservercontent"></a>
+        <h3 class="api-name" id="LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean,com.google.firebase.ai.type.Transcription,com.google.firebase.ai.type.Transcription)">LiveServerContent</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;<span><del><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean,com.google.firebase.ai.type.Transcription,com.google.firebase.ai.type.Transcription)">LiveServerContent</a></del></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Content.html">Content</a>&nbsp;content,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;interrupted,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;turnComplete,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;generationComplete,<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>&nbsp;inputTranscription,<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>&nbsp;outputTranscription<br>)</pre>
+        <aside class="caution"><strong>This method is deprecated.</strong><br>This class should not be constructed, only received from the Server</aside>
       </div>
     </div>
   </body>
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/LiveSession.html	2025-10-17 18:09:25.910426471 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/LiveSession.html	2025-10-17 18:06:12.259868400 +0000
@@ -119,6 +119,13 @@
           <tr>
             <td><code>final void</code></td>
             <td>
+              <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br><a href="/docs/reference/android/com/google/firebase/ai/type/LiveSession.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;Function1&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>,&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>&gt;&nbsp;functionCallHandler,<br>&nbsp;&nbsp;&nbsp;&nbsp;Function2&lt;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;transcriptHandler,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;enableInterruptions<br>)</code></div>
+              <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveSession.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveSession.html#close()">close</a></code>.</p>
+            </td>
+          </tr>
+          <tr>
+            <td><code>final void</code></td>
+            <td>
               <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveSession.html#stopAudioConversation()">stopAudioConversation</a>()</code></div>
               <p>Stops the audio conversation with the model.</p>
             </td>
@@ -474,6 +481,45 @@
                 </td>
               </tr>
               <tr>
+                <td><code>boolean&nbsp;enableInterruptions</code></td>
+                <td>
+                  <p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p>
+                  <p><b>WARNING</b>: The user interruption feature relies on device-specific support, and may not be consistently available.</p>
+                </td>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+      </div>
+      <div class="api-item"><a name="startAudioConversation(kotlin.Function1, kotlin.Function2, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function1-kotlin.Function2-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
+        <h3 class="api-name" id="startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</h3>
+        <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br>public&nbsp;final&nbsp;void&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/LiveSession.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;Function1&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>,&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>&gt;&nbsp;functionCallHandler,<br>&nbsp;&nbsp;&nbsp;&nbsp;Function2&lt;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;transcriptHandler,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;enableInterruptions<br>)</pre>
+        <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveSession.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveSession.html#close()">close</a></code>.</p>
+        <div class="devsite-table-wrapper">
+          <table class="responsive">
+            <colgroup>
+              <col width="40%">
+              <col>
+            </colgroup>
+            <thead>
+              <tr>
+                <th colspan="100%">Parameters</th>
+              </tr>
+            </thead>
+            <tbody class="list">
+              <tr>
+                <td><code>Function1&lt;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>,&nbsp;@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>&gt;&nbsp;functionCallHandler</code></td>
+                <td>
+                  <p>A callback function that is invoked whenever the model receives a function call. The <code><a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a></code> that the callback function returns will be automatically sent to the model.</p>
+                </td>
+              </tr>
+              <tr>
+                <td><code>Function2&lt;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;transcriptHandler</code></td>
+                <td>
+                  <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription.</p>
+                </td>
+              </tr>
+              <tr>
                 <td><code>boolean&nbsp;enableInterruptions</code></td>
                 <td>
                   <p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p>
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/Transcription.html	1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/Transcription.html	2025-10-17 18:06:12.270393910 +0000
@@ -0,0 +1,48 @@
+<html devsite="true">
+  <head>
+    <title>Transcription</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/android/_reference-head-tags.html" %}
+  </head>
+  <body>
+    <div id="metadata-info-block"></div>
+    <h1>Transcription</h1>
+    <p>
+      <pre>public final class <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></pre>
+    </p>
+    <hr>
+    <p>Audio transcription message.</p>
+    <h2>Summary</h2>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public fields</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td><code>final <a href="https://developer.android.com/reference/kotlin/java/lang/String.html">String</a></code></td>
+            <td>
+              <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html#text()">text</a></code></div>
+              <p>Transcription text</p>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="list">
+      <h2>Public fields</h2>
+      <div class="api-item"><a name="getText()"></a><a name="setText()"></a><a name="getText--"></a><a name="setText--"></a>
+        <h3 class="api-name" id="text()">text</h3>
+        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;<a href="https://developer.android.com/reference/kotlin/java/lang/String.html">String</a>&nbsp;<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html#text()">text</a></pre>
+        <p>Transcription text</p>
+      </div>
+    </div>
+  </body>
+</html>
+
--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/package-summary.html	2025-10-17 18:09:25.896752011 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/package-summary.html	2025-10-17 18:06:12.249604632 +0000
@@ -53,6 +53,12 @@
         </colgroup>
         <tbody class="list">
           <tr>
+            <td><code><a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a></code></td>
+            <td>
+              <p>The audio transcription configuration.</p>
+            </td>
+          </tr>
+          <tr>
             <td><code><a href="/docs/reference/android/com/google/firebase/ai/type/BlockReason.html">BlockReason</a></code></td>
             <td>
               <p>Describes why content was blocked.</p>
@@ -571,6 +577,12 @@
             </td>
           </tr>
           <tr>
+            <td><code><a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></code></td>
+            <td>
+              <p>Audio transcription message.</p>
+            </td>
+          </tr>
+          <tr>
             <td><code><a href="/docs/reference/android/com/google/firebase/ai/type/UrlContext.html">UrlContext</a></code></td>
             <td>
               <p>Specifies the URL context configuration.</p>
--- /home/runner/diff/original/firebase-kotlindoc/kotlin/client/firebase-ai/_toc.yaml	2025-10-17 18:09:25.944331993 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/client/firebase-ai/_toc.yaml	2025-10-17 18:06:12.277768341 +0000
@@ -50,6 +50,8 @@
   - title: "Classes"
 
     section:
+    - title: "AudioTranscriptionConfig"
+      path: "/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html"
     - title: "BlockReason"
       path: "/docs/reference/kotlin/com/google/firebase/ai/type/BlockReason.html"
     - title: "Candidate"
@@ -216,6 +218,8 @@
       path: "/docs/reference/kotlin/com/google/firebase/ai/type/Tool.html"
     - title: "ToolConfig"
       path: "/docs/reference/kotlin/com/google/firebase/ai/type/ToolConfig.html"
+    - title: "Transcription"
+      path: "/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html"
     - title: "UrlContext"
       path: "/docs/reference/kotlin/com/google/firebase/ai/type/UrlContext.html"
     - title: "UrlContextMetadata"
--- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html	2025-10-17 18:09:25.952175363 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html	2025-10-17 18:06:12.280204540 +0000
@@ -152,6 +152,13 @@
           <tr>
             <td><code>abstract <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</code></td>
             <td>
+              <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;transcriptHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?<br>)</code></div>
+              <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code>.</p>
+            </td>
+          </tr>
+          <tr>
+            <td><code>abstract <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</code></td>
+            <td>
               <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;functionCallHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-&gt;</span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)?,<br>&nbsp;&nbsp;&nbsp;&nbsp;enableInterruptions:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>)</code></div>
               <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
             </td>
@@ -159,6 +166,20 @@
           <tr>
             <td><code>abstract <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</code></td>
             <td>
+              <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;transcriptHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?,<br>&nbsp;&nbsp;&nbsp;&nbsp;enableInterruptions:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>)</code></div>
+              <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+            </td>
+          </tr>
+          <tr>
+            <td><code>abstract <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</code></td>
+            <td>
+              <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;functionCallHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-&gt;</span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)?,<br>&nbsp;&nbsp;&nbsp;&nbsp;transcriptHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?,<br>&nbsp;&nbsp;&nbsp;&nbsp;enableInterruptions:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>)</code></div>
+              <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+            </td>
+          </tr>
+          <tr>
+            <td><code>abstract <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</code></td>
+            <td>
               <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a>()</code></div>
               <p>Stops the audio conversation with the Gemini Server.</p>
             </td>
@@ -299,7 +320,7 @@
         <h3 class="api-name" id="send(com.google.firebase.ai.type.Content)">send</h3>
         <pre class="api-signature no-pretty-print">abstract&nbsp;fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#send(com.google.firebase.ai.type.Content)">send</a>(content:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Content.html">Content</a>):&nbsp;<a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</pre>
         <p>Sends <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Content.html">data</a></code> to the model.</p>
-        <p>Calling this after <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code> will play the response audio immediately.</p>
+        <p>Calling this after <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code> will play the response audio immediately.</p>
         <div class="devsite-table-wrapper">
           <table class="responsive">
             <colgroup>
@@ -326,7 +347,7 @@
         <h3 class="api-name" id="send(kotlin.String)">send</h3>
         <pre class="api-signature no-pretty-print">abstract&nbsp;fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#send(kotlin.String)">send</a>(text:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>):&nbsp;<a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</pre>
         <p>Sends text to the model.</p>
-        <p>Calling this after <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code> will play the response audio immediately.</p>
+        <p>Calling this after <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code> will play the response audio immediately.</p>
         <div class="devsite-table-wrapper">
           <table class="responsive">
             <colgroup>
@@ -406,7 +427,7 @@
         <pre class="api-signature no-pretty-print">abstract&nbsp;fun&nbsp;<span><del><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#sendMediaStream(kotlin.collections.List)">sendMediaStream</a></del></span>(mediaChunks:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html">List</a>&lt;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/MediaData.html">MediaData</a>&gt;):&nbsp;<a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</pre>
         <aside class="caution"><strong>This function is deprecated.</strong><br>Use sendAudioRealtime, sendVideoRealtime, or sendTextRealtime instead</aside>
         <p>Streams client data to the model.</p>
-        <p>Calling this after <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code> will play the response audio immediately.</p>
+        <p>Calling this after <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code> will play the response audio immediately.</p>
         <div class="devsite-table-wrapper">
           <table class="responsive">
             <colgroup>
@@ -539,6 +560,32 @@
           </table>
         </div>
       </div>
+      <div class="api-item"><a name="startAudioConversation-kotlin.Function2-"></a><a name="startaudioconversation"></a>
+        <h3 class="api-name" id="startAudioConversation(kotlin.Function2)">startAudioConversation</h3>
+        <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br>abstract&nbsp;fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;transcriptHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?<br>):&nbsp;<a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</pre>
+        <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code>.</p>
+        <div class="devsite-table-wrapper">
+          <table class="responsive">
+            <colgroup>
+              <col width="40%">
+              <col>
+            </colgroup>
+            <thead>
+              <tr>
+                <th colspan="100%">Parameters</th>
+              </tr>
+            </thead>
+            <tbody class="list">
+              <tr>
+                <td><code>transcriptHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?</code></td>
+                <td>
+                  <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription</p>
+                </td>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+      </div>
       <div class="api-item"><a name="startAudioConversation(kotlin.Function1, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function1-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
         <h3 class="api-name" id="startAudioConversation(kotlin.Function1,kotlin.Boolean)">startAudioConversation</h3>
         <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br>abstract&nbsp;fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;functionCallHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-&gt;</span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)?,<br>&nbsp;&nbsp;&nbsp;&nbsp;enableInterruptions:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>):&nbsp;<a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</pre>
@@ -572,11 +619,83 @@
           </table>
         </div>
       </div>
+      <div class="api-item"><a name="startAudioConversation(kotlin.Function2, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function2-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
+        <h3 class="api-name" id="startAudioConversation(kotlin.Function2,kotlin.Boolean)">startAudioConversation</h3>
+        <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br>abstract&nbsp;fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;transcriptHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?,<br>&nbsp;&nbsp;&nbsp;&nbsp;enableInterruptions:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>):&nbsp;<a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</pre>
+        <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+        <div class="devsite-table-wrapper">
+          <table class="responsive">
+            <colgroup>
+              <col width="40%">
+              <col>
+            </colgroup>
+            <thead>
+              <tr>
+                <th colspan="100%">Parameters</th>
+              </tr>
+            </thead>
+            <tbody class="list">
+              <tr>
+                <td><code>transcriptHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?</code></td>
+                <td>
+                  <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription</p>
+                </td>
+              </tr>
+              <tr>
+                <td><code>enableInterruptions:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></code></td>
+                <td>
+                  <p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p>
+                  <p><b>WARNING</b>: The user interruption feature relies on device-specific support, and may not be consistently available.</p>
+                </td>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+      </div>
+      <div class="api-item"><a name="startAudioConversation(kotlin.Function1, kotlin.Function2, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function1-kotlin.Function2-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
+        <h3 class="api-name" id="startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</h3>
+        <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br>abstract&nbsp;fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;functionCallHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-&gt;</span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)?,<br>&nbsp;&nbsp;&nbsp;&nbsp;transcriptHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?,<br>&nbsp;&nbsp;&nbsp;&nbsp;enableInterruptions:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>):&nbsp;<a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</pre>
+        <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+        <div class="devsite-table-wrapper">
+          <table class="responsive">
+            <colgroup>
+              <col width="40%">
+              <col>
+            </colgroup>
+            <thead>
+              <tr>
+                <th colspan="100%">Parameters</th>
+              </tr>
+            </thead>
+            <tbody class="list">
+              <tr>
+                <td><code>functionCallHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-&gt;</span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)?</code></td>
+                <td>
+                  <p>A callback function that is invoked whenever the model receives a function call.</p>
+                </td>
+              </tr>
+              <tr>
+                <td><code>transcriptHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?</code></td>
+                <td>
+                  <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription</p>
+                </td>
+              </tr>
+              <tr>
+                <td><code>enableInterruptions:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></code></td>
+                <td>
+                  <p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p>
+                  <p><b>WARNING</b>: The user interruption feature relies on device-specific support, and may not be consistently available.</p>
+                </td>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+      </div>
       <div class="api-item"><a name="stopAudioConversation--"></a><a name="stopaudioconversation"></a>
         <h3 class="api-name" id="stopAudioConversation()">stopAudioConversation</h3>
         <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br>abstract&nbsp;fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a>():&nbsp;<a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a>&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;</pre>
         <p>Stops the audio conversation with the Gemini Server.</p>
-        <p>This only needs to be called after a previous call to <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code>.</p>
+        <p>This only needs to be called after a previous call to <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code>.</p>
         <p>If there is no audio conversation currently active, this function does nothing.</p>
       </div>
       <div class="api-item"><a name="stopReceiving--"></a><a name="stopreceiving"></a>
@@ -584,7 +703,7 @@
         <pre class="api-signature no-pretty-print">abstract&nbsp;fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopReceiving()">stopReceiving</a>():&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a></pre>
         <p>Stops receiving from the model.</p>
         <p>If this function is called during an ongoing audio conversation, the model's response will not be received, and no audio will be played; the live session object will no longer receive data from the server.</p>
-        <p>To resume receiving data, you must either handle it directly using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#receive()">receive</a></code>, or indirectly by using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code>.</p>
+        <p>To resume receiving data, you must either handle it directly using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#receive()">receive</a></code>, or indirectly by using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code>.</p>
         <div class="devsite-table-wrapper">
           <table class="responsive">
             <colgroup>
--- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html	1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html	2025-10-17 18:06:12.304105850 +0000
@@ -0,0 +1,45 @@
+<html devsite="true">
+  <head>
+    <title>AudioTranscriptionConfig</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/kotlin/_reference-head-tags.html" %}
+  </head>
+  <body>
+    <div id="metadata-info-block"></div>
+    <h1>AudioTranscriptionConfig</h1>
+    <p>
+      <pre>class <a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a></pre>
+    </p>
+    <hr>
+    <p>The audio transcription configuration. Its presence enables audio transcription</p>
+    <h2>Summary</h2>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public constructors</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html#AudioTranscriptionConfig()">AudioTranscriptionConfig</a>()</code></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="list">
+      <h2>Public constructors</h2>
+      <div class="api-item"><a name="AudioTranscriptionConfig--"></a><a name="audiotranscriptionconfig"></a>
+        <h3 class="api-name" id="AudioTranscriptionConfig()">AudioTranscriptionConfig</h3>
+        <pre class="api-signature no-pretty-print"><a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html#AudioTranscriptionConfig()">AudioTranscriptionConfig</a>()</pre>
+      </div>
+    </div>
+  </body>
+</html>
+
--- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html	2025-10-17 18:09:25.989033400 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html	2025-10-17 18:06:12.304380215 +0000
@@ -62,12 +62,24 @@
           <tr>
             <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
             <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setInputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setInputAudioTranscription</a>(config:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?)</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
+            <td>
               <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setMaxOutputTokens(kotlin.Int)">setMaxOutputTokens</a>(maxOutputTokens:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>?)</code></div>
             </td>
           </tr>
           <tr>
             <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
             <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setOutputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setOutputAudioTranscription</a>(config:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?)</code></div>
+            </td>
+          </tr>
+          <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
+            <td>
               <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setPresencePenalty(kotlin.Float)">setPresencePenalty</a>(presencePenalty:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html">Float</a>?)</code></div>
             </td>
           </tr>
@@ -124,6 +136,13 @@
             </td>
           </tr>
           <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?</code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#inputAudioTranscription()">inputAudioTranscription</a></code></div>
+              <p>see <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.html#inputAudioTranscription()">LiveGenerationConfig.inputAudioTranscription</a></code></p>
+            </td>
+          </tr>
+          <tr>
             <td><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>?</code></td>
             <td>
               <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#maxOutputTokens()">maxOutputTokens</a></code></div>
@@ -131,6 +150,13 @@
             </td>
           </tr>
           <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?</code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#outputAudioTranscription()">outputAudioTranscription</a></code></div>
+              <p>see <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.html#outputAudioTranscription()">LiveGenerationConfig.outputAudioTranscription</a></code></p>
+            </td>
+          </tr>
+          <tr>
             <td><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html">Float</a>?</code></td>
             <td>
               <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#presencePenalty()">presencePenalty</a></code></div>
@@ -193,10 +219,18 @@
         <h3 class="api-name" id="setFrequencyPenalty(kotlin.Float)">setFrequencyPenalty</h3>
         <pre class="api-signature no-pretty-print">fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setFrequencyPenalty(kotlin.Float)">setFrequencyPenalty</a>(frequencyPenalty:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html">Float</a>?):&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></pre>
       </div>
+      <div class="api-item"><a name="setInputAudioTranscription-com.google.firebase.ai.type.AudioTranscriptionConfig-"></a><a name="setinputaudiotranscription"></a>
+        <h3 class="api-name" id="setInputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setInputAudioTranscription</h3>
+        <pre class="api-signature no-pretty-print">fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setInputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setInputAudioTranscription</a>(config:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?):&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></pre>
+      </div>
       <div class="api-item"><a name="setMaxOutputTokens-kotlin.Int-"></a><a name="setmaxoutputtokens"></a>
         <h3 class="api-name" id="setMaxOutputTokens(kotlin.Int)">setMaxOutputTokens</h3>
         <pre class="api-signature no-pretty-print">fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setMaxOutputTokens(kotlin.Int)">setMaxOutputTokens</a>(maxOutputTokens:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>?):&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></pre>
       </div>
+      <div class="api-item"><a name="setOutputAudioTranscription-com.google.firebase.ai.type.AudioTranscriptionConfig-"></a><a name="setoutputaudiotranscription"></a>
+        <h3 class="api-name" id="setOutputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setOutputAudioTranscription</h3>
+        <pre class="api-signature no-pretty-print">fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setOutputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setOutputAudioTranscription</a>(config:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?):&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></pre>
+      </div>
       <div class="api-item"><a name="setPresencePenalty-kotlin.Float-"></a><a name="setpresencepenalty"></a>
         <h3 class="api-name" id="setPresencePenalty(kotlin.Float)">setPresencePenalty</h3>
         <pre class="api-signature no-pretty-print">fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setPresencePenalty(kotlin.Float)">setPresencePenalty</a>(presencePenalty:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html">Float</a>?):&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></pre>
@@ -229,11 +263,21 @@
         <pre class="api-signature no-pretty-print">var&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#frequencyPenalty()">frequencyPenalty</a>:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html">Float</a>?</pre>
         <p>See <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.html#frequencyPenalty()">LiveGenerationConfig.frequencyPenalty</a></code></p>
       </div>
+      <div class="api-item"><a name="getInputAudioTranscription()"></a><a name="setInputAudioTranscription()"></a><a name="getInputAudioTranscription--"></a><a name="setInputAudioTranscription--"></a>
+        <h3 class="api-name" id="inputAudioTranscription()">inputAudioTranscription</h3>
+        <pre class="api-signature no-pretty-print">var&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#inputAudioTranscription()">inputAudioTranscription</a>:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?</pre>
+        <p>see <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.html#inputAudioTranscription()">LiveGenerationConfig.inputAudioTranscription</a></code></p>
+      </div>
       <div class="api-item"><a name="getMaxOutputTokens()"></a><a name="setMaxOutputTokens()"></a><a name="getMaxOutputTokens--"></a><a name="setMaxOutputTokens--"></a>
         <h3 class="api-name" id="maxOutputTokens()">maxOutputTokens</h3>
         <pre class="api-signature no-pretty-print">var&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#maxOutputTokens()">maxOutputTokens</a>:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>?</pre>
         <p>See <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.html#maxOutputTokens()">LiveGenerationConfig.maxOutputTokens</a></code>.</p>
       </div>
+      <div class="api-item"><a name="getOutputAudioTranscription()"></a><a name="setOutputAudioTranscription()"></a><a name="getOutputAudioTranscription--"></a><a name="setOutputAudioTranscription--"></a>
+        <h3 class="api-name" id="outputAudioTranscription()">outputAudioTranscription</h3>
+        <pre class="api-signature no-pretty-print">var&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#outputAudioTranscription()">outputAudioTranscription</a>:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?</pre>
+        <p>see <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.html#outputAudioTranscription()">LiveGenerationConfig.outputAudioTranscription</a></code></p>
+      </div>
       <div class="api-item"><a name="getPresencePenalty()"></a><a name="setPresencePenalty()"></a><a name="getPresencePenalty--"></a><a name="setPresencePenalty--"></a>
         <h3 class="api-name" id="presencePenalty()">presencePenalty</h3>
         <pre class="api-signature no-pretty-print">var&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#presencePenalty()">presencePenalty</a>:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html">Float</a>?</pre>
--- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/LiveServerContent.html	2025-10-17 18:09:25.969028732 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/LiveServerContent.html	2025-10-17 18:06:12.286564322 +0000
@@ -28,7 +28,8 @@
         <tbody class="list">
           <tr>
             <td>
-              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)">LiveServerContent</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;content:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Content.html">Content</a>?,<br>&nbsp;&nbsp;&nbsp;&nbsp;interrupted:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;turnComplete:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;generationComplete:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>)</code></div>
+              <div><code><span><del><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean,com.google.firebase.ai.type.Transcription,com.google.firebase.ai.type.Transcription)">LiveServerContent</a></del></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;content:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Content.html">Content</a>?,<br>&nbsp;&nbsp;&nbsp;&nbsp;interrupted:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;turnComplete:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;generationComplete:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;inputTranscription:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?,<br>&nbsp;&nbsp;&nbsp;&nbsp;outputTranscription:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?<br>)</code></div>
+              <p><strong>This function is deprecated.</strong> This class should not be constructed, only received from the Server</p>
             </td>
           </tr>
         </tbody>
@@ -61,6 +62,13 @@
             </td>
           </tr>
           <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?</code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#inputTranscription()">inputTranscription</a></code></div>
+              <p>The input transcription.</p>
+            </td>
+          </tr>
+          <tr>
             <td><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></code></td>
             <td>
               <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code></div>
@@ -68,6 +76,13 @@
             </td>
           </tr>
           <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?</code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#outputTranscription()">outputTranscription</a></code></div>
+              <p>The output transcription.</p>
+            </td>
+          </tr>
+          <tr>
             <td><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></code></td>
             <td>
               <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a></code></div>
@@ -79,9 +94,10 @@
     </div>
     <div class="list">
       <h2>Public constructors</h2>
-      <div class="api-item"><a name="LiveServerContent(com.google.firebase.ai.type.Content, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean)"></a><a name="LiveServerContent-com.google.firebase.ai.type.Content-kotlin.Boolean-kotlin.Boolean-kotlin.Boolean-"></a><a name="liveservercontent"></a>
-        <h3 class="api-name" id="LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)">LiveServerContent</h3>
-        <pre class="api-signature no-pretty-print"><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)">LiveServerContent</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;content:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Content.html">Content</a>?,<br>&nbsp;&nbsp;&nbsp;&nbsp;interrupted:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;turnComplete:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;generationComplete:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>)</pre>
+      <div class="api-item"><a name="LiveServerContent(com.google.firebase.ai.type.Content, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, com.google.firebase.ai.type.Transcription, com.google.firebase.ai.type.Transcription)"></a><a name="LiveServerContent-com.google.firebase.ai.type.Content-kotlin.Boolean-kotlin.Boolean-kotlin.Boolean-com.google.firebase.ai.type.Transcription-com.google.firebase.ai.type.Transcription-"></a><a name="liveservercontent"></a>
+        <h3 class="api-name" id="LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean,com.google.firebase.ai.type.Transcription,com.google.firebase.ai.type.Transcription)">LiveServerContent</h3>
+        <pre class="api-signature no-pretty-print"><span><del><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean,com.google.firebase.ai.type.Transcription,com.google.firebase.ai.type.Transcription)">LiveServerContent</a></del></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;content:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Content.html">Content</a>?,<br>&nbsp;&nbsp;&nbsp;&nbsp;interrupted:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;turnComplete:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;generationComplete:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;inputTranscription:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?,<br>&nbsp;&nbsp;&nbsp;&nbsp;outputTranscription:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?<br>)</pre>
+        <aside class="caution"><strong>This function is deprecated.</strong><br>This class should not be constructed, only received from the Server</aside>
       </div>
     </div>
     <div class="list">
@@ -99,12 +115,22 @@
         <p>For realtime playback, there will be a delay between when the model finishes generating content and the client has finished playing back the generated content. <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#generationComplete()">generationComplete</a></code> indicates that the model is done generating data, while <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a></code> indicates the model is waiting for additional client messages. Sending a message during this delay may cause an <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code> message to be sent.</p>
         <p>Note that if the model was <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code>, this will not be set. The model will go from <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code> -><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a></code>.</p>
       </div>
+      <div class="api-item"><a name="getInputTranscription()"></a><a name="setInputTranscription()"></a><a name="getInputTranscription--"></a><a name="setInputTranscription--"></a>
+        <h3 class="api-name" id="inputTranscription()">inputTranscription</h3>
+        <pre class="api-signature no-pretty-print">val&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#inputTranscription()">inputTranscription</a>:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?</pre>
+        <p>The input transcription. The transcription is independent to the model turn which means it doesn't imply any ordering between transcription and model turn.</p>
+      </div>
       <div class="api-item"><a name="getInterrupted()"></a><a name="setInterrupted()"></a><a name="getInterrupted--"></a><a name="setInterrupted--"></a>
         <h3 class="api-name" id="interrupted()">interrupted</h3>
         <pre class="api-signature no-pretty-print">val&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a>:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></pre>
         <p>The model was interrupted by the client while generating data.</p>
         <p>An interruption occurs when the client sends a message while the model is actively sending data.</p>
       </div>
+      <div class="api-item"><a name="getOutputTranscription()"></a><a name="setOutputTranscription()"></a><a name="getOutputTranscription--"></a><a name="setOutputTranscription--"></a>
+        <h3 class="api-name" id="outputTranscription()">outputTranscription</h3>
+        <pre class="api-signature no-pretty-print">val&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#outputTranscription()">outputTranscription</a>:&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?</pre>
+        <p>The output transcription. The transcription is independent to the model turn which means it doesn't imply any ordering between transcription and model turn.</p>
+      </div>
       <div class="api-item"><a name="getTurnComplete()"></a><a name="setTurnComplete()"></a><a name="getTurnComplete--"></a><a name="setTurnComplete--"></a>
         <h3 class="api-name" id="turnComplete()">turnComplete</h3>
         <pre class="api-signature no-pretty-print">val&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a>:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></pre>
--- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/LiveSession.html	2025-10-17 18:09:25.970024753 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/LiveSession.html	2025-10-17 18:06:12.290484455 +0000
@@ -117,6 +117,13 @@
             </td>
           </tr>
           <tr>
+            <td><code>suspend <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a></code></td>
+            <td>
+              <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveSession.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;functionCallHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-&gt;</span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)?,<br>&nbsp;&nbsp;&nbsp;&nbsp;transcriptHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?,<br>&nbsp;&nbsp;&nbsp;&nbsp;enableInterruptions:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>)</code></div>
+              <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveSession.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveSession.html#close()">close</a></code>.</p>
+            </td>
+          </tr>
+          <tr>
             <td><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a></code></td>
             <td>
               <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveSession.html#stopAudioConversation()">stopAudioConversation</a>()</code></div>
@@ -474,6 +481,45 @@
                 </td>
               </tr>
               <tr>
+                <td><code>enableInterruptions:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a> = false</code></td>
+                <td>
+                  <p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p>
+                  <p><b>WARNING</b>: The user interruption feature relies on device-specific support, and may not be consistently available.</p>
+                </td>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+      </div>
+      <div class="api-item"><a name="startAudioConversation(kotlin.Function1, kotlin.Function2, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function1-kotlin.Function2-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
+        <h3 class="api-name" id="startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</h3>
+        <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value&nbsp;=&nbsp;&quot;android.permission.RECORD_AUDIO&quot;)<br>suspend&nbsp;fun&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveSession.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;functionCallHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-&gt;</span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)? = null,<br>&nbsp;&nbsp;&nbsp;&nbsp;transcriptHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)? = null,<br>&nbsp;&nbsp;&nbsp;&nbsp;enableInterruptions:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a> = false<br>):&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a></pre>
+        <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveSession.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveSession.html#close()">close</a></code>.</p>
+        <div class="devsite-table-wrapper">
+          <table class="responsive">
+            <colgroup>
+              <col width="40%">
+              <col>
+            </colgroup>
+            <thead>
+              <tr>
+                <th colspan="100%">Parameters</th>
+              </tr>
+            </thead>
+            <tbody class="list">
+              <tr>
+                <td><code>functionCallHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-&gt;</span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)? = null</code></td>
+                <td>
+                  <p>A callback function that is invoked whenever the model receives a function call. The <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a></code> that the callback function returns will be automatically sent to the model.</p>
+                </td>
+              </tr>
+              <tr>
+                <td><code>transcriptHandler:&nbsp;((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)? = null</code></td>
+                <td>
+                  <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription.</p>
+                </td>
+              </tr>
+              <tr>
                 <td><code>enableInterruptions:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a> = false</code></td>
                 <td>
                   <p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p>
--- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/Transcription.html	1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/Transcription.html	2025-10-17 18:06:12.303543603 +0000
@@ -0,0 +1,48 @@
+<html devsite="true">
+  <head>
+    <title>Transcription</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/kotlin/_reference-head-tags.html" %}
+  </head>
+  <body>
+    <div id="metadata-info-block"></div>
+    <h1>Transcription</h1>
+    <p>
+      <pre>class <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a></pre>
+    </p>
+    <hr>
+    <p>Audio transcription message.</p>
+    <h2>Summary</h2>
+    <div class="devsite-table-wrapper">
+      <table class="responsive">
+        <colgroup>
+          <col width="40%">
+          <col>
+        </colgroup>
+        <thead>
+          <tr>
+            <th colspan="100%"><h3>Public properties</h3></th>
+          </tr>
+        </thead>
+        <tbody class="list">
+          <tr>
+            <td><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>?</code></td>
+            <td>
+              <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html#text()">text</a></code></div>
+              <p>Transcription text</p>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div class="list">
+      <h2>Public properties</h2>
+      <div class="api-item"><a name="getText()"></a><a name="setText()"></a><a name="getText--"></a><a name="setText--"></a>
+        <h3 class="api-name" id="text()">text</h3>
+        <pre class="api-signature no-pretty-print">val&nbsp;<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html#text()">text</a>:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>?</pre>
+        <p>Transcription text</p>
+      </div>
+    </div>
+  </body>
+</html>
+
--- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/package-summary.html	2025-10-17 18:09:25.956676997 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/package-summary.html	2025-10-17 18:06:12.281643600 +0000
@@ -38,6 +38,12 @@
         </colgroup>
         <tbody class="list">
           <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a></code></td>
+            <td>
+              <p>The audio transcription configuration.</p>
+            </td>
+          </tr>
+          <tr>
             <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/BlockReason.html">BlockReason</a></code></td>
             <td>
               <p>Describes why content was blocked.</p>
@@ -528,6 +534,12 @@
             </td>
           </tr>
           <tr>
+            <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a></code></td>
+            <td>
+              <p>Audio transcription message.</p>
+            </td>
+          </tr>
+          <tr>
             <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/UrlContext.html">UrlContext</a></code></td>
             <td>
               <p>Specifies the URL context configuration.</p>
--- /home/runner/diff/original/reports/problems/problems-report.html	2025-10-17 18:10:29.629570119 +0000
+++ /home/runner/diff/modified/reports/problems/problems-report.html	2025-10-17 18:08:16.801612287 +0000
@@ -650,7 +650,7 @@
 <script type="text/javascript">
 function configurationCacheProblems() { return (
 // begin-report-data
-{"diagnostics":[{"locations":[{"pluginId":"firebase-library"}],"problem":[{"text":"The Report.destination property has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Report.destination property has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/dsl/org.gradle.api.reporting.Report.html#org.gradle.api.reporting.Report:destination","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-report-destination-property-has-been-deprecated","displayName":"The Report.destination property has been deprecated."}],"solutions":[[{"text":"Please use the outputLocation property instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-abt/firebase-abt.gradle'","line":31}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('abortOnError = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-abt/firebase-abt.gradle'","line":34}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"pluginId":"firebase-java-library"}],"problem":[{"text":"The Report.destination property has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Report.destination property has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/dsl/org.gradle.api.reporting.Report.html#org.gradle.api.reporting.Report:destination","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-report-destination-property-has-been-deprecated","displayName":"The Report.destination property has been deprecated."}],"solutions":[[{"text":"Please use the outputLocation property instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution/firebase-appdistribution.gradle'","line":31}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution/firebase-appdistribution.gradle'","line":37}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution-api/firebase-appdistribution-api.gradle'","line":32}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution-api/firebase-appdistribution-api.gradle'","line":38}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('ndkVersion = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('includeAndroidResources = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('compileSdk = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('abortOnError = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('sourceCompatibility = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('targetCompatibility = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('testBuildType = <value>') instead."}]]},{"locations":[{"taskPath":":firebase-appdistribution-api:generateDackkaDocumentation"}],"problem":[{"text":"Invocation of Task.project at execution time has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This will fail with an error in Gradle 10.0."}],"contextualLabel":"Invocation of Task.project at execution time has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_7.html#task_project","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"invocation-of-task-project-at-execution-time","displayName":"Invocation of Task.project at execution time has been deprecated."}],"solutions":[[{"text":"This API is incompatible with the configuration cache, which will become the only mode supported by Gradle in a future release."}]]}],"problemsReport":{"totalProblemCount":18,"buildName":"com.google.firebase","requestedTasks":"kotlindoc","documentationLink":"https://docs.gradle.org/8.13/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[{"problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"count":4}]}}
+{"diagnostics":[{"locations":[{"pluginId":"com.android.internal.library"}],"problem":[{"text":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"Starting with Gradle 9.0, this property will be ignored by Gradle."}],"contextualLabel":"Declaring an 'is-' property with a Boolean type has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_boolean_properties","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-an-is-property-with-a-boolean-type","displayName":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"solutions":[[{"text":"Add a method named 'getCrunchPngs' with the same behavior and mark the old one with @Deprecated, or change the type of 'com.android.build.gradle.internal.dsl.BuildType$AgpDecorated.isCrunchPngs' (and the setter) to 'boolean'."}],[{"text":"The combination of method name and return type is not consistent with Java Bean property rules and will become unsupported in future versions of Groovy."}]]},{"locations":[{"pluginId":"com.android.internal.library"}],"problem":[{"text":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"Starting with Gradle 9.0, this property will be ignored by Gradle."}],"contextualLabel":"Declaring an 'is-' property with a Boolean type has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_boolean_properties","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-an-is-property-with-a-boolean-type","displayName":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"solutions":[[{"text":"Add a method named 'getUseProguard' with the same behavior and mark the old one with @Deprecated, or change the type of 'com.android.build.gradle.internal.dsl.BuildType.isUseProguard' (and the setter) to 'boolean'."}],[{"text":"The combination of method name and return type is not consistent with Java Bean property rules and will become unsupported in future versions of Groovy."}]]},{"locations":[{"pluginId":"firebase-library"}],"problem":[{"text":"The Report.destination property has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Report.destination property has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/dsl/org.gradle.api.reporting.Report.html#org.gradle.api.reporting.Report:destination","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-report-destination-property-has-been-deprecated","displayName":"The Report.destination property has been deprecated."}],"solutions":[[{"text":"Please use the outputLocation property instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-abt/firebase-abt.gradle'","line":31}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('abortOnError = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-abt/firebase-abt.gradle'","line":34}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"pluginId":"firebase-java-library"}],"problem":[{"text":"The Report.destination property has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Report.destination property has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/dsl/org.gradle.api.reporting.Report.html#org.gradle.api.reporting.Report:destination","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-report-destination-property-has-been-deprecated","displayName":"The Report.destination property has been deprecated."}],"solutions":[[{"text":"Please use the outputLocation property instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution/firebase-appdistribution.gradle'","line":31}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution/firebase-appdistribution.gradle'","line":37}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution-api/firebase-appdistribution-api.gradle'","line":32}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution-api/firebase-appdistribution-api.gradle'","line":38}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('ndkVersion = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('includeAndroidResources = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('compileSdk = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('abortOnError = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('sourceCompatibility = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('targetCompatibility = <value>') instead."}]]},{"locations":[{"pluginId":"com.android.internal.application"}],"problem":[{"text":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"Starting with Gradle 9.0, this property will be ignored by Gradle."}],"contextualLabel":"Declaring an 'is-' property with a Boolean type has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_boolean_properties","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-an-is-property-with-a-boolean-type","displayName":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"solutions":[[{"text":"Add a method named 'getWearAppUnbundled' with the same behavior and mark the old one with @Deprecated, or change the type of 'com.android.build.api.variant.impl.ApplicationVariantImpl.isWearAppUnbundled' (and the setter) to 'boolean'."}],[{"text":"The combination of method name and return type is not consistent with Java Bean property rules and will become unsupported in future versions of Groovy."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('testBuildType = <value>') instead."}]]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-config/src/main/java/com/google/firebase/remoteconfig/FirebaseRemoteConfig.java"},{"taskPath":":firebase-config:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-config/src/main/java/com/google/firebase/remoteconfig/FirebaseRemoteConfig.java"},{"taskPath":":firebase-config:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/FirebaseCommonRegistrar.java"},{"taskPath":":firebase-common:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/FirebaseCommonRegistrar.java"},{"taskPath":":firebase-common:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/heartbeatinfo/HeartBeatInfoStorage.java"},{"taskPath":":firebase-common:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/heartbeatinfo/HeartBeatInfoStorage.java uses unchecked or unsafe operations."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/heartbeatinfo/HeartBeatInfoStorage.java uses unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/heartbeatinfo/HeartBeatInfoStorage.java"},{"taskPath":":firebase-common:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"taskPath":":firebase-config:generateDackkaDocumentation"}],"problem":[{"text":"Invocation of Task.project at execution time has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This will fail with an error in Gradle 10.0."}],"contextualLabel":"Invocation of Task.project at execution time has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_7.html#task_project","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"invocation-of-task-project-at-execution-time","displayName":"Invocation of Task.project at execution time has been deprecated."}],"solutions":[[{"text":"This API is incompatible with the configuration cache, which will become the only mode supported by Gradle in a future release."}]]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-database/src/main/java/com/google/firebase/database/core/utilities/Utilities.java"},{"taskPath":":firebase-database:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use unchecked or unsafe operations."}],"contextualLabel":"Some input files use unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-database/src/main/java/com/google/firebase/database/core/utilities/Utilities.java"},{"taskPath":":firebase-database:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/model/CrashlyticsReport.java","line":246,"column":30,"length":14},{"taskPath":":firebase-crashlytics:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/model/CrashlyticsReport.java:246: warning: [AutoValueMutable] An @AutoValue property that is a primitive array returns the original array, which can therefore be modified by the caller. If this is OK, you can suppress this warning with @SuppressWarnings(\"mutable\"). Otherwise, you should replace the property with an immutable type, perhaps a simple wrapper around the original array.\n      public abstract byte[] getContents();\n                             ^"}],"contextualLabel":"[AutoValueMutable] An @AutoValue property that is a primitive array returns the original array, which can therefore be modified by the caller. If this is OK, you can suppress this warning with @SuppressWarnings(\"mutable\"). Otherwise, you should replace the property with an immutable type, perhaps a simple wrapper around the original array.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-proc-messager","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/CommonUtils.java"},{"taskPath":":firebase-crashlytics:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/CommonUtils.java"},{"taskPath":":firebase-crashlytics:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java","line":17,"column":18,"length":10},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java:17: warning: [deprecation] AsyncTask in android.os has been deprecated\nimport android.os.AsyncTask;\n                 ^"}],"contextualLabel":"android.os.AsyncTask in android.os has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java","line":417,"column":21,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java:417: warning: [deprecation] isPersistenceEnabled() in FirebaseFirestoreSettings has been deprecated\n        && (settings.isPersistenceEnabled()\n                    ^"}],"contextualLabel":"isPersistenceEnabled() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java","line":499,"column":18,"length":5},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java:499: warning: [deprecation] <TResult>call(Executor,Callable<TResult>) in Tasks has been deprecated\n            Tasks.call(\n                 ^\n  where TResult is a type-variable:\n    TResult extends Object declared in method <TResult>call(Executor,Callable<TResult>)"}],"contextualLabel":"<TResult>call(java.util.concurrent.Executor,java.util.concurrent.Callable<TResult>) in com.google.android.gms.tasks.Tasks has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/ComponentProvider.java","line":62,"column":20,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/ComponentProvider.java:62: warning: [deprecation] isPersistenceEnabled() in FirebaseFirestoreSettings has been deprecated\n    return settings.isPersistenceEnabled()\n                   ^"}],"contextualLabel":"isPersistenceEnabled() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/GrpcCallProvider.java","line":239,"column":14,"length":5},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/GrpcCallProvider.java:239: warning: [deprecation] <TResult>call(Executor,Callable<TResult>) in Tasks has been deprecated\n        Tasks.call(\n             ^\n  where TResult is a type-variable:\n    TResult extends Object declared in method <TResult>call(Executor,Callable<TResult>)"}],"contextualLabel":"<TResult>call(java.util.concurrent.Executor,java.util.concurrent.Callable<TResult>) in com.google.android.gms.tasks.Tasks has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirestoreRegistrar.java","line":56,"column":28,"length":9},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirestoreRegistrar.java:56: warning: [deprecation] optional(Class<?>) in Dependency has been deprecated\n            .add(Dependency.optional(FirebaseOptions.class))\n                           ^"}],"contextualLabel":"optional(java.lang.Class<?>) in com.google.firebase.components.Dependency has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/MemoryComponentProvider.java","line":83,"column":65,"length":18},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/MemoryComponentProvider.java:83: warning: [deprecation] getCacheSizeBytes() in FirebaseFirestoreSettings has been deprecated\n          LruGarbageCollector.Params.WithCacheSizeBytes(settings.getCacheSizeBytes());\n                                                                ^"}],"contextualLabel":"getCacheSizeBytes() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/SQLiteComponentProvider.java","line":49,"column":63,"length":18},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/SQLiteComponentProvider.java:49: warning: [deprecation] getCacheSizeBytes() in FirebaseFirestoreSettings has been deprecated\n        LruGarbageCollector.Params.WithCacheSizeBytes(settings.getCacheSizeBytes());\n                                                              ^"}],"contextualLabel":"getCacheSizeBytes() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java","line":44,"column":50,"length":9},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java:44: warning: [deprecation] AsyncTask in android.os has been deprecated\n          ASYNC_THREAD_POOL_MAXIMUM_CONCURRENCY, AsyncTask.THREAD_POOL_EXECUTOR);\n                                                 ^"}],"contextualLabel":"android.os.AsyncTask in android.os has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java","line":44,"column":59,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java:44: warning: [deprecation] THREAD_POOL_EXECUTOR in AsyncTask has been deprecated\n          ASYNC_THREAD_POOL_MAXIMUM_CONCURRENCY, AsyncTask.THREAD_POOL_EXECUTOR);\n                                                          ^"}],"contextualLabel":"THREAD_POOL_EXECUTOR in android.os.AsyncTask has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/FirestoreCallCredentials.java","line":52,"column":15,"length":24},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/FirestoreCallCredentials.java:52: warning: [deprecation] thisUsesUnstableApi() in CallCredentials has been deprecated\n  public void thisUsesUnstableApi() {}\n              ^"}],"contextualLabel":"thisUsesUnstableApi() in io.grpc.CallCredentials has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java","line":209,"column":16,"length":12},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java:209: warning: [deprecation] NetworkInfo in android.net has been deprecated\n    android.net.NetworkInfo networkInfo = conn.getActiveNetworkInfo();\n               ^"}],"contextualLabel":"android.net.NetworkInfo in android.net has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java","line":209,"column":47,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java:209: warning: [deprecation] getActiveNetworkInfo() in ConnectivityManager has been deprecated\n    android.net.NetworkInfo networkInfo = conn.getActiveNetworkInfo();\n                                              ^"}],"contextualLabel":"getActiveNetworkInfo() in android.net.ConnectivityManager has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java","line":210,"column":46,"length":12},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java:210: warning: [deprecation] isConnected() in NetworkInfo has been deprecated\n    return networkInfo != null && networkInfo.isConnected();\n                                             ^"}],"contextualLabel":"isConnected() in android.net.NetworkInfo has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/model/ObjectValue.java"},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use unchecked or unsafe operations."}],"contextualLabel":"Some input files use unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/model/ObjectValue.java"},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallationsException.java"},{"taskPath":":firebase-installations:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallationsException.java"},{"taskPath":":firebase-installations:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/ForegroundNotifier.java"},{"taskPath":":firebase-inappmessaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/ForegroundNotifier.java"},{"taskPath":":firebase-inappmessaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/DeveloperListenerManager.java"},{"taskPath":":firebase-inappmessaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/DeveloperListenerManager.java uses unchecked or unsafe operations."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/DeveloperListenerManager.java uses unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/DeveloperListenerManager.java"},{"taskPath":":firebase-inappmessaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"taskPath":":encoders:protoc-gen-firebase-encoders:shadowJar"}],"problem":[{"text":"The FileTreeElement.getMode() method has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The FileTreeElement.getMode() method has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#unix_file_permissions_deprecated","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-filetreeelement-getmode-method-has-been-deprecated","displayName":"The FileTreeElement.getMode() method has been deprecated."}],"solutions":[[{"text":"Please use the getPermissions() method instead."}]]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging-display/src/main/java/com/google/firebase/inappmessaging/display/internal/FiamWindowManager.java"},{"taskPath":":firebase-inappmessaging-display:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging-display/src/main/java/com/google/firebase/inappmessaging/display/internal/FiamWindowManager.java"},{"taskPath":":firebase-inappmessaging-display:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-ml-modeldownloader/src/main/java/com/google/firebase/ml/modeldownloader/ModelDownloaderComponent.java"},{"taskPath":":firebase-ml-modeldownloader:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-ml-modeldownloader/src/main/java/com/google/firebase/ml/modeldownloader/ModelDownloaderComponent.java"},{"taskPath":":firebase-ml-modeldownloader:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-messaging/src/main/java/com/google/firebase/messaging/SyncTask.java"},{"taskPath":":firebase-messaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-messaging/src/main/java/com/google/firebase/messaging/SyncTask.java"},{"taskPath":":firebase-messaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-perf/src/main/java/com/google/firebase/perf/metrics/AppStartTrace.java"},{"taskPath":":firebase-perf:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-perf/src/main/java/com/google/firebase/perf/metrics/AppStartTrace.java"},{"taskPath":":firebase-perf:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/NetworkClient.java"},{"taskPath":":appcheck:firebase-appcheck:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/NetworkClient.java uses or overrides a deprecated API."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/NetworkClient.java uses or overrides a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/NetworkClient.java"},{"taskPath":":appcheck:firebase-appcheck:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/StorageHelper.java"},{"taskPath":":appcheck:firebase-appcheck:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/StorageHelper.java uses unchecked or unsafe operations."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/StorageHelper.java uses unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/StorageHelper.java"},{"taskPath":":appcheck:firebase-appcheck:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug/src/main/java/com/google/firebase/appcheck/debug/internal/DebugAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-debug:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug/src/main/java/com/google/firebase/appcheck/debug/internal/DebugAppCheckProvider.java uses or overrides a deprecated API."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug/src/main/java/com/google/firebase/appcheck/debug/internal/DebugAppCheckProvider.java uses or overrides a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug/src/main/java/com/google/firebase/appcheck/debug/internal/DebugAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-debug:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug-testing/src/main/java/com/google/firebase/appcheck/debug/testing/DebugAppCheckTestHelper.java"},{"taskPath":":appcheck:firebase-appcheck-debug-testing:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug-testing/src/main/java/com/google/firebase/appcheck/debug/testing/DebugAppCheckTestHelper.java uses unchecked or unsafe operations."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug-testing/src/main/java/com/google/firebase/appcheck/debug/testing/DebugAppCheckTestHelper.java uses unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug-testing/src/main/java/com/google/firebase/appcheck/debug/testing/DebugAppCheckTestHelper.java"},{"taskPath":":appcheck:firebase-appcheck-debug-testing:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-playintegrity/src/main/java/com/google/firebase/appcheck/playintegrity/internal/PlayIntegrityAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-playintegrity:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-playintegrity/src/main/java/com/google/firebase/appcheck/playintegrity/internal/PlayIntegrityAppCheckProvider.java uses or overrides a deprecated API."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-playintegrity/src/main/java/com/google/firebase/appcheck/playintegrity/internal/PlayIntegrityAppCheckProvider.java uses or overrides a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-playintegrity/src/main/java/com/google/firebase/appcheck/playintegrity/internal/PlayIntegrityAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-playintegrity:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-recaptchaenterprise/src/main/java/com/google/firebase/appcheck/recaptchaenterprise/internal/RecaptchaEnterpriseAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-recaptchaenterprise:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-recaptchaenterprise/src/main/java/com/google/firebase/appcheck/recaptchaenterprise/internal/RecaptchaEnterpriseAppCheckProvider.java uses or overrides a deprecated API."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-recaptchaenterprise/src/main/java/com/google/firebase/appcheck/recaptchaenterprise/internal/RecaptchaEnterpriseAppCheckProvider.java uses or overrides a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-recaptchaenterprise/src/main/java/com/google/firebase/appcheck/recaptchaenterprise/internal/RecaptchaEnterpriseAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-recaptchaenterprise:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]}],"problemsReport":{"totalProblemCount":75,"buildName":"com.google.firebase","requestedTasks":"kotlindoc","documentationLink":"https://docs.gradle.org/8.13/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[{"problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"count":4}]}}
 // end-report-data
 );}
 </script>

@google-oss-bot
Copy link
Contributor

1 Warning
⚠️ Did you forget to add a changelog entry? (Add the 'no-changelog' label to the PR to silence this warning.)

Generated by 🚫 Danger

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Oct 16, 2025

@google-oss-bot
Copy link
Contributor

The public api surface has changed for the subproject firebase-ai:
error: Added class com.google.firebase.ai.type.AudioTranscriptionConfig [AddedClass]
error: Added method com.google.firebase.ai.type.LiveGenerationConfig.Builder.setInputAudioTranscript(com.google.firebase.ai.type.AudioTranscriptionConfig) [AddedMethod]
error: Added method com.google.firebase.ai.type.LiveGenerationConfig.Builder.setOutputAudioTranscript(com.google.firebase.ai.type.AudioTranscriptionConfig) [AddedMethod]
error: Added field com.google.firebase.ai.type.LiveGenerationConfig.Builder.inputAudioTranscription [AddedField]
error: Added field com.google.firebase.ai.type.LiveGenerationConfig.Builder.outputAudioTranscription [AddedField]
error: Removed constructor com.google.firebase.ai.type.LiveServerContent(com.google.firebase.ai.type.Content,boolean,boolean,boolean) [RemovedMethod]
error: Added constructor com.google.firebase.ai.type.LiveServerContent(com.google.firebase.ai.type.Content,boolean,boolean,boolean,com.google.firebase.ai.type.Transcription,com.google.firebase.ai.type.Transcription) [AddedMethod]
error: Added method com.google.firebase.ai.type.LiveServerContent.getInputTranscription() [AddedMethod]
error: Added method com.google.firebase.ai.type.LiveServerContent.getOutputTranscription() [AddedMethod]
error: Added class com.google.firebase.ai.type.Transcription [AddedClass]

Please update the api.txt files for the subprojects being affected by this change by running ./gradlew ${subproject}:generateApiTxtFile. Also perform a major/minor bump accordingly.

@google-oss-bot
Copy link
Contributor

The public api surface has changed for the subproject firebase-ai:
error: Added class com.google.firebase.ai.type.AudioTranscriptionConfig [AddedClass]
error: Added method com.google.firebase.ai.type.LiveGenerationConfig.Builder.setInputAudioTranscript(com.google.firebase.ai.type.AudioTranscriptionConfig) [AddedMethod]
error: Added method com.google.firebase.ai.type.LiveGenerationConfig.Builder.setOutputAudioTranscript(com.google.firebase.ai.type.AudioTranscriptionConfig) [AddedMethod]
error: Added field com.google.firebase.ai.type.LiveGenerationConfig.Builder.inputAudioTranscription [AddedField]
error: Added field com.google.firebase.ai.type.LiveGenerationConfig.Builder.outputAudioTranscription [AddedField]
error: Removed constructor com.google.firebase.ai.type.LiveServerContent(com.google.firebase.ai.type.Content,boolean,boolean,boolean) [RemovedMethod]
error: Added constructor com.google.firebase.ai.type.LiveServerContent(com.google.firebase.ai.type.Content,boolean,boolean,boolean,com.google.firebase.ai.type.Transcription,com.google.firebase.ai.type.Transcription) [AddedMethod]
error: Added method com.google.firebase.ai.type.LiveServerContent.getInputTranscription() [AddedMethod]
error: Added method com.google.firebase.ai.type.LiveServerContent.getOutputTranscription() [AddedMethod]
error: Added class com.google.firebase.ai.type.Transcription [AddedClass]

Please update the api.txt files for the subprojects being affected by this change by running ./gradlew ${subproject}:generateApiTxtFile. Also perform a major/minor bump accordingly.

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Oct 16, 2025

Size Report 1

Affected Products

  • firebase-ai

    TypeBase (264ebad)Merge (3d18df6)Diff
    aar1.02 MB1.04 MB+15.5 kB (+1.5%)
    apk (aggressive)1.69 MB1.69 MB+5.41 kB (+0.3%)
    apk (release)10.9 MB10.9 MB+13.5 kB (+0.1%)

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/DD6SMMh04i.html

@google-oss-bot
Copy link
Contributor

The public api surface has changed for the subproject firebase-ai:
error: Added class com.google.firebase.ai.type.AudioTranscriptionConfig [AddedClass]
error: Added method com.google.firebase.ai.type.LiveGenerationConfig.Builder.setInputAudioTranscript(com.google.firebase.ai.type.AudioTranscriptionConfig) [AddedMethod]
error: Added method com.google.firebase.ai.type.LiveGenerationConfig.Builder.setOutputAudioTranscript(com.google.firebase.ai.type.AudioTranscriptionConfig) [AddedMethod]
error: Added field com.google.firebase.ai.type.LiveGenerationConfig.Builder.inputAudioTranscription [AddedField]
error: Added field com.google.firebase.ai.type.LiveGenerationConfig.Builder.outputAudioTranscription [AddedField]
error: Removed constructor com.google.firebase.ai.type.LiveServerContent(com.google.firebase.ai.type.Content,boolean,boolean,boolean) [RemovedMethod]
error: Added constructor com.google.firebase.ai.type.LiveServerContent(com.google.firebase.ai.type.Content,boolean,boolean,boolean,com.google.firebase.ai.type.Transcription,com.google.firebase.ai.type.Transcription) [AddedMethod]
error: Added method com.google.firebase.ai.type.LiveServerContent.getInputTranscription() [AddedMethod]
error: Added method com.google.firebase.ai.type.LiveServerContent.getOutputTranscription() [AddedMethod]
error: Added class com.google.firebase.ai.type.Transcription [AddedClass]

Please update the api.txt files for the subprojects being affected by this change by running ./gradlew ${subproject}:generateApiTxtFile. Also perform a major/minor bump accordingly.

@rlazo
Copy link
Collaborator

rlazo commented Oct 16, 2025

/gemini review

@davidmotson davidmotson requested a review from rlazo October 16, 2025 22:32
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds support for audio transcription in the Live API. It introduces AudioTranscriptionConfig and Transcription types, and updates LiveGenerationConfig, LiveSession, and LiveServerMessage to handle transcription. The changes are mostly well-implemented, but I've identified a critical bug in LiveSession.kt where some startAudioConversation overloads could lead to infinite recursion. Additionally, there are some minor typos in method names within LiveGenerationConfig.kt and the corresponding api.txt file that should be corrected for consistency.

@davidmotson
Copy link
Collaborator Author

/gemini review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces transcription capabilities to the Live API, a significant and well-implemented feature. The changes include adding AudioTranscriptionConfig and the Transcription type, along with new overloads for startAudioConversation in both LiveSession and LiveSessionFutures to handle a transcriptHandler callback. The internal messaging system has also been updated to support transcription configuration and data. The overall implementation is solid and aligns with the existing codebase patterns. I have one minor suggestion to improve documentation clarity.

@davidmotson davidmotson enabled auto-merge (squash) October 16, 2025 23:58
@rlazo rlazo changed the title Add LiveAPI Transcription [AI] Add LiveAPI Transcription Oct 17, 2025
@davidmotson davidmotson requested a review from rlazo October 17, 2025 18:03
@davidmotson davidmotson merged commit 1c862ec into main Oct 17, 2025
29 of 30 checks passed
@davidmotson davidmotson deleted the davidmotson.bidi_transcription branch October 17, 2025 19:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants