import { z, JSONSchema, Genkit, ModelReference as ModelReference$1 } from 'genkit';
import { GoogleAuthOptions } from 'google-auth-library';
import { VertexAI, GenerateContentCandidate, Content, FunctionDeclaration } from '@google-cloud/vertexai';
import { ModelReference, GenerateRequest, ModelAction, ModelInfo, CandidateData, MessageData, ToolDefinitionSchema } from 'genkit/model';

/**
 * Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @deprecated
 */
declare const SafetySettingsSchema: z.ZodObject<{
    category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
    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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
    threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
}, {
    category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
    threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
}>;
/**
 * Zod schema of Gemini model options.
 * Please refer to: https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/inference#generationconfig, for further information.
 * @deprecated
 */
declare const GeminiConfigSchema: z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>;
/**
 * Known model names, to allow code completion for convenience. Allows other model names.
 * @deprecated
 */
type GeminiVersionString = keyof typeof SUPPORTED_GEMINI_MODELS | (string & {});
/**
 * Returns a reference to a model that can be used in generate calls.
 *
 * ```js
 * await ai.generate({
 *   prompt: 'hi',
 *   model: gemini('gemini-1.5-flash')
 * });
 * ```
 * @deprecated
 */
declare function gemini(version: GeminiVersionString, options?: GeminiConfig): ModelReference<typeof GeminiConfigSchema>;
/**
 * Gemini model configuration options.
 *
 * E.g.
 * ```js
 *   config: {
 *     temperature: 0.9,
 *     maxOutputTokens: 300,
 *     safetySettings: [
 *       {
 *         category: 'HARM_CATEGORY_HATE_SPEECH',
 *         threshold: 'BLOCK_LOW_AND_ABOVE',
 *       },
 *       {
 *         category: 'HARM_CATEGORY_DANGEROUS_CONTENT',
 *         threshold: 'BLOCK_MEDIUM_AND_ABOVE',
 *       },
 *       {
 *         category: 'HARM_CATEGORY_HARASSMENT',
 *         threshold: 'BLOCK_ONLY_HIGH',
 *       },
 *       {
 *         category: 'HARM_CATEGORY_SEXUALLY_EXPLICIT',
 *         threshold: 'BLOCK_NONE',
 *       },
 *     ],
 *     functionCallingConfig: {
 *       mode: 'ANY',
 *     }
 *   }
 * ```
 * @deprecated
 */
type GeminiConfig = z.infer<typeof GeminiConfigSchema>;
/**
 * @deprecated
 */
declare const gemini10Pro: ModelReference<z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>>;
/**
 * @deprecated
 */
declare const gemini15Pro: ModelReference<z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>>;
/**
 * @deprecated
 */
declare const gemini15Flash: ModelReference<z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>>;
/**
 * @deprecated
 */
declare const gemini20Flash001: ModelReference<z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>>;
/**
 * @deprecated
 */
declare const gemini20Flash: ModelReference<z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>>;
/**
 * @deprecated
 */
declare const gemini20FlashLite: ModelReference<z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>>;
/**
 * @deprecated
 */
declare const gemini20FlashLitePreview0205: ModelReference<z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>>;
/**
 * @deprecated
 */
declare const gemini20ProExp0205: ModelReference<z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>>;
/**
 * @deprecated
 */
declare const gemini25FlashPreview0417: ModelReference<z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>>;
/**
 * @deprecated
 */
declare const gemini25ProExp0325: ModelReference<z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>>;
/**
 * @deprecated
 */
declare const gemini25ProPreview0325: ModelReference<z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>>;
/**
 * @deprecated After importing from the new plugin, use vertexAI.model('gemini-2.5-pro')
 */
declare const gemini25Pro: ModelReference<z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>>;
/**
 * @deprecated After importing from the new plugin, use vertexAI.model('gemini-2.5-flash')
 */
declare const gemini25Flash: ModelReference<z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>>;
/**
 * @deprecated After importing from the new plugin, use vertexAI.model('gemini-2.5-flash-lite')
 */
