gemini20Flash: 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<["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",
                    >,
                >;
            },
        >,
        "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<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",
        >,
        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<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",
        >,
    >,
> = ...