diff --git a/config.json b/config.json
index 96c59e714..16f59597a 100644
--- a/config.json
+++ b/config.json
@@ -4128,6 +4128,22 @@
"nugetId": "Xamarin.Google.MLKit.FaceDetection",
"type": "xbd"
},
+ {
+ "groupId": "com.google.mlkit",
+ "artifactId": "genai-common",
+ "version": "1.0.0-beta2",
+ "nugetVersion": "1.0.0.0-beta2",
+ "nugetId": "Xamarin.Google.MLKit.GenAI.Common",
+ "type": "xbd"
+ },
+ {
+ "groupId": "com.google.mlkit",
+ "artifactId": "genai-prompt",
+ "version": "1.0.0-alpha1",
+ "nugetVersion": "1.0.0.0-alpha1",
+ "nugetId": "Xamarin.Google.MLKit.GenAI.Prompt",
+ "type": "xbd"
+ },
{
"groupId": "com.google.mlkit",
"artifactId": "image-labeling",
diff --git a/published-namespaces.txt b/published-namespaces.txt
index 4b72ac1d7..d762168db 100644
--- a/published-namespaces.txt
+++ b/published-namespaces.txt
@@ -1148,6 +1148,10 @@ Google.Internal.Firebase.InAppMessaging.V1.SdkServing
Google.Logging.Type
Google.Longrunning
Google.MediaPipe.Tasks.GenAI.LlmInference
+Google.MLKit.GenAI.Common
+Google.MLKit.GenAI.Common.Audio
+Google.MLKit.GenAI.Prompt
+Google.MLKit.GenAI.Prompt.Java
Google.MLKit.Vision.Digitalink.Common
Google.MLKit.Vision.Digitalink.Common.Downloading
Google.MLKit.Vision.Digitalink.Common.Internal
diff --git a/source/com.google.mlkit/genai-common/PublicAPI/PublicAPI.Shipped.txt b/source/com.google.mlkit/genai-common/PublicAPI/PublicAPI.Shipped.txt
new file mode 100644
index 000000000..7dc5c5811
--- /dev/null
+++ b/source/com.google.mlkit/genai-common/PublicAPI/PublicAPI.Shipped.txt
@@ -0,0 +1 @@
+#nullable enable
diff --git a/source/com.google.mlkit/genai-common/PublicAPI/PublicAPI.Unshipped.txt b/source/com.google.mlkit/genai-common/PublicAPI/PublicAPI.Unshipped.txt
new file mode 100644
index 000000000..445231fd3
--- /dev/null
+++ b/source/com.google.mlkit/genai-common/PublicAPI/PublicAPI.Unshipped.txt
@@ -0,0 +1,87 @@
+#nullable enable
+Google.MLKit.GenAI.Common.Audio.AudioSource
+Google.MLKit.GenAI.Common.Audio.AudioSource.AudioSource(nint javaReference, Android.Runtime.JniHandleOwnership transfer) -> void
+Google.MLKit.GenAI.Common.BaseOptions
+Google.MLKit.GenAI.Common.BaseOptions.BaseOptions() -> void
+Google.MLKit.GenAI.Common.BaseOptions.BaseOptions(nint javaReference, Android.Runtime.JniHandleOwnership transfer) -> void
+Google.MLKit.GenAI.Common.BaseRequest
+Google.MLKit.GenAI.Common.BaseRequest.BaseRequest() -> void
+Google.MLKit.GenAI.Common.BaseRequest.BaseRequest(nint javaReference, Android.Runtime.JniHandleOwnership transfer) -> void
+Google.MLKit.GenAI.Common.BaseRequest.IOverrideRequestKind
+Google.MLKit.GenAI.Common.DownloadStatus
+Google.MLKit.GenAI.Common.DownloadStatus.DownloadCompleted
+Google.MLKit.GenAI.Common.DownloadStatus.DownloadFailed
+Google.MLKit.GenAI.Common.DownloadStatus.DownloadFailed.DownloadFailed(Google.MLKit.GenAI.Common.GenAIException! e) -> void
+Google.MLKit.GenAI.Common.DownloadStatus.DownloadFailed.Exception.get -> Google.MLKit.GenAI.Common.GenAIException!
+Google.MLKit.GenAI.Common.DownloadStatus.DownloadProgress
+Google.MLKit.GenAI.Common.DownloadStatus.DownloadProgress.DownloadProgress(long totalBytesDownloaded) -> void
+Google.MLKit.GenAI.Common.DownloadStatus.DownloadProgress.TotalBytesDownloaded.get -> long
+Google.MLKit.GenAI.Common.DownloadStatus.DownloadStarted
+Google.MLKit.GenAI.Common.DownloadStatus.DownloadStarted.BytesToDownload.get -> long
+Google.MLKit.GenAI.Common.DownloadStatus.DownloadStarted.DownloadStarted(long bytesToDownload) -> void
+Google.MLKit.GenAI.Common.DownloadStatus.DownloadStatus(nint javaReference, Android.Runtime.JniHandleOwnership transfer) -> void
+Google.MLKit.GenAI.Common.FeatureStatus
+Google.MLKit.GenAI.Common.FeatureStatusAttribute
+Google.MLKit.GenAI.Common.FeatureStatusAttribute.FeatureStatusAttribute() -> void
+Google.MLKit.GenAI.Common.FeatureStatusConsts
+Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.AICoreIncompatible = -101 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.BackgroundUseBlocked = 30 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.Busy = 9 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.CacheProcessingError = -103 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.Cancelled = 7 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.InvalidInputImage = -102 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.NeedsSystemUpdate = 604 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.NotAvailable = 8 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.NotEnoughDiskSpace = 501 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.PerAppBatteryUseQuotaExceeded = 27 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.RequestProcessingError = 4 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.RequestTooLarge = 12 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.RequestTooSmall = -100 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.ResponseGenerationError = 15 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.ResponseProcessingError = 11 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIErrorCode.Unknown = 0 -> Google.MLKit.GenAI.Common.GenAIErrorCode
+Google.MLKit.GenAI.Common.GenAIException
+Google.MLKit.GenAI.Common.GenAIException.GenAIException(Java.Lang.Throwable? cause, Google.MLKit.GenAI.Common.GenAIErrorCode errorCode) -> void
+Google.MLKit.GenAI.Common.GenAIException.GenAIException(nint javaReference, Android.Runtime.JniHandleOwnership transfer) -> void
+Google.MLKit.GenAI.Common.GenAIException.GenAIException(string! message, Java.Lang.Throwable? cause, Google.MLKit.GenAI.Common.GenAIErrorCode errorCode) -> void
+Google.MLKit.GenAI.Common.IDownloadCallback
+Google.MLKit.GenAI.Common.IDownloadCallback.OnDownloadCompleted() -> void
+Google.MLKit.GenAI.Common.IDownloadCallback.OnDownloadFailed(Google.MLKit.GenAI.Common.GenAIException! p0) -> void
+Google.MLKit.GenAI.Common.IDownloadCallback.OnDownloadProgress(long p0) -> void
+Google.MLKit.GenAI.Common.IDownloadCallback.OnDownloadStarted(long p0) -> void
+Google.MLKit.GenAI.Common.IFeatureStatus
+Google.MLKit.GenAI.Common.IStreamingCallback
+Google.MLKit.GenAI.Common.IStreamingCallback.OnNewText(string! p0) -> void
+abstract Google.MLKit.GenAI.Common.BaseOptions.TargetVersion.get -> Java.Lang.Integer?
+abstract Google.MLKit.GenAI.Common.BaseRequest.OverrideRequestKind.get -> Java.Lang.Integer?
+const Google.MLKit.GenAI.Common.FeatureStatus.Available = 3 -> int
+const Google.MLKit.GenAI.Common.FeatureStatus.Downloadable = 1 -> int
+const Google.MLKit.GenAI.Common.FeatureStatus.Downloading = 2 -> int
+const Google.MLKit.GenAI.Common.FeatureStatus.Unavailable = 0 -> int
+override Google.MLKit.GenAI.Common.Audio.AudioSource.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Common.Audio.AudioSource.ThresholdClass.get -> nint
+override Google.MLKit.GenAI.Common.Audio.AudioSource.ThresholdType.get -> System.Type!
+override Google.MLKit.GenAI.Common.BaseOptions.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Common.BaseOptions.ThresholdClass.get -> nint
+override Google.MLKit.GenAI.Common.BaseOptions.ThresholdType.get -> System.Type!
+override Google.MLKit.GenAI.Common.BaseRequest.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Common.BaseRequest.ThresholdClass.get -> nint
+override Google.MLKit.GenAI.Common.BaseRequest.ThresholdType.get -> System.Type!
+override Google.MLKit.GenAI.Common.DownloadStatus.DownloadCompleted.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Common.DownloadStatus.DownloadFailed.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Common.DownloadStatus.DownloadProgress.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Common.DownloadStatus.DownloadStarted.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Common.DownloadStatus.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Common.DownloadStatus.ThresholdClass.get -> nint
+override Google.MLKit.GenAI.Common.DownloadStatus.ThresholdType.get -> System.Type!
+override Google.MLKit.GenAI.Common.GenAIException.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Common.GenAIException.ThresholdClass.get -> nint
+override Google.MLKit.GenAI.Common.GenAIException.ThresholdType.get -> System.Type!
+static Google.MLKit.GenAI.Common.Audio.AudioSource.FromMic() -> Google.MLKit.GenAI.Common.Audio.AudioSource!
+static Google.MLKit.GenAI.Common.Audio.AudioSource.FromPfd(Android.OS.ParcelFileDescriptor! pfd) -> Google.MLKit.GenAI.Common.Audio.AudioSource!
+static Google.MLKit.GenAI.Common.DownloadStatus.DownloadCompleted.Instance.get -> Google.MLKit.GenAI.Common.DownloadStatus.DownloadCompleted!
+virtual Google.MLKit.GenAI.Common.Audio.AudioSource.Pfd.get -> Android.OS.ParcelFileDescriptor?
+virtual Google.MLKit.GenAI.Common.BaseOptions.TargetVersionOrDefault.get -> int
+virtual Google.MLKit.GenAI.Common.BaseRequest.OverrideRequestKindOrDefault.get -> int
+virtual Google.MLKit.GenAI.Common.GenAIException.ErrorCode.get -> Google.MLKit.GenAI.Common.GenAIErrorCode
diff --git a/source/com.google.mlkit/genai-common/Transforms/EnumFields.xml b/source/com.google.mlkit/genai-common/Transforms/EnumFields.xml
new file mode 100644
index 000000000..90d8cfb0b
--- /dev/null
+++ b/source/com.google.mlkit/genai-common/Transforms/EnumFields.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/com.google.mlkit/genai-common/Transforms/EnumMethods.xml b/source/com.google.mlkit/genai-common/Transforms/EnumMethods.xml
new file mode 100644
index 000000000..6352d862e
--- /dev/null
+++ b/source/com.google.mlkit/genai-common/Transforms/EnumMethods.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/source/com.google.mlkit/genai-common/Transforms/Metadata.xml b/source/com.google.mlkit/genai-common/Transforms/Metadata.xml
new file mode 100644
index 000000000..11b0795fd
--- /dev/null
+++ b/source/com.google.mlkit/genai-common/Transforms/Metadata.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GetException
+
+
+ GenAIException
+
+
diff --git a/source/com.google.mlkit/genai-prompt/PublicAPI/PublicAPI.Shipped.txt b/source/com.google.mlkit/genai-prompt/PublicAPI/PublicAPI.Shipped.txt
new file mode 100644
index 000000000..7dc5c5811
--- /dev/null
+++ b/source/com.google.mlkit/genai-prompt/PublicAPI/PublicAPI.Shipped.txt
@@ -0,0 +1 @@
+#nullable enable
diff --git a/source/com.google.mlkit/genai-prompt/PublicAPI/PublicAPI.Unshipped.txt b/source/com.google.mlkit/genai-prompt/PublicAPI/PublicAPI.Unshipped.txt
new file mode 100644
index 000000000..8ed77b055
--- /dev/null
+++ b/source/com.google.mlkit/genai-prompt/PublicAPI/PublicAPI.Unshipped.txt
@@ -0,0 +1,112 @@
+#nullable enable
+Google.MLKit.GenAI.Prompt.Candidate
+Google.MLKit.GenAI.Prompt.Candidate.FinishReason.get -> Google.MLKit.GenAI.Prompt.CandidateFinishReason
+Google.MLKit.GenAI.Prompt.Candidate.Text.get -> string!
+Google.MLKit.GenAI.Prompt.CandidateFinishReason
+Google.MLKit.GenAI.Prompt.CandidateFinishReason.MaxTokens = 1 -> Google.MLKit.GenAI.Prompt.CandidateFinishReason
+Google.MLKit.GenAI.Prompt.CandidateFinishReason.Other = -100 -> Google.MLKit.GenAI.Prompt.CandidateFinishReason
+Google.MLKit.GenAI.Prompt.CandidateFinishReason.Stop = 0 -> Google.MLKit.GenAI.Prompt.CandidateFinishReason
+Google.MLKit.GenAI.Prompt.CountTokensResponse
+Google.MLKit.GenAI.Prompt.CountTokensResponse.CountTokensResponse(int totalTokens) -> void
+Google.MLKit.GenAI.Prompt.CountTokensResponse.TotalTokens.get -> int
+Google.MLKit.GenAI.Prompt.GenerateContentRequest
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.Build() -> Google.MLKit.GenAI.Prompt.GenerateContentRequest!
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.Builder(Google.MLKit.GenAI.Prompt.ImagePart! image, Google.MLKit.GenAI.Prompt.TextPart! text) -> void
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.Builder(Google.MLKit.GenAI.Prompt.TextPart! text) -> void
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.CandidateCount.get -> Java.Lang.Integer?
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.CandidateCount.set -> void
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.MaxOutputTokens.get -> Java.Lang.Integer?
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.MaxOutputTokens.set -> void
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.PromptPrefix.get -> Google.MLKit.GenAI.Prompt.PromptPrefix?
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.PromptPrefix.set -> void
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.Seed.get -> Java.Lang.Integer?
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.Seed.set -> void
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.Temperature.get -> Java.Lang.Float?
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.Temperature.set -> void
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.TopK.get -> Java.Lang.Integer?
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.TopK.set -> void
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.CandidateCount.get -> int
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Image.get -> Google.MLKit.GenAI.Prompt.ImagePart?
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.MaxOutputTokens.get -> int
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.PromptPrefix.get -> Google.MLKit.GenAI.Prompt.PromptPrefix?
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Seed.get -> int
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Temperature.get -> float
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.Text.get -> Google.MLKit.GenAI.Prompt.TextPart!
+Google.MLKit.GenAI.Prompt.GenerateContentRequest.TopK.get -> int
+Google.MLKit.GenAI.Prompt.GenerateContentResponse
+Google.MLKit.GenAI.Prompt.GenerateContentResponse.Candidates.get -> System.Collections.Generic.IList!
+Google.MLKit.GenAI.Prompt.Generation
+Google.MLKit.GenAI.Prompt.Generation.Client.get -> Google.MLKit.GenAI.Prompt.IGenerativeModel!
+Google.MLKit.GenAI.Prompt.Generation.GetClient(Google.MLKit.GenAI.Prompt.GenerationConfig! options) -> Google.MLKit.GenAI.Prompt.IGenerativeModel!
+Google.MLKit.GenAI.Prompt.GenerationConfig
+Google.MLKit.GenAI.Prompt.GenerationConfig.Builder
+Google.MLKit.GenAI.Prompt.GenerationConfig.Builder.Build() -> Google.MLKit.GenAI.Prompt.GenerationConfig!
+Google.MLKit.GenAI.Prompt.GenerationConfig.Builder.Builder() -> void
+Google.MLKit.GenAI.Prompt.GenerationConfig.Builder.WorkerExecutor.get -> Java.Util.Concurrent.IExecutorService?
+Google.MLKit.GenAI.Prompt.GenerationConfig.Builder.WorkerExecutor.set -> void
+Google.MLKit.GenAI.Prompt.GenerationConfig.WorkerExecutor.get -> Java.Util.Concurrent.IExecutorService?
+Google.MLKit.GenAI.Prompt.IGenerativeModel
+Google.MLKit.GenAI.Prompt.IGenerativeModel.CheckStatus(Kotlin.Coroutines.IContinuation! p0) -> Java.Lang.Object?
+Google.MLKit.GenAI.Prompt.IGenerativeModel.ClearCaches(Kotlin.Coroutines.IContinuation! p0) -> Java.Lang.Object?
+Google.MLKit.GenAI.Prompt.IGenerativeModel.Close() -> void
+Google.MLKit.GenAI.Prompt.IGenerativeModel.CountTokens(Google.MLKit.GenAI.Prompt.GenerateContentRequest! request, Kotlin.Coroutines.IContinuation! p1) -> Java.Lang.Object?
+Google.MLKit.GenAI.Prompt.IGenerativeModel.Download() -> Xamarin.KotlinX.Coroutines.Flow.IFlow!
+Google.MLKit.GenAI.Prompt.IGenerativeModel.GenerateContent(Google.MLKit.GenAI.Prompt.GenerateContentRequest! request, Google.MLKit.GenAI.Common.IStreamingCallback! streamingCallback, Kotlin.Coroutines.IContinuation! p2) -> Java.Lang.Object?
+Google.MLKit.GenAI.Prompt.IGenerativeModel.GenerateContent(Google.MLKit.GenAI.Prompt.GenerateContentRequest! request, Kotlin.Coroutines.IContinuation! p1) -> Java.Lang.Object?
+Google.MLKit.GenAI.Prompt.IGenerativeModel.GenerateContent(string! prompt, Google.MLKit.GenAI.Common.IStreamingCallback! streamingCallback, Kotlin.Coroutines.IContinuation! p2) -> Java.Lang.Object?
+Google.MLKit.GenAI.Prompt.IGenerativeModel.GenerateContent(string! prompt, Kotlin.Coroutines.IContinuation! p1) -> Java.Lang.Object?
+Google.MLKit.GenAI.Prompt.IGenerativeModel.GenerateContentStream(Google.MLKit.GenAI.Prompt.GenerateContentRequest! request) -> Xamarin.KotlinX.Coroutines.Flow.IFlow!
+Google.MLKit.GenAI.Prompt.IGenerativeModel.GenerateContentStream(string! prompt) -> Xamarin.KotlinX.Coroutines.Flow.IFlow!
+Google.MLKit.GenAI.Prompt.IGenerativeModel.GetBaseModelName(Kotlin.Coroutines.IContinuation! p0) -> Java.Lang.Object?
+Google.MLKit.GenAI.Prompt.IGenerativeModel.GetTokenLimit(Kotlin.Coroutines.IContinuation! p0) -> Java.Lang.Object?
+Google.MLKit.GenAI.Prompt.IGenerativeModel.Warmup(Kotlin.Coroutines.IContinuation! p0) -> Java.Lang.Object?
+Google.MLKit.GenAI.Prompt.ImagePart
+Google.MLKit.GenAI.Prompt.ImagePart.Bitmap.get -> Android.Graphics.Bitmap!
+Google.MLKit.GenAI.Prompt.ImagePart.Height.get -> int
+Google.MLKit.GenAI.Prompt.ImagePart.ImagePart(Android.Graphics.Bitmap! bitmap) -> void
+Google.MLKit.GenAI.Prompt.ImagePart.ImagePart(Android.Net.Uri! uri) -> void
+Google.MLKit.GenAI.Prompt.ImagePart.ImagePart(byte[]! blob) -> void
+Google.MLKit.GenAI.Prompt.ImagePart.Width.get -> int
+Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures
+Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.GenerativeModelFutures() -> void
+Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.GenerativeModelFutures(nint javaReference, Android.Runtime.JniHandleOwnership transfer) -> void
+Google.MLKit.GenAI.Prompt.Part
+Google.MLKit.GenAI.Prompt.Part.Part(nint javaReference, Android.Runtime.JniHandleOwnership transfer) -> void
+Google.MLKit.GenAI.Prompt.PromptPrefix
+Google.MLKit.GenAI.Prompt.PromptPrefix.PromptPrefix(string! textString) -> void
+Google.MLKit.GenAI.Prompt.PromptPrefix.TextString.get -> string!
+Google.MLKit.GenAI.Prompt.TextPart
+Google.MLKit.GenAI.Prompt.TextPart.TextPart(string! textString) -> void
+Google.MLKit.GenAI.Prompt.TextPart.TextString.get -> string!
+abstract Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.BaseModelName.get -> Google.Common.Util.Concurrent.IListenableFuture!
+abstract Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.CheckStatus() -> Google.Common.Util.Concurrent.IListenableFuture!
+abstract Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.ClearCaches() -> Google.Common.Util.Concurrent.IListenableFuture!
+abstract Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.CountTokens(Google.MLKit.GenAI.Prompt.GenerateContentRequest! request) -> Google.Common.Util.Concurrent.IListenableFuture!
+abstract Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.Download(Google.MLKit.GenAI.Common.IDownloadCallback! callback) -> Google.Common.Util.Concurrent.IListenableFuture!
+abstract Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.GenerateContent(Google.MLKit.GenAI.Prompt.GenerateContentRequest! request) -> Google.Common.Util.Concurrent.IListenableFuture!
+abstract Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.GenerateContent(Google.MLKit.GenAI.Prompt.GenerateContentRequest! request, Google.MLKit.GenAI.Common.IStreamingCallback! callback) -> Google.Common.Util.Concurrent.IListenableFuture!
+abstract Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.GenerateContent(string! prompt) -> Google.Common.Util.Concurrent.IListenableFuture!
+abstract Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.GenerateContent(string! prompt, Google.MLKit.GenAI.Common.IStreamingCallback! callback) -> Google.Common.Util.Concurrent.IListenableFuture!
+abstract Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.GenerativeModel.get -> Google.MLKit.GenAI.Prompt.IGenerativeModel!
+abstract Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.TokenLimit.get -> Google.Common.Util.Concurrent.IListenableFuture!
+abstract Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.Warmup() -> Google.Common.Util.Concurrent.IListenableFuture!
+override Google.MLKit.GenAI.Prompt.Candidate.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Prompt.CountTokensResponse.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Prompt.GenerateContentRequest.Builder.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Prompt.GenerateContentRequest.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Prompt.GenerateContentResponse.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Prompt.Generation.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Prompt.GenerationConfig.Builder.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Prompt.GenerationConfig.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Prompt.ImagePart.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.ThresholdClass.get -> nint
+override Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.ThresholdType.get -> System.Type!
+override Google.MLKit.GenAI.Prompt.Part.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Prompt.Part.ThresholdClass.get -> nint
+override Google.MLKit.GenAI.Prompt.Part.ThresholdType.get -> System.Type!
+override Google.MLKit.GenAI.Prompt.PromptPrefix.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+override Google.MLKit.GenAI.Prompt.TextPart.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
+static Google.MLKit.GenAI.Prompt.Generation.Instance.get -> Google.MLKit.GenAI.Prompt.Generation!
+static Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures.From(Google.MLKit.GenAI.Prompt.IGenerativeModel! generativeModel) -> Google.MLKit.GenAI.Prompt.Java.GenerativeModelFutures!
diff --git a/source/com.google.mlkit/genai-prompt/Transforms/EnumFields.xml b/source/com.google.mlkit/genai-prompt/Transforms/EnumFields.xml
new file mode 100644
index 000000000..0a520149e
--- /dev/null
+++ b/source/com.google.mlkit/genai-prompt/Transforms/EnumFields.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/source/com.google.mlkit/genai-prompt/Transforms/EnumMethods.xml b/source/com.google.mlkit/genai-prompt/Transforms/EnumMethods.xml
new file mode 100644
index 000000000..b16f21dba
--- /dev/null
+++ b/source/com.google.mlkit/genai-prompt/Transforms/EnumMethods.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/source/com.google.mlkit/genai-prompt/Transforms/Metadata.xml b/source/com.google.mlkit/genai-prompt/Transforms/Metadata.xml
new file mode 100644
index 000000000..724402cf9
--- /dev/null
+++ b/source/com.google.mlkit/genai-prompt/Transforms/Metadata.xml
@@ -0,0 +1,28 @@
+
+
+
+
+ CompanionStatic
+
+ DefaultStatic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+