declare const gemini25FlashLite: ModelReference<z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>>;
/** @deprecated */
declare const GENERIC_GEMINI_MODEL: ModelReference<z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    temperature: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
        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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }, {
        category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
        threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
    }>, "many">>;
    vertexRetrieval: z.ZodOptional<z.ZodObject<{
        datastore: z.ZodObject<{
            projectId: z.ZodOptional<z.ZodString>;
            location: z.ZodOptional<z.ZodString>;
            dataStoreId: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }, {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        }>;
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }, {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    }>>;
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    functionCallingConfig: z.ZodOptional<z.ZodObject<{
        mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
        allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }, {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    }>>;
    thinkingConfig: z.ZodOptional<z.ZodObject<{
        includeThoughts: z.ZodOptional<z.ZodBoolean>;
        thinkingBudget: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }, {
        includeThoughts?: boolean | undefined;
        thinkingBudget?: number | undefined;
    }>>;
}, z.ZodTypeAny, "passthrough">>>;
/** @deprecated */
declare const SUPPORTED_V15_MODELS: {
    'gemini-1.5-pro': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    'gemini-1.5-flash': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.0-flash': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.0-flash-001': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.0-flash-lite': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.0-flash-lite-preview-02-05': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.0-pro-exp-02-05': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.5-pro-exp-03-25': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.5-pro-preview-03-25': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.5-flash-preview-04-17': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.5-flash': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.5-pro': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.5-flash-lite': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
};
/** @deprecated */
declare const SUPPORTED_GEMINI_MODELS: {
    readonly 'gemini-1.5-pro': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-1.5-flash': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.0-flash': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.0-flash-001': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.0-flash-lite': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.0-flash-lite-preview-02-05': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.0-pro-exp-02-05': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.5-pro-exp-03-25': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.5-pro-preview-03-25': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.5-flash-preview-04-17': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.5-flash': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.5-pro': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.5-flash-lite': ModelReference<z.ZodObject<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodString>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        apiKey: z.ZodOptional<z.ZodString>;
    } & {
        temperature: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        safetySettings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            category: z.ZodEnum<["HARM_CATEGORY_UNSPECIFIED", "HARM_CATEGORY_HATE_SPEECH", "HARM_CATEGORY_DANGEROUS_CONTENT", "HARM_CATEGORY_HARASSMENT", "HARM_CATEGORY_SEXUALLY_EXPLICIT"]>;
            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_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }, {
            category: "HARM_CATEGORY_UNSPECIFIED" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_DANGEROUS_CONTENT" | "HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
            threshold: "BLOCK_LOW_AND_ABOVE" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_ONLY_HIGH" | "BLOCK_NONE";
        }>, "many">>;
        vertexRetrieval: z.ZodOptional<z.ZodObject<{
            datastore: z.ZodObject<{
                projectId: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodString>;
                dataStoreId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }, {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            }>;
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }, {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        }>>;
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        functionCallingConfig: z.ZodOptional<z.ZodObject<{
            mode: z.ZodOptional<z.ZodEnum<["MODE_UNSPECIFIED", "AUTO", "ANY", "NONE"]>>;
            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }, {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        }>>;
        thinkingConfig: z.ZodOptional<z.ZodObject<{
            includeThoughts: z.ZodOptional<z.ZodBoolean>;
            thinkingBudget: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }, {
            includeThoughts?: boolean | undefined;
            thinkingBudget?: number | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
};
/**
 * @hidden
 * @deprecated
 */
declare const toGeminiTool: (tool: z.infer<typeof ToolDefinitionSchema>) => FunctionDeclaration;
/** @deprecated */
declare function toGeminiSystemInstruction(message: MessageData): Content;
/** @deprecated */
declare function toGeminiMessage(message: MessageData, modelInfo?: ModelInfo): Content;
/** @deprecated */
declare function fromGeminiCandidate(candidate: GenerateContentCandidate, jsonMode: boolean): CandidateData;
/** @deprecated */
declare function cleanSchema(schema: JSONSchema): JSONSchema;
/**
 * Define a Vertex AI Gemini model.
 * @deprecated
 */
declare function defineGeminiKnownModel(ai: Genkit, name: string, vertexClientFactory: (request: GenerateRequest<typeof GeminiConfigSchema>) => VertexAI, options: PluginOptions, debugTraces?: boolean): ModelAction;
/**
 * Define a Vertex AI Gemini model.
 * @deprecated
 */
declare function defineGeminiModel({ ai, modelName, version, modelInfo, vertexClientFactory, options, debugTraces, }: {
    ai: Genkit;
    modelName: string;
    version: string;
    modelInfo: ModelInfo | undefined;
    vertexClientFactory: (request: GenerateRequest<typeof GeminiConfigSchema>) => VertexAI;
    options: PluginOptions;
    debugTraces?: boolean;
}): ModelAction;

/**
 * Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/** Common options for Vertex AI plugin configuration */
interface CommonPluginOptions {
    /** The Google Cloud project id to call. */
    projectId?: string;
    /** The Google Cloud region to call. */
    location: string;
    /** Provide custom authentication configuration for connecting to Vertex AI. */
    googleAuth?: GoogleAuthOptions;
    /** Enables additional debug traces (e.g. raw model API call details). */
    experimental_debugTraces?: boolean;
}
/** Combined plugin options, extending common options with subplugin-specific options */
interface PluginOptions extends CommonPluginOptions {
    models?: (ModelReference$1</** @ignore */ typeof GeminiConfigSchema> | string)[];
}

export { toGeminiTool as A, type CommonPluginOptions as C, GeminiConfigSchema as G, type PluginOptions as P, SUPPORTED_GEMINI_MODELS as S, type GeminiConfig as a, type GeminiVersionString as b, SafetySettingsSchema as c, gemini10Pro as d, gemini15Flash as e, gemini15Pro as f, gemini as g, gemini20Flash as h, gemini20Flash001 as i, gemini20FlashLite as j, gemini20FlashLitePreview0205 as k, gemini20ProExp0205 as l, gemini25FlashLite as m, gemini25FlashPreview0417 as n, gemini25ProExp0325 as o, gemini25ProPreview0325 as p, GENERIC_GEMINI_MODEL as q, SUPPORTED_V15_MODELS as r, cleanSchema as s, defineGeminiKnownModel as t, defineGeminiModel as u, fromGeminiCandidate as v, gemini25Flash as w, gemini25Pro as x, toGeminiMessage as y, toGeminiSystemInstruction as z };
