GoogleAIPlugin: {
    embedder(
        name: string,
        config?: {
            apiKey?: string;
            outputDimensionality?: number;
            taskType?:
                | "RETRIEVAL_DOCUMENT"
                | "RETRIEVAL_QUERY"
                | "SEMANTIC_SIMILARITY"
                | "CLASSIFICATION"
                | "CLUSTERING";
            title?: string;
            version?: string;
        },
    ): EmbedderReference<
        z.ZodObject<
            {
                apiKey: z.ZodOptional<z.ZodString>;
                outputDimensionality: z.ZodOptional<z.ZodNumber>;
                taskType: z.ZodOptional<
                    z.ZodEnum<
                        [
                            "RETRIEVAL_DOCUMENT",
                            "RETRIEVAL_QUERY",
                            "SEMANTIC_SIMILARITY",
                            "CLASSIFICATION",
                            "CLUSTERING",
                        ],
                    >,
                >;
                title: z.ZodOptional<z.ZodString>;
                version: z.ZodOptional<z.ZodString>;
            },
            "strip",
            z.ZodTypeAny,
            {
                apiKey?: string;
                outputDimensionality?: number;
                taskType?: | "RETRIEVAL_DOCUMENT"
                | "RETRIEVAL_QUERY"
                | "SEMANTIC_SIMILARITY"
                | "CLASSIFICATION"
                | "CLUSTERING";
                title?: string;
                version?: string;
            },
            {
                apiKey?: string;
                outputDimensionality?: number;
                taskType?: | "RETRIEVAL_DOCUMENT"
                | "RETRIEVAL_QUERY"
                | "SEMANTIC_SIMILARITY"
                | "CLASSIFICATION"
                | "CLUSTERING";
                title?: string;
                version?: string;
            },
        >,
    >;
    model(
        name: GeminiVersionString,
        config?: z.objectOutputType<
            z.objectUtil.extendShape<
                {
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    topP: z.ZodOptional<z.ZodNumber>;
                    version: z.ZodOptional<z.ZodString>;
                },
                {
                    apiKey: z.ZodOptional<z.ZodString>;
                    codeExecution: z.ZodOptional<
                        z.ZodUnion<
                            [z.ZodBoolean, z.ZodObject<{}, "strict", z.ZodTypeAny, {}, {}>],
                        >,
                    >;
                    contextCache: z.ZodOptional<z.ZodBoolean>;
                    functionCallingConfig: z.ZodOptional<
                        z.ZodObject<
                            {
                                allowedFunctionNames: z.ZodOptional<
                                    z.ZodArray<z.ZodString, "many">,
                                >;
                                mode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                                allowedFunctionNames?: string[];
                                mode?: "ANY"
                                | "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "NONE";
                            },
                            {
                                allowedFunctionNames?: string[];
                                mode?: "ANY"
                                | "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "NONE";
                            },
                        >,
                    >;
                    responseModalities: z.ZodOptional<
                        z.ZodArray<z.ZodEnum<["TEXT", "IMAGE", "AUDIO"]>, "many">,
                    >;
                    safetySettings: z.ZodOptional<
                        z.ZodArray<
                            z.ZodObject<
                                {
                                    category: z.ZodEnum<[(...), (...), (...), (...), (...), (...)]>;
                                    threshold: z.ZodEnum<[(...), (...), (...), (...)]>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_CIVIC_INTEGRITY";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_CIVIC_INTEGRITY";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                            >,
                            "many",
                        >,
                    >;
                },
            >,
            z.ZodTypeAny,
            "passthrough",
        >,
    ): ModelReference<
        z.ZodObject<
            z.objectUtil.extendShape<
                {
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    topP: z.ZodOptional<z.ZodNumber>;
                    version: z.ZodOptional<z.ZodString>;
                },
                {
                    apiKey: z.ZodOptional<z.ZodString>;
                    codeExecution: z.ZodOptional<
                        z.ZodUnion<
                            [z.ZodBoolean, z.ZodObject<{}, "strict", z.ZodTypeAny, {}, {}>],
                        >,
                    >;
                    contextCache: z.ZodOptional<z.ZodBoolean>;
                    functionCallingConfig: z.ZodOptional<
                        z.ZodObject<
                            {
                                allowedFunctionNames: z.ZodOptional<
                                    z.ZodArray<z.ZodString, "many">,
                                >;
                                mode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                                allowedFunctionNames?: string[];
                                mode?: "ANY"
                                | "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "NONE";
                            },
                            {
                                allowedFunctionNames?: string[];
                                mode?: "ANY"
                                | "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "NONE";
                            },
                        >,
                    >;
                    responseModalities: z.ZodOptional<
                        z.ZodArray<z.ZodEnum<["TEXT", "IMAGE", "AUDIO"]>, "many">,
                    >;
                    safetySettings: z.ZodOptional<
                        z.ZodArray<
                            z.ZodObject<
                                {
                                    category: z.ZodEnum<[(...), (...), (...), (...), (...), (...)]>;
                                    threshold: z.ZodEnum<[(...), (...), (...), (...)]>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_CIVIC_INTEGRITY";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_CIVIC_INTEGRITY";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                            >,
                            "many",
                        >,
                    >;
                },
            >,
            "passthrough",
            z.ZodTypeAny,
            z.objectOutputType<
                z.objectUtil.extendShape<
                    {
                        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                        temperature: z.ZodOptional<z.ZodNumber>;
                        topK: z.ZodOptional<z.ZodNumber>;
                        topP: z.ZodOptional<z.ZodNumber>;
                        version: z.ZodOptional<z.ZodString>;
                    },
                    {
                        apiKey: z.ZodOptional<z.ZodString>;
                        codeExecution: z.ZodOptional<
                            z.ZodUnion<
                                [z.ZodBoolean, z.ZodObject<{}, "strict", z.ZodTypeAny, {}, {}>],
                            >,
                        >;
                        contextCache: z.ZodOptional<z.ZodBoolean>;
                        functionCallingConfig: z.ZodOptional<
                            z.ZodObject<
                                {
                                    allowedFunctionNames: z.ZodOptional<z.ZodArray<(...), (...)>>;
                                    mode: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    allowedFunctionNames?: (...)[];
                                    mode?: "ANY" | "MODE_UNSPECIFIED" | "AUTO" | "NONE";
                                },
                                {
                                    allowedFunctionNames?: (...)[];
                                    mode?: "ANY" | "MODE_UNSPECIFIED" | "AUTO" | "NONE";
                                },
                            >,
                        >;
                        responseModalities: z.ZodOptional<
                            z.ZodArray<z.ZodEnum<["TEXT", "IMAGE", "AUDIO"]>, "many">,
                        >;
                        safetySettings: z.ZodOptional<
                            z.ZodArray<
                                z.ZodObject<
                                    { category: z.ZodEnum<(...)>; threshold: z.ZodEnum<(...)> },
                                    "strip",
                                    z.ZodTypeAny,
                                    {
                                        category: (...) | (...) | (...) | (...) | (...) | (...);
                                        threshold: (...) | (...) | (...) | (...);
                                    },
                                    {
                                        category: (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        threshold: (...) | (...) | (...) | (...);
                                    },
                                >,
                                "many",
                            >,
                        >;
                    },
                >,
                z.ZodTypeAny,
                "passthrough",
            >,
            z.objectInputType<
                z.objectUtil.extendShape<
                    {
                        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                        temperature: z.ZodOptional<z.ZodNumber>;
                        topK: z.ZodOptional<z.ZodNumber>;
                        topP: z.ZodOptional<z.ZodNumber>;
                        version: z.ZodOptional<z.ZodString>;
                    },
                    {
                        apiKey: z.ZodOptional<z.ZodString>;
                        codeExecution: z.ZodOptional<
                            z.ZodUnion<
                                [z.ZodBoolean, z.ZodObject<{}, "strict", z.ZodTypeAny, {}, {}>],
                            >,
                        >;
                        contextCache: z.ZodOptional<z.ZodBoolean>;
                        functionCallingConfig: z.ZodOptional<
                            z.ZodObject<
                                {
                                    allowedFunctionNames: z.ZodOptional<z.ZodArray<(...), (...)>>;
                                    mode: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    allowedFunctionNames?: (...)[];
                                    mode?: "ANY" | "MODE_UNSPECIFIED" | "AUTO" | "NONE";
                                },
                                {
                                    allowedFunctionNames?: (...)[];
                                    mode?: "ANY" | "MODE_UNSPECIFIED" | "AUTO" | "NONE";
                                },
                            >,
                        >;
                        responseModalities: z.ZodOptional<
                            z.ZodArray<z.ZodEnum<["TEXT", "IMAGE", "AUDIO"]>, "many">,
                        >;
                        safetySettings: z.ZodOptional<
                            z.ZodArray<
                                z.ZodObject<
                                    { category: z.ZodEnum<(...)>; threshold: z.ZodEnum<(...)> },
                                    "strip",
                                    z.ZodTypeAny,
                                    {
                                        category: (...) | (...) | (...) | (...) | (...) | (...);
                                        threshold: (...) | (...) | (...) | (...);
                                    },
                                    {
                                        category: (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        threshold: (...) | (...) | (...) | (...);
                                    },
                                >,
                                "many",
                            >,
                        >;
                    },
                >,
                z.ZodTypeAny,
                "passthrough",
            >,
        >,
    >;
    (params?: PluginOptions): GenkitPlugin;
}

Type declaration

  • embedder:function
    • Parameters

      • name: string
      • Optionalconfig: {
            apiKey?: string;
            outputDimensionality?: number;
            taskType?:
                | "RETRIEVAL_DOCUMENT"
                | "RETRIEVAL_QUERY"
                | "SEMANTIC_SIMILARITY"
                | "CLASSIFICATION"
                | "CLUSTERING";
            title?: string;
            version?: string;
        }
        • OptionalapiKey?: string

          Override the API key provided at plugin initialization.

        • OptionaloutputDimensionality?: number

          The outputDimensionality parameter allows you to specify the dimensionality of the embedding output. By default, the model generates embeddings with 768 dimensions. Models such as text-embedding-004, text-embedding-005, and text-multilingual-embedding-002 allow the output dimensionality to be adjusted between 1 and 768. By selecting a smaller output dimensionality, users can save memory and storage space, leading to more efficient computations.

        • OptionaltaskType?:
              | "RETRIEVAL_DOCUMENT"
              | "RETRIEVAL_QUERY"
              | "SEMANTIC_SIMILARITY"
              | "CLASSIFICATION"
              | "CLUSTERING"

          The task_type parameter is defined as the intended downstream application to help the model produce better quality embeddings.

        • Optionaltitle?: string
        • Optionalversion?: string

      Returns EmbedderReference<
          z.ZodObject<
              {
                  apiKey: z.ZodOptional<z.ZodString>;
                  outputDimensionality: z.ZodOptional<z.ZodNumber>;
                  taskType: z.ZodOptional<
                      z.ZodEnum<
                          [
                              "RETRIEVAL_DOCUMENT",
                              "RETRIEVAL_QUERY",
                              "SEMANTIC_SIMILARITY",
                              "CLASSIFICATION",
                              "CLUSTERING",
                          ],
                      >,
                  >;
                  title: z.ZodOptional<z.ZodString>;
                  version: z.ZodOptional<z.ZodString>;
              },
              "strip",
              z.ZodTypeAny,
              {
                  apiKey?: string;
                  outputDimensionality?: number;
                  taskType?: | "RETRIEVAL_DOCUMENT"
                  | "RETRIEVAL_QUERY"
                  | "SEMANTIC_SIMILARITY"
                  | "CLASSIFICATION"
                  | "CLUSTERING";
                  title?: string;
                  version?: string;
              },
              {
                  apiKey?: string;
                  outputDimensionality?: number;
                  taskType?: | "RETRIEVAL_DOCUMENT"
                  | "RETRIEVAL_QUERY"
                  | "SEMANTIC_SIMILARITY"
                  | "CLASSIFICATION"
                  | "CLUSTERING";
                  title?: string;
                  version?: string;
              },
          >,
      >

  • model:function
    • Parameters

      • name: GeminiVersionString
      • Optionalconfig: z.objectOutputType<
            z.objectUtil.extendShape<
                {
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    topP: z.ZodOptional<z.ZodNumber>;
                    version: z.ZodOptional<z.ZodString>;
                },
                {
                    apiKey: z.ZodOptional<z.ZodString>;
                    codeExecution: z.ZodOptional<
                        z.ZodUnion<
                            [z.ZodBoolean, z.ZodObject<{}, "strict", z.ZodTypeAny, {}, {}>],
                        >,
                    >;
                    contextCache: z.ZodOptional<z.ZodBoolean>;
                    functionCallingConfig: z.ZodOptional<
                        z.ZodObject<
                            {
                                allowedFunctionNames: z.ZodOptional<
                                    z.ZodArray<z.ZodString, "many">,
                                >;
                                mode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                                allowedFunctionNames?: string[];
                                mode?: "ANY"
                                | "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "NONE";
                            },
                            {
                                allowedFunctionNames?: string[];
                                mode?: "ANY"
                                | "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "NONE";
                            },
                        >,
                    >;
                    responseModalities: z.ZodOptional<
                        z.ZodArray<z.ZodEnum<["TEXT", "IMAGE", "AUDIO"]>, "many">,
                    >;
                    safetySettings: z.ZodOptional<
                        z.ZodArray<
                            z.ZodObject<
                                {
                                    category: z.ZodEnum<[(...), (...), (...), (...), (...), (...)]>;
                                    threshold: z.ZodEnum<[(...), (...), (...), (...)]>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_CIVIC_INTEGRITY";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_CIVIC_INTEGRITY";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                            >,
                            "many",
                        >,
                    >;
                },
            >,
            z.ZodTypeAny,
            "passthrough",
        >

      Returns ModelReference<
          z.ZodObject<
              z.objectUtil.extendShape<
                  {
                      maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                      stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                      temperature: z.ZodOptional<z.ZodNumber>;
                      topK: z.ZodOptional<z.ZodNumber>;
                      topP: z.ZodOptional<z.ZodNumber>;
                      version: z.ZodOptional<z.ZodString>;
                  },
                  {
                      apiKey: z.ZodOptional<z.ZodString>;
                      codeExecution: z.ZodOptional<
                          z.ZodUnion<
                              [z.ZodBoolean, z.ZodObject<{}, "strict", z.ZodTypeAny, {}, {}>],
                          >,
                      >;
                      contextCache: z.ZodOptional<z.ZodBoolean>;
                      functionCallingConfig: z.ZodOptional<
                          z.ZodObject<
                              {
                                  allowedFunctionNames: z.ZodOptional<
                                      z.ZodArray<z.ZodString, "many">,
                                  >;
                                  mode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                              },
                              "strip",
                              z.ZodTypeAny,
                              {
                                  allowedFunctionNames?: string[];
                                  mode?: "ANY"
                                  | "MODE_UNSPECIFIED"
                                  | "AUTO"
                                  | "NONE";
                              },
                              {
                                  allowedFunctionNames?: string[];
                                  mode?: "ANY"
                                  | "MODE_UNSPECIFIED"
                                  | "AUTO"
                                  | "NONE";
                              },
                          >,
                      >;
                      responseModalities: z.ZodOptional<
                          z.ZodArray<z.ZodEnum<["TEXT", "IMAGE", "AUDIO"]>, "many">,
                      >;
                      safetySettings: z.ZodOptional<
                          z.ZodArray<
                              z.ZodObject<
                                  {
                                      category: z.ZodEnum<[(...), (...), (...), (...), (...), (...)]>;
                                      threshold: z.ZodEnum<[(...), (...), (...), (...)]>;
                                  },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                      category: | "HARM_CATEGORY_UNSPECIFIED"
                                      | "HARM_CATEGORY_HATE_SPEECH"
                                      | "HARM_CATEGORY_SEXUALLY_EXPLICIT"
                                      | "HARM_CATEGORY_HARASSMENT"
                                      | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                      | "HARM_CATEGORY_CIVIC_INTEGRITY";
                                      threshold: | "BLOCK_LOW_AND_ABOVE"
                                      | "BLOCK_MEDIUM_AND_ABOVE"
                                      | "BLOCK_ONLY_HIGH"
                                      | "BLOCK_NONE";
                                  },
                                  {
                                      category: | "HARM_CATEGORY_UNSPECIFIED"
                                      | "HARM_CATEGORY_HATE_SPEECH"
                                      | "HARM_CATEGORY_SEXUALLY_EXPLICIT"
                                      | "HARM_CATEGORY_HARASSMENT"
                                      | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                      | "HARM_CATEGORY_CIVIC_INTEGRITY";
                                      threshold: | "BLOCK_LOW_AND_ABOVE"
                                      | "BLOCK_MEDIUM_AND_ABOVE"
                                      | "BLOCK_ONLY_HIGH"
                                      | "BLOCK_NONE";
                                  },
                              >,
                              "many",
                          >,
                      >;
                  },
              >,
              "passthrough",
              z.ZodTypeAny,
              z.objectOutputType<
                  z.objectUtil.extendShape<
                      {
                          maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                          stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                          temperature: z.ZodOptional<z.ZodNumber>;
                          topK: z.ZodOptional<z.ZodNumber>;
                          topP: z.ZodOptional<z.ZodNumber>;
                          version: z.ZodOptional<z.ZodString>;
                      },
                      {
                          apiKey: z.ZodOptional<z.ZodString>;
                          codeExecution: z.ZodOptional<
                              z.ZodUnion<
                                  [z.ZodBoolean, z.ZodObject<{}, "strict", z.ZodTypeAny, {}, {}>],
                              >,
                          >;
                          contextCache: z.ZodOptional<z.ZodBoolean>;
                          functionCallingConfig: z.ZodOptional<
                              z.ZodObject<
                                  {
                                      allowedFunctionNames: z.ZodOptional<z.ZodArray<(...), (...)>>;
                                      mode: z.ZodOptional<z.ZodEnum<(...)>>;
                                  },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                      allowedFunctionNames?: (...)[];
                                      mode?: "ANY" | "MODE_UNSPECIFIED" | "AUTO" | "NONE";
                                  },
                                  {
                                      allowedFunctionNames?: (...)[];
                                      mode?: "ANY" | "MODE_UNSPECIFIED" | "AUTO" | "NONE";
                                  },
                              >,
                          >;
                          responseModalities: z.ZodOptional<
                              z.ZodArray<z.ZodEnum<["TEXT", "IMAGE", "AUDIO"]>, "many">,
                          >;
                          safetySettings: z.ZodOptional<
                              z.ZodArray<
                                  z.ZodObject<
                                      { category: z.ZodEnum<(...)>; threshold: z.ZodEnum<(...)> },
                                      "strip",
                                      z.ZodTypeAny,
                                      {
                                          category: (...) | (...) | (...) | (...) | (...) | (...);
                                          threshold: (...) | (...) | (...) | (...);
                                      },
                                      {
                                          category: (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...);
                                          threshold: (...) | (...) | (...) | (...);
                                      },
                                  >,
                                  "many",
                              >,
                          >;
                      },
                  >,
                  z.ZodTypeAny,
                  "passthrough",
              >,
              z.objectInputType<
                  z.objectUtil.extendShape<
                      {
                          maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                          stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                          temperature: z.ZodOptional<z.ZodNumber>;
                          topK: z.ZodOptional<z.ZodNumber>;
                          topP: z.ZodOptional<z.ZodNumber>;
                          version: z.ZodOptional<z.ZodString>;
                      },
                      {
                          apiKey: z.ZodOptional<z.ZodString>;
                          codeExecution: z.ZodOptional<
                              z.ZodUnion<
                                  [z.ZodBoolean, z.ZodObject<{}, "strict", z.ZodTypeAny, {}, {}>],
                              >,
                          >;
                          contextCache: z.ZodOptional<z.ZodBoolean>;
                          functionCallingConfig: z.ZodOptional<
                              z.ZodObject<
                                  {
                                      allowedFunctionNames: z.ZodOptional<z.ZodArray<(...), (...)>>;
                                      mode: z.ZodOptional<z.ZodEnum<(...)>>;
                                  },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                      allowedFunctionNames?: (...)[];
                                      mode?: "ANY" | "MODE_UNSPECIFIED" | "AUTO" | "NONE";
                                  },
                                  {
                                      allowedFunctionNames?: (...)[];
                                      mode?: "ANY" | "MODE_UNSPECIFIED" | "AUTO" | "NONE";
                                  },
                              >,
                          >;
                          responseModalities: z.ZodOptional<
                              z.ZodArray<z.ZodEnum<["TEXT", "IMAGE", "AUDIO"]>, "many">,
                          >;
                          safetySettings: z.ZodOptional<
                              z.ZodArray<
                                  z.ZodObject<
                                      { category: z.ZodEnum<(...)>; threshold: z.ZodEnum<(...)> },
                                      "strip",
                                      z.ZodTypeAny,
                                      {
                                          category: (...) | (...) | (...) | (...) | (...) | (...);
                                          threshold: (...) | (...) | (...) | (...);
                                      },
                                      {
                                          category: (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...);
                                          threshold: (...) | (...) | (...) | (...);
                                      },
                                  >,
                                  "many",
                              >,
                          >;
                      },
                  >,
                  z.ZodTypeAny,
                  "passthrough",
              >,
          >,
      >