GeminiConfig: 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<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>,
                        >;
                    },
                    "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<
                                [
                                    "HARM_CATEGORY_UNSPECIFIED",
                                    "HARM_CATEGORY_HATE_SPEECH",
                                    "HARM_CATEGORY_SEXUALLY_EXPLICIT",
                                    "HARM_CATEGORY_HARASSMENT",
                                    "HARM_CATEGORY_DANGEROUS_CONTENT",
                                    "HARM_CATEGORY_CIVIC_INTEGRITY",
                                ],
                            >;
                            threshold: z.ZodEnum<
                                [
                                    "BLOCK_LOW_AND_ABOVE",
                                    "BLOCK_MEDIUM_AND_ABOVE",
                                    "BLOCK_ONLY_HIGH",
                                    "BLOCK_NONE",
                                ],
                            >;
                        },
                        "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",
>